概述
通常我们都是使用myBatis等类似的框架去操作mysql数据库,某些场景下可能直接使用jdbc更加简单快捷,比如数据迁移的时候。
添加mysql连接驱动包
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
获取数据库连接
package com.study.practice.db;
import java.sql.*;
public class dataMove {
private Connection getMysqlConn(){
try {
// 注册数据库驱动
Class.forName("com.mysql.cj.jdbc.Driver");
return DriverManager.getConnection("jdbc:mysql://192.168.195.129:3306/practice?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT",
"root", "123456");
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
return null;
}
}
关闭连接
public void close(Connection conn, Statement stmt, ResultSet rs){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
处理数据实例
public void deal() throws SQLException {
//比较懒,拼接insert into 语句
String sql = "insert into t_user(name,age,sex,addr) value(?,?,?,?)";
//MySQL数据库
Connection mysqlconn = getMysqlConn();
PreparedStatement pstmt = mysqlconn.prepareStatement(sql);
//取出结果集并向MySQL数据库插入数据 ( 使用批处理 )
//完成条数
int count =0;
long start = System.currentTimeMillis();
for(int i = 0; i < 10; i++) {
pstmt.setString(1, "name" + i);
pstmt.setInt(2, 20 + i);
pstmt.setInt(3, 1);
pstmt.setString(4, "老家");
pstmt.addBatch();
count++;
}
// 防止有数据未提交
pstmt.executeBatch();
System.out.println("完成 "+count+" 条数据,耗时:"+(System.currentTimeMillis()-start)/1000.0+"s");
//关闭资源
close(mysqlconn,pstmt,null);
}
测试
public static void main(String[] args) {
dataMove dataMove = new dataMove();
try {
dataMove.deal();
} catch (SQLException e) {
e.printStackTrace();
}
}
参考
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/100312.html