Kürzlich habe ich im Projekt auf ein Problem gestoßen: Daten in den Hintergrund importieren und Daten in die Datenbank einfügen. Die importierte Datenmenge hat Zehntausende von Datenstücken und in Betracht ziehen, Daten in Chargen einzufügen.
Basierend auf den Online -Informationen habe ich eine kleine Demo geschrieben, und die Demo -Download -Adresse wurde am Ende des Artikels beigefügt
1. Erstellen Sie ein neues Projekt: Die Projektverzeichnisstruktur ist in der folgenden Abbildung das entsprechende JAR -Paket hinzugefügt
2. Erstellen Sie eine neue Datenbanktabelle: ACOCT_INFO
Table account_info ("id" nummer (12) nicht null, "username" varchar2 (64 byte) null, "password" varchar2 (64 byte) null, "Geschlecht" char (1 byte) null, "E -Mail" varchar2 (64 Byte) null, "create_date" data null) 3.. AccountInfo -Entitätsklasse erstellen:
paket com.oracle.entity; import Java.sql.date; öffentliche Klasse AccountInfo {private long id; privater String -Benutzername; privates Zeichenfolgenkennwort; privates String -Geschlecht; private Zeichenfolge E -Mail; privates Datum erstellt; public long getid () {return id; } public void setId (Long id) {this.id = id; } public String getUnername () {return userername; } public void setUnername (String -Benutzername) {this.username = userername; } public String getPassword () {Kennwort zurückgeben; } public void setPassword (String -Passwort) {this.password = password; } public String getGerTer () {Return Gender; } public void setGender (String -Geschlecht) {this.gender = Gender; } public String getemail () {E -Mail zurückgeben; } public void setemail (String -E -Mail) {this.email = E -Mail; } public date getCreatedate () {return createdate; } public void setCreatedate (Datum erstellt) {this.createdate = createdate; } @Override public String toString () {return "accountInfo [id =" + id + ", userername =" + username + ", password =" + password + ", gender =" + gender + ", E -Mail =" + E -Mail + ", createdate =" + createdate + "]"; }} V.
Paket com.oracle.mapper; import java.util.list; import com.oracle.entity.accountinfo; public interface accountInfomapper { / *** alle Daten abfragen* @return* / list <Contoinfo> queryAllAccountinfo (); / ** * Batch -Daten einfügen * * @param AccountInfolist * @Return */ int batchInsertAccountInfo (Liste <Contoinfo> accountInfolist);}5. MyBatis-Konfigurationsdatei erstellen: mybatis-configuration.xml
<? <transactionManager type = "jdbc" /> <dataSource type = "Pooled"> <Eigenschaft name = "treiber" value = "oracle.jdbc.driver value = "xxx"/> </dataSource> </umwelt> </Umgebungen> <mapper> <mapper ressourcen = "config/contoinfomapper.xml"/> </mappers> </configuration>
S.
Die Stapelinsertion -Datenbank von Oracle unterscheidet sich von MySQL.
MySQL:
Die Codekopie lautet wie folgt: Einfügen in Konto_info (ID, Benutzername, Passwort, Geschlecht, E -Mail, create_date) Werte (,,,,) (,,,,,)
Orakel:
Kopieren Sie den Code wie folgt: In Account_Info (ID, Benutzername, Kennwort, Geschlecht, E -Mail, create_date) einfügen (wählen Sie 1 ,,,,, von Dual Union alle auswählen 1 ,,,,, von Dual)
<? namespace = "com.oracle.mapper.accountInfomapper"> <!-Voller Klassenname der Schnittstelle-> <!-Typ: Voller Klassenname der Entitätsklasse-> <resultMap id = "baseresultmap" type = "com.entity.Entity.accountinfo"> <id column = "id" id "id" id "jdbctype Property = "Benutzername" jdbctype = "varchar" /> <result column = "password" property = "password" jdbctype = "varchar" /> <result column = "Geschlecht JdbcType = "Date"/> </resultMap> <!-ID stimmt mit dem Methodennamen in der Schnittstelle überein. parameterType = "java.util.list"> in account_info (id, username, passwart, geschlecht, mail, create_date) (<foreach collection #{AccountInfo.gender}, #{accountInfo.email}, #{accountInfo.createdate} von Dual </foreach>) </insert> </minkPer> 7. Testklassen schreiben:
paket com.oracle.test; import java.io.inputstream; import Java.sql.date; import Java.util.ArrayList; import Java.util.list; Import Java.util.list; org.apache.ibatis.session.sqlSessionFactoryBuilder; import com.oracle.entity.accountinfo; importieren com.oracle.mapper.accountinFomapper; InputStream InputStream = Ressourcen.getResourceAsStream (Ressource); SQLSessionFactory SessionFactory = new SQLSessionFactoryBuilder () .build (InputStream); SQLSession Session = SessionFactory.OpenSession (); AccountInFomapper mapper = session.getMapper (AccountInfomapper.Class); Liste <Contoinfo> accountInfolist = mapper.queryallAccountInfo (); if (accountInfolist == null) {System.out.println ("Das Ergebnis ist null."); } else {for (accountInfo personInfo: accountInfolist) {System.out.println (personInfo); }} mapper.batchInsertAccountInfo (generatedata ()); Session.Commit (); } statische Liste <Contoinfo> generatedata () {list <Contoinfo> result = new ArrayList <Contoinfo> (); AccountInfo Account = new AccountInfo (); Account.SetId (3L); Account.SETUSERNAME ("Zhangsanfeng"); Account.SetPassword ("123456"); Account.SetGender ("1"); Account.Setemail ("[email protected]"); Account.SetCreatedate (neues Datum (System.currentTimemillis ())); result.add (Konto); Account = new AccountInfo (); Account.SetId (4L); Account.Setusername ("Zhouzhiruo"); Account.SetPassword ("Zhangwuji"); Account.SetGender ("0"); Account.Setemail ("[email protected]"); Account.SetCreatedate (neues Datum (System.currentTimemillis ())); result.add (Konto); Account = new AccountInfo (); Account.SetId (5L); Account.SetUnername ("Zhaomin"); Account.SetPassword ("Zhangwuji"); Account.SetGender ("0"); Account.Setemail ("[email protected]"); Account.SetCreatedate (neues Datum (System.currentTimemillis ())); result.add (Konto); Rückgabeergebnis; }}Quellcode herunterladen: http://xiazai.vevb.com/201606/yuanma/java-oracle(vevb.com).rar
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.