*JDBC 封装
- 思考:
- 封装提取出来的是多个方法公共的部分 就像是数学里面的提取公因式
- 首先应该明白封装是为了更加简便,所以在纠结应不应该提出来的时候对比一下提取与不提取哪个更加的方便就有答案了
- 其次封装的部分不会对程序的逻辑造成影响。
- 提取出来的变量分析是否需要设置为全局变量,以及局部变量的初始值。
定义全局变量
public class JdbcUtil {
private static final String DRIVER = "com.mysql.cj.jdbc.Driver/这个是Driver文件的地址";
private static final String URL = "jdbc:mysql://localhost:3306/'注意:自己的数据库名'?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";
private static final String USER = "root";
private static final String PASSWORD = "root";
private static Connection conn = null;
注册方法
//注册驱动
static {
try {
Class.forName(DRIVER);
} catch (ClassNotFoundException e) {
System.out.println("驱动注册失败");
e.printStackTrace();
}
}
获取数据库连接对象
public static Connection newInstance() throws SQLException {
if(conn == null){
conn = DriverManager.getConnection(URL,USER,PASSWORD);
}
return conn;
}
增删改的公共方法
public static int curdMethod(String sql) {
Statement statement = null;
try {
newInstance();
statement = conn.createStatement();
int result = statement.executeUpdate(sql);
return result;
} catch (SQLException e) {
e.printStackTrace();
} finally {
close(conn,statement,null);
}
return 0;
}
关闭数据库连接方法
public static void close(Connection conn,Statement statement,ResultSet rs) {
try {
if(rs != null) {
rs.close();
}
if(statement != null) {
statement.close();
}
if(conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}