每次编程时,大部分重复内容可以封装到工具类中,方便重复使用。
1.驱动加载
Class.forName("com.mysql.jdbc.Driver");
每次JDBC编码第一步都要加载驱动,所以可以写成静态块在类加载的时候运行。
注意:静态块在类加载时只运行一次。
静态块
2.建立数据库连接对象
Connect con = null;
3.关闭资源
例如:
ResultSet rs = null;
rs.close();
以上三步封装到TestUtil工具类中
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class TestUtil {
// 完成驱动加载
// 利用静态块
static{
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 建立数据库连接:通过静态方法getCon()完成数据库连接对象的获取
public static Connection getCon(){
Connection con=null;
String url="jdbc:mysql://localhost:3306/mysqldb";
String uname="root";
String pwd="root";
try {
con=DriverManager.getConnection(url, uname, pwd);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con;
}
// 关闭资源
public static void close(ResultSet rs,PreparedStatement ps,Connection con){
try {
if(rs!=null)
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
if(ps!=null)
ps.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
if(con!=null)
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}