JDBC连接MySQL数据库批量插入数据过程详解
这篇文章主要介绍了JDBC连接MySQL数据库批量插入数据过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
1.读取本地json数据
2.jdbc理解数据库
3.批量插入
maven引入jar包:
com.alibaba fastjson 1.2.32 commons-io commons-io 2.4
Java实现代码:
importcom.alibaba.fastjson.JSONArray;
importcom.alibaba.fastjson.JSONObject;
importorg.apache.commons.io.FileUtils;
importjava.io.File;
importjava.io.IOException;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.SQLException;
importjava.util.Map;
importjava.util.concurrent.ConcurrentHashMap;
publicclassTest{
publicstaticvoidmain(String[]args){
Testtest=newTest();
Mapmap=test.readJsonData();
test.jdbcConnBatch(map);
}
//批量插入数据库
voidjdbcConnBatch(Mapmap){
try{
//1.注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//2.获取连接
Connectioncon=DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=no",
"test","test");
Stringsql="insertintoinsurance"+
"(product_name,country,tag,tag_type,company,"+
"insure_period,observation_period,qzzl,qzbz,qzhm,zjzl,"+
"zjbz,zjqc,jbzmq,tdjb,sg,"+
"jylstd,fhbfgn,gfqz,bzbf0,bzbf30,bzbf40)"+
"values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
//3.获得预处理对象
PreparedStatementpstmt=con.prepareStatement(sql);
//遍历map
for(Map.Entryentry:map.entrySet()){
Stringvalue=entry.getValue().toJSONString();
JSONObjectjson=JSONObject.parseObject(value);
//4.SQL语句占位符设置实际参数
pstmt=process(pstmt,json);
pstmt.addBatch();
}
//5.执行批量操作
int[]counts=pstmt.executeBatch();
System.out.println("执行条数:"+counts.length);
//6.释放资源
pstmt.close();
con.close();
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}catch(SQLExceptione){
e.printStackTrace();
}
}
/**
*读取文件数据加入到map缓存中
*/
MapreadJsonData(){
try{
Mapmap=newConcurrentHashMap();
FiletestFile=newFile("D:\\data.json");
StringjsonString=FileUtils.readFileToString(testFile);
JSONArrayjsonArr=JSONArray.parseArray(jsonString);
for(inti=0;i
mysql建表SQL:
CREATETABLE`insurance`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`product_name`varchar(100)DEFAULTNULL,
`country`varchar(100)DEFAULTNULL,
`tag`varchar(100)DEFAULTNULL,
`tag_type`varchar(100)DEFAULTNULL,
`company`varchar(100)DEFAULTNULL,
`insure_period`varchar(100)DEFAULTNULL,
`observation_period`varchar(100)DEFAULTNULL,
`qzzl`varchar(100)DEFAULTNULL,
`qzbz`varchar(100)DEFAULTNULL,
`qzhm`varchar(100)DEFAULTNULL,
`zjzl`varchar(100)DEFAULTNULL,
`zjbz`varchar(100)DEFAULTNULL,
`zjqc`varchar(100)DEFAULTNULL,
`jbzmq`varchar(100)DEFAULTNULL,
`tdjb`varchar(2048)DEFAULTNULL,
`sg`varchar(2028)DEFAULTNULL,
`jylstd`varchar(2048)DEFAULTNULL,
`fhbfgn`varchar(100)DEFAULTNULL,
`gfqz`varchar(100)DEFAULTNULL,
`bzbf0`varchar(100)DEFAULTNULL,
`bzbf30`varchar(100)DEFAULTNULL,
`bzbf40`varchar(100)DEFAULTNULL,
PRIMARYKEY(`id`)
)ENGINE=InnoDBAUTO_INCREMENT=231DEFAULTCHARSET=utf8;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。