Cet article décrit la méthode d'hibernate pour ajouter des données par lots. Partagez-le pour votre référence, comme suit:
1. Hibernate_016_batchadddata Structure du répertoire du programme:
2. Le package JAR introduit dans le répertoire Lib:
3. Medicinedao.java Code source:
Package com.xqh.dao; import java.util.list; import org.hibernate.session; import com.xqh.model.medicine; importation com.xqh.util.hibernateutil; / ** * drogues database classe SAVEMEDICICES (LIST <AMINEDS> MS) {Session Session = NULL; if (ms! = null && MS.Size ()> 0) {try {session = hibernateUtil.getSession (); // Obtenir session session.begintransaction (); // allume les choses médicament médicament = null; // Créer un objet de médicament // Loucle l'objet de médicament pour (int i = 0; i <ms.Size (); i ++) {Medicine = (Medicine) Ms.get (i); // Obtenez la séance de médicaments.save (médicament); // Enregistrer l'objet de médicament // Le lot d'objets insérés est immédiatement écrit dans la base de données et la mémoire libre if (i% 10 == 0) {session.flush (); session.clear (); }} session.getTransaction (). commit (); // soumettre des choses} catch (exception e) {e.printStackTrace (); // Imprimer le message d'erreur Session.getTransaction (). Rollback (); // Une erreur annulera la chose} enfin {hibernateUtil.closeSession (session); // Session de fermeture}}}}4. Medicine.Java Code source:
Package com.xqh.model; / ** * Classe de persistance de médicaments * / classe publique Medicine {ID entier privé; // Numéro d'identification Nom de la chaîne privée; // Nom de médicament Private Double Prix; // Prix Private String FactoryAdd; // Adresse d'usine publique entier getID () {return id; } public void setid (INGER ID) {this.id = id; } public String getName () {Nom de retour; } public void setName (string name) {this.name = name; } public double getPrice () {prix de retour; } public void setPrice (double prix) {this.price = prix; } public String getFactoryAdd () {return factoryAdd; } public void setFactoryAdd (String factoryAdd) {this.factoryAdd = factoryAdd; }}5. Medicine.hbm.xml Code source:
<? xml version = "1.0"?> <! Doctype Hibernate-Mapping public "- // Hibernate / Hibernate Mapping Dtd 3.0 // en" "http://hibernate.sourceforge table = "tb_medicine_batch"> <id name = "id"> <générateur /> </ id> <propriété name = "name" not-null = "true" length = "200" /> <propriété name = "price" not-null = "true" /> <propriété name = "factoryadd" le long = "200" /> </ class> </ hibernate-mapping>
6.Savemedicine.java Code source:
Package com.xqh.servlet; Importer java.io.ioException; import java.util.arraylist; import java.util.list; import javax.servlet.servletException; import javax.servlet.http.httpleservlet; import javax.servlet.http.httpsservlet javax.servlet.http.httpservletResponse; import com.xqh.dao.medicedao; import com.xqh.model.medicine; classe publique SavemEdicine étend httpservlet {private static final SerialVeeSionuid = 374334039515411666l; public void doPost (requête httpservletRequest, réponse httpservletResponse) lève ServletException, ioException {// name de drogue noms [] = request.getParameTervalues ("name"); // Prix Prix de la chaîne [] = request.getParameTervalues ("Prix"); // La chaîne d'adresse d'usine ajoute [] = request.getParameTervalues ("factoryAdd"); // Jugement de validité if (noms! = Null && prix! = Null && addds! = Null) {if (names.length == prix.length && noms.length == addS.length) {// instancier une liste de collection de liste <Dedicine> ms = new ArrayList <Dedicine> (); Médecine m = null; // Objet de médicament // Instancier l'objet de médicament à son tour et l'ajouter à la collection pour (int i = 0; i <names.length; i ++) {m = new Medicine (); // Instancier le médicament // attribut m.setname (noms [i]); M.SetPrice (double.Parsedouble (prix [i])); M.SetFactoryAdd (ajoute [i]); M.Add (M); // Ajouter à l'ensemble} // instancier l'objet Medicinedao Medicinedao dao = new Medicinedao (); Dao.Savemedicines (MS); // Lot Enregistrer la demande de médicament.setAttribute ("info", "Les informations sur le médicament sont enregistrées avec succès !!!"); }} // en avant (demande, réponse); }}7. Code de source de caractères de caractéristique: java:
/ * * Pour modifier ce modèle, choisissez des outils | Modèles * et ouvrez le modèle dans l'éditeur. * / package com.xqh.util; import java.io.ioException; import javax.servlet.filter; import javax.servlet.filterchain; import javax.servlet.filterconfig; import javax.servlet.servletException; import javax.servlet.serserrequest; Importer Javax.Servlet.ServleReSERS; Encodage de caractères Filtre * / classe publique CaractèreCcodingFilter implémente Filter {Protected String Encoding = NULL; protégée filterconfig filterConfig = null; public void init (filterConfig filterConfig) lève ServletException {this.filterConfig = filterConfig; this.encoding = filterConfig.getInitParameter ("Encoding"); } public void dofilter (ServLetRequest Request, ServletResponse Response, FilterChain Chain) lève IOException, ServletException {if (Encoding! = null) {request.SetcharAtterencoding (Encoding); Response.SetContentType ("Text / Html; Charset =" + Encoding); } chain.dofilter (demande, réponse); } public void destre () {this.encoding = null; this.filterConfig = null; }}8. Code source dehibernateutil.java:
Package com.xqh.util; import org.hibernate.hibernateException; import org.hibernate.session; import org.hibernate.session SessionFactory Factory = NULL; // Block statique Static {try {// Charge Hibernate Configuration Fichier Configuration CFG = new Configuration (). Configure (); // Instanciate SessionFactory Factory = cfg.BuildSessionFactory (); } catch (hibernateException e) {e.printStackTrace (); }} / ** * Get Session Object * @return Session Object * / public static Session getSession () {// Si sessionfacroty n'est pas vide, activez la session de session = (Factory! = Null)? factory.opencession (): null; Session de retour; } / ** * Obtenez un objet SessionFactory * @return SessionFactory Object * / public static sessionfactory getSessionFactory () {return factory; } / ** * Fermer Session * @Param Session Object * / public static void closesion (session session) {if (session! = Null) {if (session.isopen ()) {session.close (); // Session de fermeture}}}}9.hibernate.cfg.xml Code source:
<? xml version = '1.0' Encoding = 'UTF-8'?> <! Doctype Hibernate-Configuration Public "- // Hibernate / Hibernate Configuration DTD 3.0 // en" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibberne-configuration> <Session-Factory> <! - Dialect -> <propriété name = "dialect"> org.hibernate.dialect.mysqldialect </ propriété> <! - Database Connection -> <propriété Name = "Connection.url"> JDBC: MySql: // LocalHost: 3306 / Connexion </ Property> </ - Database Connection Username -> </ Property nom de Database Connection -> <preway <! - Mot de passe de connexion de la base de données -> <propriété name = "connection.password"> 1120 </ propriété> <! - Database Driver -> <propriété name = "Connection.driver_class"> com.mysql.jdbc.driver </ propriété> <! - Print SQL Statement -> <propriété name = "show_sql"> true </ propriété> <! - name = "hibernate.hbm2ddl.auto"> Update </ propriété> <! - Fichier de mappage -> <mapping ressource = "com / xqh / model / medicine.hbm.xml" /> </ session-factory> </ hibernate-configuration>
10.log4j.properties Code source:
### Messages de journal direct vers STDOUT ### log4j.appender.stdout = org.apache.log4j.consoleAppenderLog4j.appendender.stdout.target = System.outlog4j.appendender.stdout.layout = org.apache.log4j.patternlayoutlog4j.apprender.stdout.layout.conversionpattern =% d {Absolute. % c {1}:% l -% m% n ### Messages directs pour fichier hibernate.log #### log4j.appendender.file = org.apache.log4j.fileAPpender # log4j.appendender.file.file = hibernate.log # log4j.apprender.file.layout = org.apache.conversionpattern =% d {AbsorTe % c {1}:% l -% m% n ## # # # # # les niveaux de journal - Pour plus Activité # log4j.logger.org.hibernate.hql.ast.ast = DEBUG ### journal uniquement le sql # log4j.logger.org.hibernate.sql = debug ### log JDBC Bind Paramètres #### log4j.logger.org.hibernate.type = info # log4j.logger.org.hibernate.type = debug ### schéma loga export / mise à jour #### log4j.logger.org.hibernate.tool.hbm2ddl = debug ### log hql parse arbres # log4j.logger.org.hibernate.hql = debug ### Activité du cache de log #### log4j.logger.org.hibernate.cache = debug ### Transaction de journal Activité # log4j.logger.org.hibernate.transaction = DEBUG ### Log4J.Logger.org.hibernate.transaction = Debug ### Log JDBC Resource Resource Resource Resource acquisition # log4j.logger.org.hibernate.jdbc = debug ## Activez la ligne suivante si vous souhaitez retrouver la connexion ####### fuite lorsque vous utilisez drivermanagerconnectionprovider #### log4j.logger.org.hibernate.connection.drivermanagerconnectionprovider = trace.hibernate.connection.drivermanagerconnectionprovider = trace.11.index.jsp Code source:
<% @ Page Language = "Java" ContentType = "Text / Html" Pageencoding = "GBK"%> <! Doctype HTML PUBLIC "- // W3C // DTD HTML 4.01 Transitional // En"> <html> #EBEBEB; Font-Family: Verdana; taille de police: 12px; Color d'arrière-plan: #EBEBEB; Couleur: noir; hauteur de ligne: 20px; hauteur: 30px;} </ style> <script type = "text / javascript"> function add () {var a = document.getElementById ("a"); var b = document.getElementById ("b"); B.InnerHtml + = A.InnerHtml; } function réduction () {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); } fonction sauve (formName) {for (i = 0; i <formName.length; i ++) {if (formName.Elements [i] .value == "") {alert ("Veuillez remplir les informations complètes!"); retourne false; }}} </ script> </ head> <body onload = "add ()"> <form action = "savemedicine" metheth = "post" onsubmit = "return enregistre (this);"> <table align = "Center" cellpadding = "3" cellpacing = "1"> <tr> <td align = "Center"> <br> <h1> <tr> <td> <div id = "b"> </ div> </td> </td> </tr> <tr> <td> <entrée type = "Button" value = "Add a Line" onClick = "add ()"> <entrée type = "Button" value = "réduction ()"> <entrée type = "soumettre" Value = "Batch Add to Database"> </ Td> id = "a" style = "display: non"> <table align = "Center"> <tr> <td> name: </td> <td> <entrée type = "text" name = "name" size = "13"> </ td> <td> prix unitaire: </td> <td> <put type = "Text" name = "Price" size = "13"> </td> <Td> <Type d'entrée = "Text" name = "FactoryAdd" size = "30"> </td> </tr> </s table> </div> </ody> </html>12.result.jsp Code source:
<% @ Page Language = "Java" ContentType = "Text / Html" Pageencoding = "GBK"%> <! Doctype Html public "- // w3c // dtd html 4.01 transitional // en"> <html> 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> </v> </ body> </html>13. Tableau de données TB_Medicine_Batch Structure:
14. Capture d'écran des résultats de l'opération du programme:
J'espère que la description de cet article sera utile à la programmation Java de chacun basée sur le cadre d'hibernate.