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(Map map){ 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.Entry entry: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缓存中 */ Map readJsonData(){ try{ Map map=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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。