jdbcUtils 类是数据库连接与关闭操作,将其封装到这个类中。
定义:
private static String url = "jdbc:mysql://localhost:3306/tsgl?serverTimezone=
UTC&characterEncoding=utf8&useUnicode=true&useSSL=true"; //url中的status为数据库库名
private static String user = "root"; //数据库登陆账号
private static String password = "abc123"; //数据库登陆密码
private static Connection con = null;
连接功能:
public static Connection getConn() {
try {
// 1.注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 2.获取连接
con = DriverManager.getConnection(url, user, password);
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
有结果集关闭:
ublic static void closeConn(Connection conn, Statement stmt, ResultSet rs){
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
rs = null;
}
if(stmt != null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
stmt = null;
}
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn = null;
}
}
有结果集关闭:
public static void closeConn(Connection conn, Statement stmt){
if(stmt != null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
stmt = null;
}
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn = null;
}
}
关于类 的调用:
目前我所遇到的问题都是数据库操作的方法中一般需要调用该方法。
举例
public void changeAutor(int Id,String autor) {//修改作者名字
Connection conn = null; //
PreparedStatement stmt = null; //
try {
conn = jdbcUtils.getConn(); //conn用来接受getConn方法的结果
String sql = "update book set autor = ? where id = ?";
stmt = conn.prepareStatement(sql);
stmt.setString(1, autor);
stmt.setInt(2, Id);
stmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
finally{
jdbcUtils.closeConn(conn, stmt);
}
System.out.println("性别修改成功!!");
}