JDBC全称::Java DataBase Connectivity;是由SUN公司提供的一套通用的Java连接数据的标准(接口),这套接口用于屏蔽数据库之间的差异,使得Java程序员可以专注于处理数据而不需要考虑数据库之间的差异;
JDBC这套标准所有的类和接口都位于java.sql
包中。
使用JDBC连接数据库的六个步骤:
// 1.加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
// 2.获取数据库连接对象
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
// 3.获取处理sql语句的对象
Statement stat = conn.createStatement();
// 4.执行sql(当执行结果为resultset(执行select操作时)时返回值为true,其他任何时候都是false)
boolean f = stat.execute("insert into user(username,password,nickname) values('softeem','soft123','软帝')");
// 5.处理结果
System.out.println("执行结果:"+f);
// 6.关闭资源
stat.close();
conn.close();
JDBC操作常见的六个步骤中存在大量的重复操作,通过以下封装可以实现对其中三个步骤完成统一封装处理:
- 加载驱动
- 获取连接
- 获取执行sql语句的对象
- 执行
- 处理结果
- 关闭资源
public class DBUtils {
/**驱动类路径*/
private static final String DRIVER_CLASS = "com.mysql.jdbc.Driver";
/**URL地址*/
private static final String URL = "jdbc:mysql://localhost:3306/test";
/**登录数据库服务器的账号*/
private static final String USER = "root";
/**登录数据库服务器的密码*/
private static final String PASSWORD = "123456";
static{
try {
// 1.加载驱动
Class.forName(DRIVER_CLASS);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 返回数据库连接对象
* @return
*/
public static Connection getConn(){
try {
return DriverManager.getConnection(URL,USER,PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
/**
* 关闭资源
* @param rs 结果集
* @param stat 处理SQL的执行对象
* @param conn 数据库连接
*/
public static void close(ResultSet rs, Statement stat,Connection conn){
//ctrl+alt+t
try {
if(rs != null){
rs.close();
}
if(stat != null){
stat.close();
}
if(conn != null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}