تصف هذه المقالة طريقة السبات لإضافة بيانات على دفعات. شاركه للرجوع إليه ، على النحو التالي:
1. هيكل دليل برنامج Hibernate_016_BatchadDdata:
2. حزمة الجرة التي تم تقديمها في دليل LIB:
3. Medicinedao.java Code:
حزمة com.xqh.dao ؛ استيراد java.util.list ؛ استيراد org.hibernate.session ؛ استيراد com.xqh.model.medicine ؛ استيراد com.xqh.util.hibernateutil ؛/*** param splic Savemedicines (قائمة <ChineR> MS) {Session Session = null ؛ if (ms! = null && ms.size ()> 0) {try {session = hibernateutil.getSession () ؛ // الحصول على جلسة Session.begintransaction () ؛ // قم بتشغيل الطب الطب = الفارغ ؛ // إنشاء كائن دوائي // حلقة كائن الدواء لـ (int i = 0 ؛ i <ms.size () ؛ i ++) {medicine = (medicine) ms.get (i) ؛ // الحصول على جلسة الدواء. // حفظ كائن الدواء // يتم كتابة مجموعة الكائنات المدرجة على الفور إلى قاعدة البيانات والذاكرة الحرة إذا (i ٪ 10 == 0) {session.flush () ؛ session.clear () ؛ }} session.getTransaction (). commice () ؛ // إرسال الأشياء} catch (استثناء e) {E.PrintStackTrace () ؛ // print error message session.getTransaction (). Rollback () ؛ // سوف يقوم الخطأ بتراجع الشيء} أخيرًا {hibernateutil.closesession (الجلسة) ؛ // إغلاق الجلسة}}}}4. Medicay.Java Code Source Code:
Package com.xqh.model ؛/*** فئة استمرار المخدرات*/الطب العام العام {private integer id ؛ // رقم المعرف اسم السلسلة الخاصة ؛ // اسم المخدرات السعر المزدوج الخاص ؛ // Price Private String Factoryadd ؛ // عنوان المصنع عدد صحيح عام getId () {معرف الإرجاع ؛ } public void setId (integer id) {this.id = id ؛ } السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ } public double getPrice () {return price ؛ } public void setPrice (price double) {this.price = price ؛ } السلسلة العامة getFactoryAdd () {return factoryadd ؛ } public void setFactoryAdd (String FactoryAdd) {this.factoryadd = factoryadd ؛ }}5. Medication.HBM.XML رمز المصدر:
<؟ table = "tb_medicine_batch"> <id name = "id"> <generator/> </id> <property name = "name" not-null = "true" length = "200"/> <Propert
6.Savemedicine.java كود المصدر:
package com.xqh.servlet ؛ استيراد java.io.ioException ؛ استيراد java.util.arraylist ؛ استيراد java.util.list ؛ استيراد javax.servlet.servletexception ؛ استيراد javax.servlet.http.httpservlet ؛ استيراد javax.servlet.http.htttplet javax.servlet.http.HttpServletResponse;import com.xqh.dao.MedicineDao;import com.xqh.model.Medicine;public class SaveMedicine extends HttpServlet { private static final long serialVersionUID = 3743334039515411666L; DOPOST public void (طلب httpservletrequest ، استجابة httpservletresponse) يلقي servleTexception ، ioException {// أسماء سلسلة اسم الدواء [] = request.getParametervalues ("name") ؛ // أسعار سلسلة الأسعار [] = request.getParameTervalues ("السعر") ؛ // سلسلة عنوان المصنع تضيف [] = request.getParametervalues ("FactoryAdd") ؛ // حكم الصلاحية إذا (الأسماء! = null && الأسعار! = null && adds! = null) {if (names.length == repress.length. الطب م = فارغ ؛ // drug object // instantient كائن الدواء بدوره وأضفه إلى المجموعة لـ (int i = 0 ؛ i <names.length ؛ i ++) {m = new medicine () ؛ // instantiate the druc // envition the sentribute m.setName (names [i]) ؛ M.SetPrice (double.parsedouble (الأسعار [i])) ؛ M.SetFactoryAdd (يضيف [i]) ؛ M.Add (M) ؛ // أضف إلى set} // instantiate the medicinedao objectedao dao = new medicinedao () ؛ Dao.savemedicines (MS) ؛ // Batch Save the Drug request.setattribute ("info" ، "يتم حفظ معلومات الدواء بنجاح !!!") ؛ }} // forward (طلب ، استجابة) ؛ }}7.
/ * * لتغيير هذا القالب ، اختر الأدوات | قوالب * وفتح القالب في المحرر. */package com.xqh.Util ؛ استيراد java.io.ioException ؛ استيراد javax.servlet.filter ؛ استيراد javax.servlet.filterchain مرشح ترميز الأحرف*/فئة عامة ، قم بتنفيذ Filter {protect string charging = null ؛ FilterConfig FilterConfig المحمي = فارغ ؛ public void init (filterConfig filterConfig) يلقي servleTexception {this.filterConfig = filterConfig ؛ this.encoding = filterConfig.getInitParameter ("الترميز") ؛ } public void dofilter (request servletRequest ، استجابة servletResponse ، سلسلة filterchain) يلقي ioException ، servleTexception {if (الترميز! = null) {request.setcharacterencoding (الترميز) ؛ استجابة. } chain.dofilter (طلب ، استجابة) ؛ } public void Dorner () {this.encoding = null ؛ this.filterConfig = null ؛ }}8.hibernateutil.java رمز المصدر:
حزمة com.xqh.util ؛ استيراد org.hibernate.hibernateException ؛ استيراد org.hibernate SessionFactory Factory = null ؛ // Block Static Static {Try {// تحميل تكوين ملف تكوين Hibernate cfg = configuration () // instantiate sessionfactory factory = cfg.buildSessionFactory () ؛ } catch (hibernateException e) {e.printStackTrace () ؛ }} / *** احصل على كائن جلسة* كائن جلسة العودة* / GetSession Session () {// إذا لم تكن SessionFacroty فارغة ، تمكين جلسة الجلسة = (المصنع! = فارغ)؟ المصنع. opensession (): فارغة ؛ جلسة العودة ؛ } / *** الحصول على كائن SessionFactory* @regurn sessionfactory كائن* / SessionFactory getSessionFactory () {Freturn Factory ؛ } / *** إغلاق الجلسة* param كائن الجلسة* / public static void closeSession (جلسة الجلسة) {if (session! = null) {if (session.isopen ()) {session.close () ؛ // إغلاق الجلسة}}}}9.hibernate.cfg.xml رمز المصدر:
<؟ <Session-Factory> <!-Dialect-> <property name = "dialect"> org.hibernate.dialect.mysqldialect </sopperation> <!-اتصال قاعدة البيانات-> <property name = "connection.url"> jdbc: mysql: // localhost: 3306/searn </property> database <! <!-كلمة مرور اتصال قاعدة البيانات-> <property name = "connection.password"> 1120 </property> <!-DATABASE DRIVER-> <property name = "connection.driver_class"> com.mysql.jdbc.driver </properن name = "hibernate.hbm2ddl.auto"> تحديث </property> <!-ملف التعيين-> <mapping resource = "com/xqH/mode
10.LOG4J.Properties رمز المصدر:
### رسائل السجل المباشر إلى stdout ### log4j.appender.stdout = org.apache.log4j.consoleAppenderLog4j.appender.stdout.target = system.outlog4j.appender.stdout.layout = org.apache.log4j.patternlayoutlog4j.appender.layout.layout.conversion ٪ C {1}: ٪ l - ٪ m ٪ n ### الرسائل المباشرة لتقديم hibernate.log #### log4j.appender.file = org.apache.log4j.fileappender#log4j.appender.file.file = hibernate.log#log4j.appender.file.layout = org.apache.log4j.patternlayout#log4j.appender.file.layout.conversion ٪ C {1}: ٪ l - ٪ m ٪ n ### تعيين مستويات السجل - لمزيد من تغيير تسجيل التسجيل "info" إلى "debug" ### log4j.rootlogger = warn ، stdout#log4j.logger.org.hibernate = info#log4j.logger.org.hibernate = debug نشاط#log4j.logger.org.hibernate.hql.ast.ast = debug ### سجل فقط sql#log4j.logger.org.hibernate.sql = debug ### log jdbc bind parameters #### log4j.logger.org.hibernate.type = info#log4j.logger.org.hibernate.type = debug ### سجل Schema تصدير/تحديث #### log4j.logger.org.hibernate.tool.hbm2dd = debug ### log Trees#log4j.logger.org.hibernate.hql = debug ### سجل النشاط ذاكرة التخزين المؤقت #### log4j.logger.org.hibernate.cache = debug ### سجل المعاملات#log4j.logger.org.hibernate عملية الاستحواذ#log4j.logger.org.hibernate.jdbc = debug ## تمكين السطر التالي إذا كنت تريد تعقب الاتصال #########عند استخدام drivermanagerconnectionprovider ########################################trg.hibernate.connection.drivermanganctionpery = trace11.index.jsp رمز المصدر:
<٪@ page language = "java" contentType = "text/html" pageencoding = "gbk" ٪> <! doctype html public "-// w3c // dtd html 4.01 transitional // en"> <html> <head> batch addate aldation </ettern> #ebebeb ؛ Font-Family: Verdana ؛ حجم الخط: 12 بكسل ؛ خلفية اللون: #EBEBB ؛ اللون: أسود. رفع الخط: 20 بكسل ؛ الارتفاع: 30px ؛} </style> <script type = "text/javaScript"> function add () {var a = document.getElementById ("a") ؛ var b = document.getElementById ("b") ؛ B.InnerHtml += A.InnerHtml ؛ } وظيفة تقليل () {var a = document.getElementById ("a") ؛ var b = document.getElementById ("b") ؛ var stra = a.innerhtml ؛ var strb = b.innerhtml ؛ B.innerhtml = strb.substring (0 ، strb.length - stra.length) ؛ } وظيفة حفظ (formname) {for (i = 0 ؛ i <formname.length ؛ i ++) {if (formName.Elements [i] .value == "") {Alert ("يرجى ملء المعلومات الكاملة!") ؛ العودة كاذبة }}} </script> </head> <body onload = "add ()"> <form action = "savemedicine" method = "post" onsubmit = "return save (this) ؛"> <table align = "center" cellpadding = "3" cellpacing = "1" </tr> <tr> <td> <div id = "b"> </viv> </td> </td> </tr> <td> <td> <type type = "button" value = "إضافة سطر" onclick = "add ()"> <input type = "button" value = "value () </form> <div id = "a" style = "display: none"> <table align = "center"> <tr> <td> الاسم: </td> <td> <type type = "text" name = "name" size = "13" </td> <td> <input type = "text" name = "factoryadd" size = "30"> </td> </tr> </table> </viv> </body> </html>12.Result.JSP رمز المصدر:
<٪@ page language = "java" contentType = "text/html" pageencoding = "gbk" ٪> <! doctype html public "-// w3c // dtd html 4.01 transitional // en"> <html> <head> etterfication </title> HREF = "STYLES.CSS"> -> </head> <body> <div align = "center"> <font color = "red" size = "12px ؛" style = "font-weight: bold ؛"> $ {info} </font> <br> <br> <br> <br> <br> <a href = "index.jsp"> return </a> </viv> </body> </html>13. جدول بيانات TB_MEDICINE_BATCH:
14. لقطة شاشة لنتائج تشغيل البرنامج:
آمل أن يكون الوصف في هذه المقالة مفيدًا لبرمجة Java للجميع استنادًا إلى إطار السبات.