JDBC学习一 基础一个简单JDBC几种不同连接驱动实现及简单的封装 单例模式 处理并发有关问题的封装 简单一个查询
用的MYSQL的驱动链接
package com.sg.test;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Base {
public static void main(String[] args) {
try {
Base.test01();
} catch (Exception e) {
e.printStackTrace();
}
}
static void test01() throws Exception {
// 注册驱动
//第一种
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
//第二种
System.setProperty("jdbc:drivers", "com.mysql.jdbc.Driver");
//第三种 (推荐使用)
Class.forName("com.mysql.jdbc.Driver");
// 建立连接
java.sql.Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/jdbc", "root", "root");
// 创建语句
Statement st = conn.createStatement();
// 执行语句
ResultSet rs = st.executeQuery("select * from user");
// 处理结果
while (rs.next()) {
System.out.println("id:" + rs.getInt(1) + "\n name:"
+ rs.getString(2) + "\n age:" + rs.getInt(3) + "\n sex"
+ rs.getString(4) + "\n brithday:" + rs.getDate(5));
}
//关闭资源
rs.close();
st.close();
conn.close();
}
}
封装一个jdbcUtil类
package com.sg.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class jdbcUtil {
static String url = "jdbc:mysql://localhost:3306/jdbc";
static String username = "root";
static String password = "root";
static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, username, password);
}
public static void free(Statement st, Connection conn, ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (conn != null) {
conn.close();
}
} catch (SQLException e2) {
e2.printStackTrace();
} finally {
try {
if (st != null) {
st.close();
}
} catch (SQLException e2) {
e2.printStackTrace();
}
}
}
}
}
单例模式 考虑并发延迟
jdbcUtil02
public final class jdbcUtil02 {
static String url = "jdbc:mysql://localhost:3306/jdbc";
static String username = "root";
static String password = "root";
// private static jdbcUtil02 instance = new jdbcUtil02();
private static jdbcUtil02 instance = null;
// 构造私有化
private jdbcUtil02() {
}
// 提供一个公共的static方法
public static jdbcUtil02 getInstance() {
// 延迟加载 使用的时候new
// 处理并发问题 可以加锁
synchronized (jdbcUtil02.class) {
if (instance == null) {
instance = new jdbcUtil02();
}
}
return instance;
}
public Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, username, password);
}
}