В этой статье описывается метод Hibernate для добавления данных в партиях. Поделитесь этим для вашей ссылки, следующим образом:
1. Hibernate_016_Batchadddata Структура каталога программы:
2. Пакет JAR, введенный в каталог LIB:
3. Medicinedao.java исходный код:
Пакет com.xqh.dao; import java.util.list; import org.hibernate.session; import com.xqh.model.medicine; import com.xqh.util.hibernateutil;/*** Операция базы данных о наркотиках**/Public Class Medicinedao {/*** Бэттерс. savemedicines (list <edicine> ms) {session session = null; if (ms! = null && ms.size ()> 0) {try {session = hibernateutil.getsession (); // получить сеанс сеанса.beginTransaction (); // включить вещи медицины Медицина = null; // Создать лекарственный объект // Цикть объекта лекарственного средства для (int i = 0; i <ms.size (); i ++) {Medicine = (Medicine) ms.get (i); // получить сессию лекарственного средства. SSAVE (медицина); // Сохранить объект лекарственного средства // Партия вставленных объектов немедленно записывается в базу данных и свободную память, если (i % 10 == 0) {session.flush (); session.clear (); }} session.getTransaction (). Commit (); // отправить вещи} catch (Exception e) {e.printstackTrace (); // распечатать сообщение об ошибке сеанса.getTransaction (). Rollback (); // Ошибка откат обратно вещь}, наконец, {hibernateutil.closesession (session); // закрыть сеанс}}}}4. Medicine.java исходный код:
Пакет com.xqh.model;/*** Класс постоянства наркотиков*/public class medicine {private integer id; // идентификационный номер частного имени строки; // название наркотиков частная двойная цена; // цена частная строка FactoryAdd; // заводской адрес public integer getId () {return id; } public void setId (Integer id) {this.id = id; } public String getName () {return name; } public void setName (string name) {this.name = name; } public Double GetPrice () {return Price; } public void setPrice (двойная цена) {this.price = цена; } public String getFactoryAdd () {return factoryAdd; } public void setFactoryAdd (String factoryAdd) {this.factoryAdd = factoryAdd; }}5. Medicine.hbm.xml исходный код:
<? xml version = "1.0"?> <! Doctype Hibernate Mapping Public "-// Hibernate/Hibernate Mapping Dtd 3.0 // en" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <nethiplage name = "com. TABLE = "TB_MEDICINE_BATCH"> <ID name = "ID"> <Generator/> </id> <name = "name" not null = "true" length = "200"/> <name = "price" not null = "true"/> <name = "factoryAdd" Length = "200"/> </class> </hibernate-mapping>
6.savemedicine.java исходный код:
пакет com.xqh.servlet; import java.io.ioexception; import java.util.arraylist; import java.util.list; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httperserveltrequest; javax.servlet.http.httpservletresponse; import com.xqh.dao.medicenedao; import com.xqh.model.medicine; открытый класс Savemedicine расширяет httpservlet {private static final long long serialversionuid = 3743334039515441166l; public void Dopost (httpservlectrequest, httpservletresponse response) Throws servletexception, ioexception {// имени лекарственного имени. // цена ценовой строки [] = request.getParametervalues ("цена"); // Заводская адресная строка добавляет [] = request.getParametervalues ("factoryAdd"); // Осуществление достоверности if (names! = Null && price! = Null && adds! = Null) {if (names.length == цены. Лекарство m = null; // лекарственное объект // создание лекарственного объекта по очереди и добавить его в коллекцию для (int i = 0; i <names.length; i ++) {m = new Medicine (); // создавать лекарство // назначить атрибут m.setname (имена [i]); m.setprice (double.parsedouble (цены [i])); M.SetFactoryAdd (добавляет [i]); M.Add (M); // Добавить в набор} // создание объекта Medicinedao Medicinedao dao = new MedicineDao (); Dao.savemedicines (MS); // batch Save the Drug Request.setattribute («Информация», «Информация о наркотиках успешно сохраняется !!!»); }} // вперед (запрос, ответ); }}7. Характерподингфильтер. Исходный код Java:
/ * * Чтобы изменить этот шаблон, выберите инструменты | Шаблоны * и откройте шаблон в редакторе. */package com.xqh.util; import java.io.ioexception; import javax.servlet.filter; import javax.servlet.filterchain; импорт javax.servlet.filterConfig; import javax.servlet.servletexcept Фильтр кодирования символов*/public class haremencodingfilter реализует фильтр {защищенная строка Encoding = null; Защищенный FilterConfig FilterConfig = null; public void init (FilterConfig FilterConfig) бросает ServletException {this.filterConfig = filterConfig; this.encoding = filterConfig.getInitParameter ("Кодирование"); } public void doFilter (запрос ServletRequest, ответ servletresponse, цепочка FilterChain) бросает ioException, servletexception {if (кодирование! = null) {request.setcharacterencoding (кодирование); response.setContentType ("text/html; charset ="+кодирование); } chain.dofilter (запрос, ответ); } public void destry () {this.encoding = null; this.filterConfig = null; }}8. HibernateUtil.java исходный код:
package com.xqh.util;import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;/** * Hibernate initialization class, used to obtain Session, SessionFactory and close Session */public class HibernateUtil { // SessionFactory object private static SessionFactory factory = null; // Статический блок static {try {// Загрузить конфигурацию файла конфигурации Hibernate cfg = new configuration (). Configure (); // создание экземпляра SessionFactory Factory = cfg.BuildSessionFactory (); } catch (hibernateexception e) {e.printstacktrace (); }} / *** Получить объект сеанса* @return Session объект* / public static session getsession () {// Если SessionFacroty не пуст, включите сеанс сеанса = (Factory! = NULL)? factory.opensession (): null; возвратный сеанс; } / *** Get SessionFactory Object* @return SessionFactory Object* / public static sessionFactory getSessionFactory () {return Factory; } / *** Закрыть сеанс* @param session объект* / public static void closesession (session session) {if (session! = Null) {if (session.isopen ()) {session.close (); // закрыть сеанс}}}}9.бит.
<? xml version = '1.0' Encoding = 'UTF-8'?> <! Doctype Hibernate-Configuration public "-// конфигурация Hibernate/Hibernate DTD 3.0 // en" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtdd"> <hibrence.net-configuration-3.0.dtd "> <hiberceforge.net/hibernate-configuration-3.0.dtd"> <hiberceforge.net/hibernate-configuration-3.0.dtd "> <hiberceforge.net/hibernate-configuration-3.0.dtd" <!-диалект-> <name = "dialect"> org.hibernate.dialect.mysqlidialect </property> <!-Соединение базы данных-> <name = "connection.url"> jdbc: mysql: // localhost: 3306/learn </property> <!-DataBase connection username-> <свойство liseer namemance = "connection. Пароль-> <name = name = "connection.password"> 1120 </property> <!-Драйвер базы данных-> <name = "connection.driver_class"> com.mysql.jdbc.driver </propetion> <!-print sql name = "hibernate.hbm2ddl.auto"> Update </property> <!-Файл отображения-> <mapping resource = "com/xqh/model/medicance.hbm.xml"/> </session-factory> </hibernate-configuration>>
10.log4j.properties исходный код:
### прямые сообщения журнала в Stdout ### log4j.appender.stdout = org.apache.log4j.consoleappenderlog4j.appender.stdout.target = system.outlog4j.appender.stdout.layout = org.apache.log4j.patternlayoutlog4j.appender.stdout.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 ### Установки журналов - для получения более словесного изменения журнала «Информация» на «отладку» ### log4j.rootlogger = warn, stdout#log4j.logger.org.hibernate = info#log4j.logger.org.hibernate = debug ## gucl Query Query Задание#log4j.logger.org.hibernate.hql.ast.ast = Debug ### log просто SQL#log4j.logger.org.hibernate.sql = отладка ### log jdbc parameters bind #### log4j.logger.org.hibernate.type = info#log4j.logger.org.hibernate.type = Debug ### log Schema export/upport #### log4j.logger.org.hibernate.tool.hbm2dl = debug ### hql parse. Деревья#log4j.logger.org.hibernate.hql = DEBUG ### Activity Cache #### log4j.logger.org.hibernate.cache = Debug ### grog Transaction Activity#log4j.logger.org.hibernate.transaction = отладка ### jdbc resource jdbc resource jdbc. Приобретение#log4j.logger.org.hibernate.jdbc = отладка ## Включить следующую строку, если вы хотите отследить соединение #######.11.index.jsp исходный код:
<%@ page language = "java" contentType = "text/html" pageencoding = "gbk"%> <! doctype html public "-// w3c // dtd html 4.01 transitional // en"> <html> <head> <tite> patch add upper information/tealle> <stile/" #EBEBEB; Семейство шрифта: Вердана; размер шрифта: 12px; фоновый цвет: #ebebeb; Цвет: черный; высота линии: 20px; Высота: 30px;} </style> <script type = "text/javascript"> function add () {var a = document.getElementbyid ("a"); var b = document.getElementbyId ("b"); b.innerhtml += a.innerhtml; } function cream () {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); } function save (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> <td align="center"> <br> <h1> Batch Add Drug Information</h1> </td> </tr> <tr> <td> <div id = "b"> </div> </td> </td> </tr> <tr> <td> <input type = "ald value =" добавить строку "onclick =" add () "> <input type =" value = "creat ()"> <intlick = "value =" batch add to Database "> </creat ()"> <intlic </form> <div id = "a" style = "display: none"> <table align = "center"> <tr> <td> имя: </td> <td> <input type = "text" name = "name" size = "13"> </td> <td> Прайс: </td> <td> <pint = "name =" vice = "td>" 13 "13" 13 "13" 13 "13" </td> <td> <input type = "text" name = "factoryAdd" size = "30"> </td> </tr> </table> </div> </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> <tite> result information </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> </div> </body> </html>13. Таблица данных tb_medicine_batch Структура:
14. Скриншот результатов работы программы:
Я надеюсь, что описание в этой статье будет полезно для каждого Java -программирования на основе пластинга Hibernate.