Database
:
To add code in bulk:
Packagecom.hyhl.test;Importjava.sql.Connection;ImportJava.sql.DriverManager;Importjava.sql.PreparedStatement;ImportJava.sql.ResultSet;Importjava.sql.SQLException;Importjava.util.List;ImportJava.util.logging.Level;ImportJava.util.logging.Logger;ImportOrg.omg.PortableInterceptor.INACTIVE;ImportCom.hyhl.DrugFactory.vo.DrugMumberDetailVo;Importcom.hyhl.patient.util.DataSourceUtils;ImportCom.hyhl.util.DateTimeUtil; Public classJdbcbatchinsert {PrivateString O_url = "Jdbc:mysql://localhost:3306/hy_iwrs_test"; PrivateConnection conn =NULL; PrivateString userName = "root"; PrivateString password = "root"; /*** Insert with PreparedStatement *@paramsize*/ Public voidInsertbybatchpreparestat (list<drugmumberdetailvo>list) {String Startti= Datetimeutil.getformatdatetime (Newjava.util.Date ()); System.out.println ("PreparedStatement do Insert start time" +Startti); Connection Conn=NULL; Try{class.forname ("Com.mysql.jdbc.Driver"); Conn=drivermanager.getconnection (o_url, userName, password); Conn.setautocommit (false); String SQL= "INSERT drug_number_detail_test (random,projectid,groupname,status) VALUES (?,?,?,?)"; PreparedStatement Prest=conn.preparestatement (sql,resultset.type_scroll_sensitive,resultset.concur_read_only); for(Drugmumberdetailvo enter:list) {prest.setstring (1, Enter.getrandom ()); Prest.setint (2, Enter.getproject ()); Prest.setint (3, Enter.getgroup ()); Prest.setint (4, Enter.getstatus ()); Prest.addbatch (); } prest.executebatch (); Conn.commit (); Conn.close (); String StartTi1= Datetimeutil.getformatdatetime (Newjava.util.Date ()); System.out.println ("PreparedStatement do Insert knot time" +startTi1); } Catch(SQLException ex) {Logger.getlogger (Jdbcbatchinsert.class. GetName ()). log (Level.severe,NULL, ex); } Catch(ClassNotFoundException ex) {Logger.getlogger (Jdbcbatchinsert.class. GetName ()). log (Level.severe,NULL, ex); } }
Test class:
Packagecom.hyhl.test;Importjava.util.ArrayList;Importjava.util.List;Importjavax.persistence.criteria.CriteriaBuilder.In;ImportOrg.junit.After;ImportOrg.junit.Before;Importorg.junit.Test;ImportCom.hyhl.DrugFactory.vo.DrugMumberDetailVo; Public classjdbcbatchinserttest {jdbcbatchinsert Jdbcbatchinsert=NULL; Publicjdbcbatchinserttest () {} @Before Public voidsetUp () {Jdbcbatchinsert=NewJdbcbatchinsert (); } @After Public voidTearDown () {Jdbcbatchinsert=NULL; } @Test Public voidTestprepare () {List<DrugMumberDetailVo> list=NewArraylist<drugmumberdetailvo>(); for(inti=0;i<20000;i++) {Drugmumberdetailvo query=NewDrugmumberdetailvo (); Query.setgroup (0); Query.setproject (3); Query.setstatus (1); intStartnumber=0; if(i+1<10) {Startnumber=integer.valueof ("2100000" +string.valueof (i+1)); }Else if(i+1<100) {Startnumber=integer.valueof ("210000" +string.valueof (i+1)); }Else if(i+1<1000) {Startnumber=integer.valueof ("21000" +string.valueof (i+1)); }Else if(i+1<10000) {Startnumber=integer.valueof ("2100" +string.valueof (i+1)); }Else if(i+1<100000) {Startnumber=integer.valueof ("+string.valueof" (i+1)); }Else if(i+1<1000000) {Startnumber=integer.valueof ("+string.valueof" (i+1)); } query.setrandom (String.valueof (Startnumber)); List.add (query); } jdbcbatchinsert.insertbybatchpreparestat (list); } }
Efficiency is faster than for-loop insert data
Batch additions to JDBC