最近、プロジェクトで問題に遭遇しました。データをバックグラウンドにインポートし、データベースにデータを挿入します。インポートされたデータ量には数万個のデータがあり、バッチにデータを挿入することを検討します。
オンライン情報に基づいて、私は小さなデモを書き、記事の最後にデモのダウンロードアドレスが添付されました
1.新しいプロジェクトの作成:プロジェクトディレクトリ構造を下の図に示します。対応するJARパッケージを追加します
2。新しいデータベーステーブルを作成:account_info
テーブルaccount_info( "id" number(12)not null、 "username" varchar2(64 byte)null、 "varchar2(64 byte)null、" jender "char(1 byte)null、email" varchar2(64 byte)null、 "create_date" null)
3。accountInfoエンティティクラスを作成します。
パッケージcom.oracle.entity; import java.sql.date; public class AccountInfo {private long id;プライベート文字列ユーザー名;プライベート文字列パスワード。プライベートストリングジェンダー;プライベート文字列メール;プライベートデート作成型; public long getId(){return id; } public void setid(long id){this.id = id; } public string getUsername(){return username; } public void setUsername(string username){this.username = username; } public string getPassWord(){パスワードを返します。 } public void setPassword(string password){this.password = password; } public string getGender(){return gender; } public void setgender(string gender){this.gender = gender; } public string getemail(){return email; } public void setemail(string email){this.email = email; } public date getCreateDate(){return createdate; } public void setCreateDate(date recutedate){this.createdate = createdate; } @Override public String toString(){return "AccountInfo [id =" + id + "、username =" + username + "、password =" + password + "、gender =" + gender + "、email =" + email + "、createdate =" + createdate + "]"; }} 4.新しいインターフェイスマッピングクラスを作成:AccountInFomapper.java
パッケージcom.oracle.mapper; import java.util.list; import com.oracle.entity.accountinfo; public interface accountinfomapper { / *** query all data* @return* / list <counceinfo> queryallaccountinfo(); / ** *バッチ挿入データ * * @param AccountInfolist * @return */ int batchinsertaccountinfo(list <councedinfo> councountInfolist);}5. mybatis構成ファイルの作成:mybatis-configuration.xml
<?xml version = "1.0" encoding = "utf-8"?> <!doctype構成public " - // mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-clufig.dtd" type = "jdbc" /> <dataSource type = "pooled"> <プロパティ名= "driver" value = "oracle.jdbc.driver.oracledriver" /> <プロパティ名= "url" value = "jdbc:thin:@localhost:1521:orcl" /> <property = "username" "username" /> <property = "" xxx value = "xxx"/> </dataSource> </entument> </environments> <mappers> <mapper resource = "config/config/councountinfomapper.xml"/> </mappers> </configuration>
6.インターフェイスマッピング構成ファイルを作成:AccountInFomapper.xml
Oracleのバッチ挿入データベースはMySQLとは異なります。
mysql:
コードコピーは次のとおりです。Account_info(ID、ユーザー名、パスワード、性別、電子メール、create_date)値(,,,,)(,,,,,)に挿入
オラクル:
コードを次のようにコピーします。Account_Info(ID、ユーザー名、パスワード、性別、電子メール、create_date)に挿入(1 ,,,,,、 from dual select 1 ,,,,, from from from from from from from dual)
<?xml version = "1.0" encoding = "utf-8"?> <!doctype mapper public " - // mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd namespace = "com.oracle.mapper.accountinfomapper"> <! - flull class name of interface-> <! - type:entity class-> <resultmap id = "baseResultmap" Type = "com.oracle.entity.accountinfo"> <id column = "Id" jdbctype " /> <columnalプロパティ= "username" jdbctype = "varchar" /> <result column = "password" property = "password" jdbctype = "varchar" /> <result colummen = "gender"プロパティ= "ジェンダー" jdbctype = "jdbctype" />> <result column = "email property" email "jdbctype =" varchar " jdbctype = "date"/> </resultmap> <! - idはインターフェイスのメソッド名と一致しています - > <select id = "queryallaccountinfo" resultmap = "baseresultmap"> select、select id、username、username、email、email、create_date from cource_info < parametertype = "java.util.list"> account_info(id、username、username、feand、email、create_date)(<foreach collection = "list" index = "" accountinfo "separator =" anie all "> select#{courcountinfo.id}、#{courcountinfo.usnameme #{accountinfo.gender}、#{accountinfo.email}、#{accountinfo.createdate} from dual </foreach>)</insert> </mapper> 7。テストクラスを書き込む:
パッケージcom.oracle.test; Import java.io.inputstream; Import java.sql.date; import java.util.arraylist; import java.util.list; import java.util.list; import org.apach.ibatis.io.io.resources; import org.apache.ibatis.sessions.sclsessionfutsfutsfutsfutsfutsfutsfuth org.apache.ibatis.session.sqlsessionfactorybuilder; Import com.oracle.entity.accountinfo; Import com.oracle.mapper.accountinfomapper; public static void main(string [] arg)Throws Exception {string/mybatis-configuration.xml " inputstream inputstream = resources.getResourceasStream(リソース); sqlSessionFactory SessionFactory = new SQLSessionFactoryBuilder().Build(inputstream); sqlsession session = sessionfactory.opensession(); accountInfomapper mapper = session.getMapper(AccountInFomapper.Class); List <AccountInfo> AccountInfolist = Mapper.QueryAllaccountInfo(); if(accountInfolist == null){system.out.println( "結果はnull。"); } else {for(accountinfo personinfo:councountInfolist){system.out.println(personinfo); }} mapper.batchinsertaccountinfo(generatedata()); session.commit(); } static list <AccountInfo> generatedata(){list <AccountInfo> result = new ArrayList <AccountInfo>(); accountInfo account = new AccountInfo(); account.setId(3L); account.setUsername( "zhangsanfeng"); account.setPassWord( "123456"); account.setgender( "1"); account.setemail( "[email protected]"); account.setcreatedate(new Date(system.currenttimemillis())); result.add(アカウント); account = new AccountInfo(); account.setId(4l); account.setUsername( "zhouzhiruo"); account.setPassWord( "Zhangwuji"); account.setgender( "0"); account.setemail( "[email protected]"); account.setcreatedate(new Date(system.currenttimemillis())); result.add(アカウント); account = new AccountInfo(); account.setId(5L); account.setusername( "zhaomin"); account.setPassWord( "Zhangwuji"); account.setgender( "0"); account.setemail( "[email protected]"); account.setcreatedate(new Date(system.currenttimemillis())); result.add(アカウント);返品結果; }}ソースコードのダウンロード:http://xiazai.vevb.com/201606/yuanma/java-oracle(vevb.com).rar
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。