Baru -baru ini, saya mengalami masalah dalam proyek: Impor data ke latar belakang dan masukkan data ke dalam database. Jumlah data yang diimpor memiliki puluhan ribu bagian data, dan pertimbangkan untuk memasukkan data dalam batch;
Berdasarkan informasi online, saya menulis demo kecil, dan alamat unduhan demo dilampirkan di akhir artikel
1. Buat Proyek Baru: Struktur Direktori Proyek ditunjukkan pada gambar di bawah ini, tambahkan paket JAR yang sesuai
2. Buat tabel database baru: Account_info
Buat Table Account_info ("ID" Nomor (12) bukan null, "nama pengguna" varchar2 (64 byte) null, "kata sandi" varchar2 (64 byte) null, "gender" char (1 byte) nol, "email" varchar2 (64 byte) null, "create_date" tanggal null)) 3. Buat Kelas Entitas AccountInfo:
paket com.oracle.entity; import java.sql.date; class public AccountInfo {private long id; nama pengguna string pribadi; kata sandi string pribadi; Jenis kelamin string pribadi; email string pribadi; tanggal pribadi dibuat; publik 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 () {return kata sandi; } public void setPassword (kata sandi string) {this.password = kata sandi; } 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; } tanggal publik getCreateDate () {return createdate; } public void setCreateDate (tanggal dibuat) {this.createdate = createdate; } @Override Public String ToString () {return "AccountInfo [id =" + id + ", username =" + username + ", password =" + password + ", gender =" + jenis kelamin + ", email =" + email + ", createate =" + created + "]"; }} 4. Buat kelas pemetaan antarmuka baru: AccountInfomapper.java
Paket com.oracle.mapper; import java.util.list; import com.oracle.entity.accountInfo; AccountInfomapper antarmuka publik { / *** query semua data* @return* / list <AccountInfo> queryAllAccountInfo (); / ** * Batch Insert Data * * @param AccountInfolist * @return */ int BatchinserTacCountInfo (Daftar <AccountInfo> AccountInfolist);}5. Buat file konfigurasi mybatis: mybatis-configuration.xml
<? Xml Version = "1.0" encoding = "utf-8"?> <! Doctype Configuration Public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <porporage> <porporage = "Lingkungan =" Lingkungan = "" "" " type = "jdbc" /> <datasource type = "pooled"> <properti name = "driver" value = "oracle.jdbc.driver.oracledRiver" /> <name properti = "url" value = "jdbc: oracle: thin: @localhost: 1521: orl" /> <nama properten = "USLEM: @LOCALHOST: 1521: orcl" /<oracle "name =" USOUNT = "x value = "xxx"/> </dateSource> </vervence> </preenments> <mappers> <mapper resource = "config/accountInfomapper.xml"/> </phappers> </configuration>
6. Buat file konfigurasi pemetaan antarmuka: AccountInfomapper.xml
Database penyisipan batch Oracle berbeda dari MySQL.
Mysql:
Salinan kode adalah sebagai berikut: Masukkan ke dalam akun_info (id, nama pengguna, kata sandi, jenis kelamin, email, create_date) nilai (,,,,,) (,,,,,,,,
Peramal:
Salin kode sebagai berikut: Masukkan ke akun_info (id, nama pengguna, kata sandi, jenis kelamin, email, create_date) (pilih 1 ,,,,,, dari serikat ganda semua pilih 1 ,,,,,, dari ganda)
<? 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"> <mapper naampaper = "c.aM.Acpape = "c.aPper." Nama kelas penuh antarmuka-> <!-Type: Nama kelas lengkap kelas entitas-> <resultMap id = "baseResultMap" type = "com.oracle.entity.accountInfo"> <id kolom = "id" properti = "id" JDBCTYPE = "decimal" /> <hasil hasil = "nama pengguna" nama pengguna = "" username "=" varch " /" varch " /" varch "varch /varch /varcrol" varch "varchor =" varch "varchor =" ubername "varch" varch " properti = "kata sandi" jdbctype = "varchar" /> <hasil kolom = "gender" properti = "gender" jdbctype = "char" /> <hasil kolom = "email" properti = "email" jdbctype = "varchar" /> <hasil kolom = "create" properti = "createTe" jdbctype = "date" < / /<penyelaman < / /< /hasilnya dengan consepent < /consePate <! id="queryAllAccountInfo" resultMap="BaseResultMap"> select ID, USERNAME,PASSWORD, GENDER, EMAIL, CREATE_DATE from ACCOUNT_INFO </select> <insert id="batchInsertAccountInfo" parameterType="java.util.List"> INSERT INTO ACCOUNT_INFO(ID, USERNAME,PASSWORD,GENDER, EMAIL,CREATE_DATE) ( <foreach collection="list" index="" item="accountInfo" separator="union all"> select #{accountInfo.id}, #{accountInfo.userName}, #{accountInfo.password}, #{accountInfo.gender}, #{accountInfo.email}, #{accountInfo.createDate} from dual </foreach> ) </sert> </mapper> 7. Tulis kelas tes:
Paket com.oracle.test; impor java.io.inputstream; impor java.sql.date; import java.util.arraylist; import java.util.list; java.util.list; import org.apache.ibatis.io.Resources; impor org.apache.apache. org.apache.ibatis.Session.SQLSessionFactoryBuilder; import com.oracle.entity.accountInfo; import com.oracle.mapper.accountinfomapper; kelas publik mybatistest {public static void main (string [] args) melempar pengecualian {string resource = "mybat/mybatis/mybatis. InputStream inputStream = Resources.getResourceAsstream (sumber daya); SQLSessionFactory sessionFactory = SQLSessionFactoryBuilder baru () .build (inputStream); SQLSession session = sessionfactory.opensession (); AccountInfomapper mapper = session.getMapper (accountInfomapper.class); Daftar <AccountInfo> AccountInfolist = mapper.QueryAllAccountInfo (); if (AccountInfolist == null) {System.out.println ("Hasilnya adalah null."); } else {for (AccountInfo PersonInfo: AccountInfolist) {System.out.println (personInfo); }} mapper.batchinsertAccountInfo (generatedata ()); session.commit (); } Daftar statis <AccountInfo> generatedata () {List <AccountInfo> result = ArrayList baru <AccountInfo> (); AccountInfo Account = New AccountInfo (); Account.setid (3L); Account.setUserName ("Zhangsanfeng"); Account.setPassword ("123456"); Account.setgender ("1"); akun.setemail ("[email protected]"); Account.setCreateDate (tanggal baru (System.CurrentTimeMillis ())); result.add (akun); akun = new AccountInfo (); Account.setid (4L); Account.setusername ("Zhouzhiruo"); Account.setPassword ("Zhangwuji"); Account.setgender ("0"); akun.setemail ("[email protected]"); Account.setCreateDate (tanggal baru (System.CurrentTimeMillis ())); result.add (akun); akun = new AccountInfo (); Account.setid (5L); Account.setUserName ("Zhaomin"); Account.setPassword ("Zhangwuji"); Account.setgender ("0"); akun.setemail ("[email protected]"); Account.setCreateDate (tanggal baru (System.CurrentTimeMillis ())); result.add (akun); hasil pengembalian; }}Unduh Kode Sumber: http://xiazai.vevb.com/201606/yuanma/java-oracle(vevb.com).rar
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.