使用JDBC的步骤
加载JDBC驱动程序 → 建立数据库连接Connection → 创建执行SQL的语句Statement → 处理执行结果ResultSet → 释放资源
1.注册驱动 (只做一次)
方式一:Class.forName(“com.MySQL.jdbc.Driver”);
推荐这种方式,不会对具体的驱动类产生依赖。
方式二:DriverManager.registerDriver(com.mysql.jdbc.Driver);
会造成DriverManager中产生两个一样的驱动,并会对具体的驱动类产生依赖。
2.建立连接
Connection conn = DriverManager.getConnection(url, user, password);
3. 创建执行SQL的语句的Statement
public void saveInfo(List<Map<String, Object>> dataList) throws Exception {
Connection setDbConnInfo = null;
PreparedStatement setDbStmtInfo = null;
try {
// 建立数据库连接
setDbConnInfo = this.getConnection();
// 将数据插入到数据库表t_find01中
setDbStmtInfo = setDbConnInfo.prepareStatement("insert into t_find01(id,name,date)values(?,?,?)");
// 将自动提交设置为 false,
// 若设置为 true 则数据库将会把每一次数据更新认定为一个事务并自动提交
setDbConnInfo.setAutoCommit(false);
while (dataList.size() > 0) {
Map<String, Object> dataMap02 = dataList.get(0);
dataList.remove(0);
String id = (String) dataMap02.get("id");
String name = (String) dataMap02.get("name");
String date = (String) dataMap02.get("date");
setDbStmtInfo.setString(1, id);
setDbStmtInfo.setString(2, name);
setDbStmtInfo.setString(3, date);
// 将数据添加到同一批处理中
setDbStmtInfo.addBatch();
}
// 执行批处理
setDbStmtInfo.executeBatch();
// 执行完后,手动提交事务
setDbConnInfo.commit();
} catch (Exception e) {
logger.error("MonitorDao.saveInfo Error!!!", e);
} finally {
// 把自动提交打开
setDbConnInfo.setAutoCommit(true);
// 关闭连接,释放资源
setDbStmtInfo.close();
setDbConnInfo.close();
}
}
配置文件config.properties
的设置
// 注册驱动程序
task.db.driverClassName=com.mysql.jdbc.DriveruseUnicode=true&characterEncoding=UTF-8
// 数据库连接地址
task.db.url=jdbc:mysql://localhost:3306/crplt?useUnicode=true&characterEncoding=UTF-8
// 数据库的用户名和密码
task.db.username=root
task.db.password=root