この記事では、バッチにデータを追加するための冬眠の方法について説明します。次のように、参照のために共有してください。
1。Hibernate_016_BatchAddDataプログラムディレクトリ構造:
2。LIBディレクトリに導入されたJARパッケージ:
3。Medicinedao.javaソースコード:
パッケージcom.xqh.dao; Import java.util.list; import org.hibernate.session; import com.xqh.model.medicine; Import com.xqh.util.hibernateutil;/***ドラッグデータベースオペレーションクラス**/パブリッククラス薬{/***バッチセービング** savemedicines(list <medicing> ms){セッションセッション= null; if(ms!= null && ms.size()> 0){try {session = hibernateutil.getSession(); // session session.begintransaction()を取得します。 //物をオンにして薬をかける薬= null; //薬物オブジェクトの作成//麻薬session.save(薬)を取得します。 //薬物オブジェクトを保存//挿入されたオブジェクトのバッチは、データベースに直ちに書き込まれ、if(i%10 == 0){session.flush(); session.clear(); }} session.getTransaction()。compid(); //物を送信} catch(例外e){e.printstacktrace(); //エラーメッセージsession.getTransaction()。rollback(); //エラーがロールバックされます}最後に{hibernateutil.closessess(session); //セッションを閉じる}}}}4。Medicing.javaソースコード:
パッケージcom.xqh.model;/***薬物持続性クラス*/パブリッククラス医療{private integer id; // ID番号プライベート文字列名; //ドラッグ名プライベートダブル価格。 //プライベート文字列factoryAdd; // Factoryアドレス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(2倍の価格){this.price = 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マッピングDTD 3.0 // en" "http://hibernate.sourceforge.net/hibernate-mapting-3.0.dtd"テーブル= "TB_Medicine_Batch"> <id name = "id"> <generator/> </id> <プロパティ名= "note" not null = "true" length = "200"/> <プロパティ名= "価格=" true "/> <プロパティname =" factoryadd "length =" 200 "/> </> <
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.http.httptservletreqest; javax.servlet.http.httpservletResponse;インポートcom.xqh.dao.medicinedao;インポートcom.xqh.model.medicine; public class savemedicine {private static final long serialversionuid = 37433340395154116666l; public void dopost(httpservletrequest request、httpservletresponse応答)servletexception、ioexception {// drug name string names [] = request.getparametervalues( "name"); //価格文字列価格[] = request.getParametervalues( "価格"); //ファクトリーアドレス文字列adds [] = request.getParametervalues( "FactoryAdd"); //有効性の判断if(names!= null && frice!= null && add!= null){if(names.length == reght.lent.length.length.length == adds.length){//リストのコレクションリスト> ms = new arraylist <medicine>();薬m = null; // Drug Object //薬物オブジェクトを順番にインスタンス化し、(int i = 0; i <names.length; i ++){m = new Medicine()のコレクションに追加します。 //薬物をインスタンス化//属性を割り当てますM.SetName(names [i]); M.SetPrice(double.ParseDouble(Price [i])); M.SetFactoryAdd([i]を追加); M.Add(M); // setに追加} //薬物オブジェクトをインスタンス化してくださいmedicinedao dao = new Medicinedao(); dao.savemedicines(MS); // batch drug request.setattribute( "info"、 "薬物情報が正常に保存されます!!!"); }} // wordwor(request、response); }}7。characterEncodingfilter.javaソースコード:
/ * *このテンプレートを変更するには、ツールを選択|を選択しますテンプレート *およびエディターのテンプレートを開きます。 */パッケージcom.xqh.util;インポートjava.io.ioexception; Import javax.servlet.filter; Import javax.servlet.filterchain; Import javax.servlet.filterconfig; Import javax.servlet.servletexception; Import javax.servlete.servletestreest.servletretreest.servletretreest.servletretreest.servletestreest.servletestreest。フィルターの文字エンコード*/public classEncodingFilterはフィルターを実装します{保護された文字列エンコード= null;保護されたFilterConfig FilterConfig = null; public void init(filterconfig filterconfig)servletexception {this.filterconfig = filterconfig; this.encoding = filterconfig.getInitParameter( "encoding"); } public void dofilter(servletRequest request、servletResponse応答、フィルターチェーンチェーン)IoException、servletexception {if(encoding!= null){request.setcharacterencoding(encoding); Response.setContentType( "text/html; charset ="+encoding); } Chain.dofilter(request、response); } public void Destroy(){this.encoding = null; this.filterconfig = null; }}8.hibernateutil.javaソースコード:
パッケージcom.xqh.util; import org.hibernate.hibernateexception; Import org.hibernate.session; import org.hibernate.sessionfactory; Import org.hibernate.cfg.configuration; Factory = null; // static block static {try {// hibernate configuration file configuration cfg = new configuration()。configure(); // Instantiate SessionFactory Factory = cfg.BuildSessionFactory(); } catch(hibernateException e){e.printstacktrace(); }} / ** get session object* @return session object* / public static session getsession(){// sessionfacrotyが空でない場合、セッションセッションを有効にします=(Factory!= null)? Factory.opensession():null;返信セッション。 } / *** sessionfactory object* @return sessionfactory object* / public static sessionfactory getsessionFactory(){return factory; } / *** close session* @paramセッションオブジェクト* / public static void closessession(session session){if(session!= null){if(session.isopen()){session.close(); //セッションを閉じる}}}}9.hibernate.cfg.xmlソースコード:
<?xml version = '1.0' encoding = 'utf-8'?> <!doctype hibernate-configuration public " - // hibernate/hibernate構成<! - 方言 - > <プロパティname = "dierect"> org.hibernate.dialect.mysqldialect </property> <! - データベース接続 - > <プロパティ名= "connection.url"> jdbc:mysql:// localhost:3306/learn </learn </property> <接続パスワード - > <プロパティ名= "connection.password"> 1120 </property> <! - databaseドライバー - > <プロパティ名= "connection.driver_class"> com.mysql.jdbc.driver </property> <! - print sqlステートメント - > <プロパティname = "show_sql"> true < name = "hibernate.hbm2ddl.auto"> update </property> <! - マッピングファイル - > <マッピングリソース= "com/xqh/model/medicine.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.apptern.stdout.layout.conurs.patterut.conurs.patterut.conurs.patrut. %c {1}:%l - %m%n ### hibernate.logをファイルするための直接メッセージ#### log4j.appender.file = org.apache.log4j.fileappender#log4j.appender.file.file.file = hibernate.log#log4j.appender.file.layout = org.apache.log4j.patternlayout#log4j.Apptertion. %c {1}:%l-%m%n ### Logレベルを設定 - 詳細記録のために「debug」に「情報」を変更するには### log4j.rootlogger = warn、stdout#log4j.logger.org.hibernate = info#log4j.logger.org.hibernate = debug##ol log hql queryアクティビティ#log4j.logger.org.hibernate.hql.ast.ast = debug ### log log sql#log4j.logger.org.hibernate.sql = debug ### log jdbcバインドパラメーター#### log4j.logger.org.hibernate.type = info#log4j.logger.org.hibernate.type = debug #### log schema export/update #### log4j.org.hibernate.tool.hbm2ddl = dakug #### og hql parseツリー#log4j.logger.org.hibernate.hql = debug ### logキャッシュアクティビティ#### log4j.logger.org.hibernate.cache = debug ### logトランザクションアクティビティ#log4j.org.hibernate.transaction = debug ## log jdbcリソース取得#log4j.logger.org.hibernate.jdbc = debug ## drivermanagerconnectionprovider ### log4j.logger.org.hibernate.connection.drivermanagerconnectonectonecentprovider = trase = connectionの使用を使用する場合、接続を追跡する場合は次の行を有効にする場合は、次の行を有効にします。11.index.jspソースコード:
<%@ page言語= "java" contentType = "text/html" pageencoding = "gbk"%> <!doctype html public " - // w3c // dtd html 4.01 transitional // en"> <html> <head> <title> back </title> <stly type = "/cs"フォントファミリー:Verdana;フォントサイズ: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 resed(){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( "完全な情報を入力してください!"); falseを返します。 }}} </script> </head> <body onload = "add()"> <form action = "savemedicine" method = "post" onsubmit = "return save(this);"> <table align = "center" cellapadding = "3" cellpacing = "1"> "> <tr> <td <td </h1 </td> </td> </tr> <tr> <td> <div id = "b"> </div> </td> </td> </tr> <tr> <td> <入力タイプ= "ボタン" value = "onclick onclick =" add() "> <入力タイプ="ボタン "value =" deasure() "> <input =" batch "batch"> </td> </form> <div id = "a" style = "display:none"> <table align = "center"> <tr> <td> name:</td> <td> <入力タイプ= "text" name "size =" 13 "> </td> <td> fing価格:</td> <td> <input =" "size =" 13 ">" </td> <td> <入力タイプ= "text" name = "factoryadd" size = "30"> </td> </tr </table> </div> </body> </html>12.result.jspソースコード:
<%@ページ言語= "java" contentType = "text/html" pageencoding = "gbk"%> <!doctype html public " - // w3c // dtd html 4.01 transitional // en"> <html> <head> <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。プログラム操作の結果のスクリーンショット:
この記事の説明が、Hibernate Frameworkに基づいた全員のJavaプログラミングに役立つことを願っています。