今天就跟大家聊聊有關使用JDBC連接MySQL數(shù)據(jù)庫并實現(xiàn)批量插入數(shù)據(jù),可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于成都做網(wǎng)站、成都網(wǎng)站制作、溫宿網(wǎng)絡推廣、微信小程序、溫宿網(wǎng)絡營銷、溫宿企業(yè)策劃、溫宿品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供溫宿建站搭建服務,24小時服務熱線:13518219792,官方網(wǎng)址:jinyejixie.com
1.讀取本地json數(shù)據(jù)
2.jdbc理解數(shù)據(jù)庫
3.批量插入
maven 引入jar包:
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.32</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency>
Java實現(xiàn)代碼:
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; public class Test { public static void main(String[] args) { Test test = new Test(); Map<Integer, JSONObject> map = test.readJsonData(); test.jdbcConnBatch(map); } //批量插入數(shù)據(jù)庫 void jdbcConnBatch(Map<Integer, JSONObject> map){ try{ //1.注冊驅動 Class.forName("com.mysql.cj.jdbc.Driver"); //2.獲取連接 Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=no", "test", "test"); String sql = "insert into insurance" + "(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.獲得預處理對象 PreparedStatement pstmt = con.prepareStatement(sql); //遍歷map for (Map.Entry<Integer, JSONObject> entry : map.entrySet()) { String value = entry.getValue().toJSONString(); JSONObject json = JSONObject.parseObject(value); //4.SQL語句占位符設置實際參數(shù) pstmt = process(pstmt,json); pstmt.addBatch(); } //5.執(zhí)行批量操作 int [] counts = pstmt.executeBatch(); System.out.println("執(zhí)行條數(shù):"+counts.length); //6.釋放資源 pstmt.close(); con.close(); }catch (ClassNotFoundException e) { e.printStackTrace(); }catch(SQLException e){ e.printStackTrace(); } } /** * 讀取文件數(shù)據(jù)加入到map緩存中 */ Map<Integer, JSONObject> readJsonData(){ try{ Map<Integer, JSONObject> map = new ConcurrentHashMap(); File testFile = new File("D:\\data.json"); String jsonString = FileUtils.readFileToString(testFile); JSONArray jsonArr = JSONArray.parseArray(jsonString); for(int i = 0; i < jsonArr.size(); i++) { String str = jsonArr.get(i).toString(); JSONObject json = JSONObject.parseObject(str); map.put(i,json); } return map; } catch (IOException e) { e.printStackTrace(); } return null; } //處理PreparedStatement數(shù)據(jù) PreparedStatement process(PreparedStatement pstmt,JSONObject json ) { try { pstmt.setString(1,getParameter(json.get("product_name"))); pstmt.setString(2,getParameter(json.get("country"))); pstmt.setString(3,getParameter(json.get("tag"))); pstmt.setString(4,getParameter(json.get("tag_type"))); pstmt.setString(5,getParameter(json.get("company"))); pstmt.setString(6,getParameter(json.get("insure_period"))); pstmt.setString(7,getParameter(json.get("observation_period"))); pstmt.setString(8,getParameter(json.get("qzzl"))); pstmt.setString(9,getParameter(json.get("qzbz"))); pstmt.setString(10,getParameter(json.get("qzhm"))); pstmt.setString(11,getParameter(json.get("zjzl"))); pstmt.setString(12,getParameter(json.get("zjbz"))); pstmt.setString(13,getParameter(json.get("zjqc"))); pstmt.setString(14,getParameter(json.get("jbzmq"))); pstmt.setString(15,getParameter(json.get("tdjb"))); pstmt.setString(16,getParameter(json.get("sg"))); pstmt.setString(17,getParameter(json.get("jylstd"))); pstmt.setString(18,getParameter(json.get("fhbfgn"))); pstmt.setString(19,getParameter(json.get("gfqz"))); pstmt.setString(20,getParameter(json.get("bzbf0"))); pstmt.setString(21,getParameter(json.get("bzbf30"))); pstmt.setString(22,getParameter(json.get("bzbf40"))); return pstmt; }catch (SQLException e) { e.printStackTrace(); } return null; } String getParameter(Object obj) { String str = null; str = obj == null ? null : obj.toString(); return str; } }
mysql建表SQL:
CREATE TABLE `insurance` ( `id` int(11) NOT NULL AUTO_INCREMENT, `product_name` varchar(100) DEFAULT NULL, `country` varchar(100) DEFAULT NULL, `tag` varchar(100) DEFAULT NULL, `tag_type` varchar(100) DEFAULT NULL, `company` varchar(100) DEFAULT NULL, `insure_period` varchar(100) DEFAULT NULL, `observation_period` varchar(100) DEFAULT NULL, `qzzl` varchar(100) DEFAULT NULL, `qzbz` varchar(100) DEFAULT NULL, `qzhm` varchar(100) DEFAULT NULL, `zjzl` varchar(100) DEFAULT NULL, `zjbz` varchar(100) DEFAULT NULL, `zjqc` varchar(100) DEFAULT NULL, `jbzmq` varchar(100) DEFAULT NULL, `tdjb` varchar(2048) DEFAULT NULL, `sg` varchar(2028) DEFAULT NULL, `jylstd` varchar(2048) DEFAULT NULL, `fhbfgn` varchar(100) DEFAULT NULL, `gfqz` varchar(100) DEFAULT NULL, `bzbf0` varchar(100) DEFAULT NULL, `bzbf30` varchar(100) DEFAULT NULL, `bzbf40` varchar(100) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=231 DEFAULT CHARSET=utf8;
看完上述內(nèi)容,你們對使用JDBC連接MySQL數(shù)據(jù)庫并實現(xiàn)批量插入數(shù)據(jù)有進一步的了解嗎?如果還想了解更多知識或者相關內(nèi)容,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
當前標題:使用JDBC連接MySQL數(shù)據(jù)庫并實現(xiàn)批量插入數(shù)據(jù)
鏈接URL:http://jinyejixie.com/article30/jjhppo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、App開發(fā)、小程序開發(fā)、域名注冊、電子商務、服務器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)