1、应用 JDBC API 操作数据库的根本步骤
剖析应用 JDBC API 操作数据库,进行 CRUD 根本步骤都类似。
加载和注册驱动
获取数据库连贯
筹备操作执行 SQL 的 Statement 对象
执行 SQL
调用 Statement 对象的 executeUpdate(String sql)执行 SQL 语句进行插入、批改、删除操作
调用 Statement 对象的 executeQuery(String sql)执行 SQL 语句进行查问操作
解决执行后果
CUD 操作,依据返回的 int 值判断后果
查问操作,依据返回 ResultSet 后果集,大数据培训获取查问数据
开释资源
总结:
加载和注册驱动,整个我的项目做一次即可
获取数据库连贯能够封装到一个办法中
开释资源能够封装到一个办法中
2、编写工具类 JDBCUtils
package com.atguigu.utils;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
/*
工具类:
1、注册驱动:只有运行一次
2、获取连贯
3、敞开资源
*/
public class JDBCUtils {
private static String drivername;
private static String url;
private static String user;
private static String password;
private static Properties pro = new Properties();
static{
try {
// 加载,读取 jdbc.properties 配置的信息
//pro.load 的作用是把 jdbc.properties 文件中配置的信息,一一 put 到 pro 这个 map 中
pro.load(ClassLoader.getSystemClassLoader().getResourceAsStream(“jdbc.properties”));
// drivername = pro.getProperty(“key”)
drivername = pro.getProperty(“drivername”);
url = pro.getProperty(“url”);
user = pro.getProperty(“user”);
password = pro.getProperty(“password”);
// 注册驱动,加载驱动
Class.forName(drivername);
} catch (ClassNotFoundException e) {e.printStackTrace();
} catch (IOException e) {e.printStackTrace();
}
}
public static Connection getConnection()throws SQLException{Connection conn = DriverManager.getConnection(url, user, password);
return conn;
}
public static void closeQuietly(Connection conn){
try {if(conn!=null){conn.close();
}
} catch (SQLException e) {e.printStackTrace();
}
}
public static void closeQuietly(Statement st){
try {if(st!=null){st.close();
}
} catch (SQLException e) {e.printStackTrace();
}
}
public static void closeQuietly(ResultSet rs){
try {if(rs!=null){rs.close();
}
} catch (SQLException e) {e.printStackTrace();
}
}
public static void closeQuietly(Statement st,Connection conn){closeQuietly(st);
closeQuietly(conn);
}
public static void closeQuietly(ResultSet rs,Statement st,Connection conn){closeQuietly(rs);
closeQuietly(st);
closeQuietly(conn);
}
}