لقد واجهت مؤخرًا مشكلة في المشروع: استيراد البيانات في الخلفية وأدخل البيانات في قاعدة البيانات. يحتوي كمية البيانات المستوردة على عشرات الآلاف من أجزاء البيانات ، ويفكر في إدخال البيانات على دفعات ؛
بناءً على المعلومات عبر الإنترنت ، كتبت عرضًا تجريبيًا صغيرًا ، وتم إرفاق عنوان التنزيل التجريبي في نهاية المقالة
1. إنشاء مشروع جديد: يظهر هيكل دليل المشروع في الشكل أدناه ، أضف حزمة الجرة المقابلة
2. قم بإنشاء جدول قاعدة بيانات جديد: account_info
إنشاء Table account_info (رقم "معرف" (12) لا فارغ ، "اسم المستخدم" varchar2 (64 بايت) فارغ ، "كلمة المرور" varchar2 (64 بايت) لاغية ، "الجنس" char (1 بايت) null ، "البريد الإلكتروني" varchar2 (64 بايت) null ، "create_date"
3. إنشاء فئة كيان الحساب:
package com.oracle.entity ؛ import java.sql.date ؛ public class accountInfo {private long id ؛ اسم المستخدم الخاص بالسلسلة الخاصة ؛ كلمة مرور السلسلة الخاصة ؛ سلسلة جنسية خاصة ؛ البريد الإلكتروني الخاص بالسلسلة الخاصة ؛ تاريخ خاص تم إنشاؤه ؛ Public Long getId () {return id ؛ } public void setId (id long) {this.id = id ؛ } السلسلة العامة getUserName () {return username ؛ } public void setusername (string username) {this.userName = username ؛ } السلسلة العامة getPassword () {return password ؛ } public void setPassword (سلسلة كلمة مرور) {this.password = password ؛ } السلسلة العامة getGender () {return الجنس ؛ } public void setgender (سلسلة الجنس) {this.gender = الجنس ؛ } السلسلة العامة getEmail () {return email ؛ } public void setemail (string email) {this.email = email ؛ } التاريخ العام getCreatedAte () {return createdAte ؛ } public void setCreatedAte (date createdate) {this.createdate = createTate ؛ } Override public string toString () {return "accountInfo [id =" + id + "، username =" + username + "، password =" + password + "، gender =" + gender + "، email =" + emair }} 4. إنشاء فئة رسم خرائط جديدة: accountInfomapper.java
package com.oracle.mapper ؛ import java.util.list ؛ import com.oracle.entity.accountInfo ؛ public justiptinfomapper { / *** Query all data* @return* / rip / ** * بيانات إدراج الدُفعات * * param accountInfolist * return */ int batchinsertAccountInfo (قائمة <CounterInfo> accountInfolist) ؛}5. إنشاء ملف تكوين MyBatis: mybatis-configuration.xml
<؟ <TransactionManager type = "jdbc" /> <dataSource type = "prouded"> <property name = "driver" value = "oracle.jdbc.driver.oracledriver" /> <property name = "url" value = "jdbc: oracle: thin: localhost: 1521: orcl value = "xxx"/> </dataSource> </eversity> </eversionments> <mappers> <mapper resource = "config/accountInfomapper.xml"/> </nybers> </ispification>
6. إنشاء ملف تكوين رسم خرائط: accountInfomapper.xml
تختلف قاعدة بيانات إدخال دفعة Oracle عن MySQL.
MySQL:
نسخة الكود كما يلي: أدخل في Account_info (المعرف ، اسم المستخدم ، كلمة المرور ، الجنس ، البريد الإلكتروني ، Create_Date) (،،،،،) (،،،،،،))
أوراكل:
انسخ الرمز على النحو التالي: أدخل في Account_info (المعرف ، اسم المستخدم ، كلمة المرور ، الجنس ، البريد الإلكتروني ، create_date) (SELECT 1 ،،،، ، من Dual Union All Select 1 ،،،،،،، from dual)
<؟ مساحة الاسم = "com.oracle.mapper.accountinfomapper"> <!-اسم الفئة الكاملة للواجهة-> <!-النوع: اسم الفئة الكاملة للفئة الكيان-> <resultmap id = "baseresultmap" type = "com.oracle.entity.AccountInfo"> <id "id" property = "jdbctype =" property = "username" jdbctype = "varchar" /> <result column = "password" property = "password" jdbctype = "varchar" /> <result column = "gender" property = "gender" jdbctype = "date"/> </resultmap> <!-معرف يتوافق مع اسم الطريقة في الواجهة-> <select id = "queryAllAccountInfo" resultMap = "BaseresultMap"> SELECT ID ، usernam parametertype = "java.util.list"> insert in account_info (معرف ، اسم المستخدم ، كلمة المرور ، الجنس ، البريد الإلكتروني ، البريد الإلكتروني ، create_date) (<foreach collection = "list" index = "" item = "accountInfo" separator = "union all"> select #{accountinfo.id} ، #{accountInfo. #{accountinfo.gender} ، #{accountinfo.email} ، #{accountInfo.createdate} من Dual </foreach>) </insert> </mapper> 7. اكتب فصول الاختبار:
package com.oracle.test ؛ استيراد java.io.inputstream ؛ استيراد java.sql.date ؛ استيراد java.util.arraylist ؛ استيراد java.util.list ؛ import java.util.list ؛ import org.apache.ibatis.io.resources ؛ import org.apache.ibatis.session.sqls. org.apache.ibatis.session.sqlsessionfactorybuilder ؛ import com.oracle.entity.accountinfo ؛ import com.oracle.mapper.accountinfomapper ؛ public class myBatistest {public static void main (string [] inputStream inputStream = resources.getResourCeasStream (Resource) ؛ SQLSessionFactory SessionFactory = SQLSessionFactoryBuilder () .Build (InputStream) ؛ SQLSession Session = SessionFactory.OpenSession () ؛ AccountInfomapper mapper = session.getMapper (accountInfomapper.class) ؛ قائمة <CountInfo> accountInfolist = mapper.queryAllAccountInfo () ؛ if (accountInfolist == null) {system.out.println ("النتيجة هي null.") ؛ } آخر {for (accountInfo personinfo: accountInfolist) {system.out.println (personInfo) ؛ }} mapper.batchinsertAccountInfo (enderatedata ()) ؛ session.Commit () ؛ } القائمة الثابتة <CountInfo> enderatedata () {list <CorperInfo> result = new ArrayList <CorperInfo> () ؛ حساب accountInfo = جديد accountInfo () ؛ حساب. حساب. account.setPassword ("123456") ؛ حساب. account.setemail ("[email protected]") ؛ حساب. النتيجة. add (حساب) ؛ حساب = حساب جديد () ؛ حساب. حساب. account.setPassword ("Zhangwuji") ؛ account.setgender ("0") ؛ حساب. حساب. النتيجة. add (حساب) ؛ حساب = حساب جديد () ؛ حساب. حساب. account.setPassword ("Zhangwuji") ؛ account.setgender ("0") ؛ account.setemail ("[email protected]") ؛ حساب. النتيجة. add (حساب) ؛ نتيجة العودة }}رمز المصدر تنزيل:
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.