锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产精品一区二区九九,亚洲一区二区无码偷拍,亚洲人色婷婷成人网站在线观看 http://www.tkk7.com/happyfish/category/556.htmlzh-cnTue, 27 Feb 2007 08:49:09 GMTTue, 27 Feb 2007 08:49:09 GMT60jdbc榪炴帴鍚勭鏁版嵁搴? (fr www.cybercorlin.net)http://www.tkk7.com/happyfish/archive/2005/04/29/3931.html灝忛奔鍎?/dc:creator>灝忛奔鍎?/author>Fri, 29 Apr 2005 03:14:00 GMThttp://www.tkk7.com/happyfish/archive/2005/04/29/3931.htmlhttp://www.tkk7.com/happyfish/comments/3931.htmlhttp://www.tkk7.com/happyfish/archive/2005/04/29/3931.html#Feedback0http://www.tkk7.com/happyfish/comments/commentRss/3931.htmlhttp://www.tkk7.com/happyfish/services/trackbacks/3931.htmldriver = "org.gjt.mm.mysql.Driver";
url = "jdbc:mysql://localhost/junit_test";
/*Sybase jconnect2.jar */
url = "jdbc:sybase:Tds:host:port";
driver = "com.sybase.jdbc2.SybDriver";
/*Oracle JDBC Thin Driver classes12.zip */
url = "jdbc:oracle:thin:@host:port:sid";
driver = "oracle.jdbc.driver.OracleDriver";
/*Oracle OCI Driver classes12.zip*/
url = "jdbc:oracle:thin:@host:port:sid";
driver = "oracle.jdbc.driver.OracleDriver";
/* OpenBase OpenBaseJDBC.jar (download from www.openbase.com) */
url = "jdbc:openbase://host/database";
driver = "com.openbase.jdbc.ObDriver";
/* MySQL Connector/J from MySql (www.mysql.com)
jdbc classes: mysql-connector-java-2.0.14-bin.jar (download from www.mysql.com) */
url = "jdbc:mysql://host/database";
driver = "com.mysql.jdbc.Driver";
/*JDBC Drivers from Microsoft MSSQL 2000
jdbc classes: msbase.jar, sqlserver.jar, msutil.jar */
url = "jdbc:microsoft:sqlserver://host:port";
driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
/*JSQLConnect from JDBC Drivers from Microsoft MSSQL 2000
jdbc classes: msbase.jar, sqlserver.jar, msutil.jar */
url = "jdbc:microsoft:sqlserver://host:port";
driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
/*DB2 Universal JDBC Driver from IBM
jdbc classes: db2java.zip */
url = "jdbc:db2:host";
driver = "COM.ibm.db2.jdbc.app.DB2Driver";


鍙互鐢ㄥ紑婧愰」鐩疄鐜拌交閲忕駭榪炴帴姹?BR>import com.devdaily.opensource.database.DDConnectionBroker;
String driver = null;
String url = null;
String username = null;
String password = null;
int minConnections = 0;
int maxConnections = 0;
long timeout = 0;
long leaseTime = 0;
String logFile = null;
DDConnectionBroker broker = null;

void setUp() {
/* MySQL With MM JDBC */
driver = "org.gjt.mm.mysql.Driver";
url = "jdbc:mysql://localhost/junit_test";
/*Sybase jconnect2.jar */
url = "jdbc:sybase:Tds:host:port";
driver = "com.sybase.jdbc2.SybDriver";
/*Oracle OCI Driver classes12.zip*/
url = "jdbc:oracle:thin:@host:port:sid";
driver = "oracle.jdbc.driver.OracleDriver";
/* OpenBase OpenBaseJDBC.jar (download from www.openbase.com) */
url = "jdbc:openbase://host/database";
driver = "com.openbase.jdbc.ObDriver";
/* MySQL Connector/J from MySql (www.mysql.com)
jdbc classes: mysql-connector-java-2.0.14-bin.jar (download from www.mysql.com) */
url = "jdbc:mysql://host/database";
driver = "com.mysql.jdbc.Driver";
/*JDBC Drivers from Microsoft MSSQL 2000
jdbc classes: msbase.jar, sqlserver.jar, msutil.jar */
url = "jdbc:microsoft:sqlserver://host:port";
driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
/*JSQLConnect from JDBC Drivers from Microsoft MSSQL 2000
jdbc classes: msbase.jar, sqlserver.jar, msutil.jar */
url = "jdbc:microsoft:sqlserver://host:port";
driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
/*DB2 Universal JDBC Driver from IBM
jdbc classes: db2java.zip */
url = "jdbc:db2:host";
driver = "COM.ibm.db2.jdbc.app.DB2Driver";
/*Oracle JDBC Thin Driver classes12.zip */
url = "jdbc:oracle:thin:@host:port:sid";
driver = "oracle.jdbc.driver.OracleDriver";

username = "";
password = "";
minConnections = 1;
maxConnections = 1;
timeout = 100;
leaseTime = 60000;
logFile = "queryconn.log";
broker = null;
}

try {
// construct the broker
broker = new DDConnectionBroker(driver,
url,
username,
password,
minConnections,
maxConnections,
timeout,
leaseTime,
logFile);
}
catch (SQLException se) {
// could not get a broker; not much reason to go on
System.err.println(se.getMessage());
System.err.println("Could not construct a broker, quitting.");
System.exit( -1);
}

db2鏈?縐峧dbc榪炴帴鏂瑰紡,鎴戠敤鐨勬槸type4(鍙敮鎸?浠ヤ笂鐨勭増鏈?,涔熸槸鐩存帴閫氳繃jdbc榪炴帴,鍏朵粬鐨勫鎴風濂借薄榪樿瀹夎瀹㈡埛绔伐鍏鳳紝
type4鐨凧DBC椹卞姩:com.ibm.db2.jcc.DB2Driver
url鐨勬牸寮?jdbc:db2://{host}:50000/{database name}
鍖呭悕:db2jcc.jar
榪樻湁榪炴帴紼嬪簭涓瀹氳鐢╥bm鐨刯dk鏉ヨ繍琛岋紝瑕佷笉鐒跺嚭閿?


]]>
JDBC+Hibernate灝咮lob鏁版嵁鍐欏叆Oracle http://www.tkk7.com/happyfish/archive/2005/03/02/1625.html灝忛奔鍎?/dc:creator>灝忛奔鍎?/author>Wed, 02 Mar 2005 15:04:00 GMThttp://www.tkk7.com/happyfish/archive/2005/03/02/1625.htmlhttp://www.tkk7.com/happyfish/comments/1625.htmlhttp://www.tkk7.com/happyfish/archive/2005/03/02/1625.html#Feedback0http://www.tkk7.com/happyfish/comments/commentRss/1625.htmlhttp://www.tkk7.com/happyfish/services/trackbacks/1625.html
銆銆鍐欏叆Blob瀛楁鍜屽啓鍏ュ叾瀹冪被鍨嬪瓧孌電殑鏂瑰紡闈炲父涓嶅悓錛屽洜涓築lob鑷韓鏈変竴涓猚ursor錛屼綘蹇呴』浣跨敤cursor瀵筨lob榪涜鎿嶄綔錛屽洜鑰屼綘鍦ㄥ啓鍏lob涔嬪墠錛屽繀欏昏幏寰梒ursor鎵嶈兘榪涜鍐欏叆錛岄偅涔堝浣曡幏寰桞lob鐨刢ursor鍛紵

銆銆榪欓渶瑕佷綘鍏堟彃鍏ヤ竴涓猠mpty鐨刡lob錛岃繖灝嗗垱寤轟竴涓猙lob鐨刢ursor錛岀劧鍚庝綘鍐嶆妸榪欎釜empty鐨刡lob鐨刢ursor鐢╯elect鏌ヨ鍑烘潵錛岃繖鏍烽氳繃涓ゆ鎿嶄綔錛屼綘灝辮幏寰椾簡blob鐨刢ursor錛屽彲浠ョ湡姝g殑鍐欏叆blob鏁版嵁浜嗐?BR>
銆銆鐪嬩笅闈㈢殑JDBC鐨刣emo錛屾妸oraclejdbc.jar榪欎釜浜岃繘鍒舵枃浠跺啓鍏ユ暟鎹簱琛╦avatest鐨刢ontent瀛楁(榪欐槸涓涓猙lob鍨嬪瓧孌?

import java.sql.*;
import java.io.*;
import oracle.sql.*;
public class WriteBlob {

public static void main(String[] args) {

銆try {
銆銆DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
銆銆Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","fankai","fankai");
銆銆conn.setAutoCommit(false);

銆銆BLOB blob = null;

銆銆PreparedStatement pstmt = conn.prepareStatement("insert into javatest(name,content) values(?,empty_blob())");
銆銆pstmt.setString(1,"fankai");
銆銆pstmt.executeUpdate();
銆銆pstmt.close();

銆銆pstmt = conn.prepareStatement("select content from javatest where name= ? for update");
銆銆pstmt.setString(1,"fankai");
銆銆ResultSet rset = pstmt.executeQuery();
銆銆if (rset.next()) blob = (BLOB) rset.getBlob(1);

銆銆String fileName = "oraclejdbc.jar";
銆銆File f = new File(fileName);
銆銆FileInputStream fin = new FileInputStream(f);
銆銆System.out.println("file size = " + fin.available());

銆銆pstmt = conn.prepareStatement("update javatest set content=? where name=?");

銆銆OutputStream out = blob.getBinaryOutputStream();

銆銆int count = -1, total = 0;
銆銆byte[] data = new byte[(int)fin.available()];
銆銆fin.read(data);
銆銆out.write(data);
銆銆/*
銆銆byte[] data = new byte[blob.getBufferSize()]; 鍙︿竴縐嶅疄鐜版柟娉?鑺傜渷鍐呭瓨
銆銆while ((count = fin.read(data)) != -1) {
銆銆銆total += count;
銆銆銆out.write(data, 0, count);
銆銆}
銆銆*/

銆銆fin.close();
銆銆out.close();

銆銆pstmt.setBlob(1,blob);
銆銆pstmt.setString(2,"fankai");

銆銆pstmt.executeUpdate();
銆銆pstmt.close();

銆銆conn.commit();
銆銆conn.close();
銆} catch (SQLException e) {
銆 銆System.err.println(e.getMessage());
銆銆e.printStackTrace();
銆} catch (IOException e) {
銆銆System.err.println(e.getMessage());
銆}
}

}

銆銆浠旂粏鐪嬩笂渚嬶紝鍒嗕笁姝ワ細

銆銆1銆佹彃鍏ョ┖blob

into javatest(name,content) values(?,empty_blob());

銆銆2銆佽幏寰梑lob鐨刢ursor

select content from javatest where name= ? for update;

銆銆娉ㄦ剰錛侊紒錛佸繀欏誨姞for update錛岃繖灝嗛攣瀹氳琛岋紝鐩磋嚦璇ヨ琚慨鏀瑰畬姣曪紝淇濊瘉涓嶄駭鐢熷茍鍙戝啿紿併?BR>
銆銆3銆乽pdate javatest set content=? where name=

銆銆鐢╟ursor寰鏁版嵁搴撳啓鏁版嵁

銆銆榪欓噷闈㈣繕鏈変竴鐐硅鎻愰啋澶у錛?BR>
銆銆JDK1.3甯︾殑JDBC2.0瑙勮寖鏄笉瀹屽杽鐨勶紝鍙湁璇籅lob鐨勬帴鍙o紝鑰屾病鏈夊啓Blob鐨勬帴鍙o紝JDK1.4甯︾殑JDBC3.0鍔犲叆浜嗗啓Blob鐨勬帴鍙c備綘鍙互浣跨敤JDBC3.0鐨勬帴鍙o紝涔熷彲浠ョ洿鎺ヤ嬌鐢∣racle鐨凧DBC鐨凙PI錛屾垜鍦ㄤ笂渚嬩腑浣跨敤浜哋racle鐨凧DBC鐨凙PI銆?BR>
銆銆鍙﹀瑕佹敞鎰忕殑鏄細

java.sql.Blob

oracle.sql.BLOB

銆銆娉ㄦ剰鐪媌lob鐨勫ぇ灝忓啓錛屾槸涓嶄竴鏍風殑銆傚啓紼嬪簭鐨勬椂鍊欎笉瑕佹悶娣蜂簡銆?BR>
銆銆涓嬮潰鐪嬬湅鐢℉ibernate鎬庝箞鍐欙紝鍘熺悊鏄竴鏍風殑錛屼篃瑕佸垎涓夋錛屼絾鏄唬鐮佺畝鍗曞緢澶?BR>
銆銆榪欐槸Cat瀵硅薄瀹氫箟

package com.fankai;

import java.sql.Blob;

public class Cat {
銆private String id;
銆private String name;
銆private char sex;
銆private float weight;
銆private Blob image;
銆public Cat() { }

銆public String getId() { return id; }
銆public void setId(String id) { this.id = id; }

銆public String getName() { return name; }
銆public void setName(String name) { this.name = name; }

銆public char getSex() { return sex; }
銆public void setSex(char sex) { this.sex = sex; }

銆public float getWeight() { return weight; }
銆public void setWeight(float weight) { this.weight = weight; }

銆public Blob getImage() { return image; }
銆public void setImage(Blob image) { this.image = image;}
}

銆銆榪欐槸Cat.hbm.xml

錛?xml version="1.0"?錛?BR>錛?DOCTYPE hibernate-mapping SYSTEM "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"錛?BR>
錛渉ibernate-mapping錛?BR>錛渃lass name="com.fankai.Cat" table="cat"錛?BR>錛?--jcs-cache usage="read-only"/--錛?BR>錛渋d name="id" unsaved-value="null"錛?BR>錛済enerator class="uuid.hex"/錛?BR>錛?id錛?BR>錛減roperty name="name" length="16" not-null="true"/錛?BR>錛減roperty name="sex" length="1" not-null="true"/錛?BR>錛減roperty name="weight" /錛?BR>錛減roperty name="image" /錛?BR>錛?class錛?BR>錛?hibernate-mapping錛?/TD>

銆銆涓嬮潰鏄畬鏁寸殑鐢℉ibernate鍐欏叆Blob鐨勪緥瀛愶紝鐩告瘮JDBC錛屽凡緇忕畝鍗曡交鏉懼浜嗭紝涔熶笉鐢ㄥ啓閭d簺Oracle鐗規(guī)畩鐨剆ql浜嗭細

package com.fankai;

import java.sql.Blob;
import net.sf.hibernate.*;
import oracle.sql.*;
import java.io.*;

public class TestCatHibernate {
銆public static void testBlob() {
銆銆Session s = null;
銆銆byte[] buffer = new byte[1];
銆銆buffer[0] = 1;
銆銆try {
銆銆銆SessionFactory sf = HibernateSessionFactory.getSessionFactory();
銆銆銆s = sf.openSession();
銆銆銆Transaction tx = s.beginTransaction();
銆銆銆Cat c = new Cat();
銆銆銆c.setName("Robbin");
銆銆銆c.setImage(Hibernate.createBlob(buffer));
銆銆銆s.save(c);
銆銆銆s.flush();
銆銆銆s.refresh(c, LockMode.UPGRADE);
銆銆銆BLOB blob = (BLOB) c.getImage();
銆銆銆OutputStream out = blob.getBinaryOutputStream();
銆銆銆String fileName = "oraclejdbc.jar";
銆銆銆File f = new File(fileName);
銆銆銆FileInputStream fin = new FileInputStream(f);
銆銆銆int count = -1, total = 0;
銆銆銆byte[] data = new byte[(int)fin.available()];
銆銆銆fin.read(data);
銆銆銆out.write(data);
銆銆銆fin.close();
銆銆銆out.close();
銆銆銆s.flush();
銆銆銆tx.commit();

銆銆} catch (Exception e) {
銆銆銆System.out.println(e.getMessage());
銆銆} finally {
銆銆銆if (s != null)
銆銆銆try {
銆銆銆銆s.close();
銆銆銆} catch (Exception e) {}
銆銆}
銆}
}


]]>
璁㏒truts涓嶩ibernate欏哄埄鍗忓悓宸ヤ綔 http://www.tkk7.com/happyfish/archive/2005/03/02/1624.html灝忛奔鍎?/dc:creator>灝忛奔鍎?/author>Wed, 02 Mar 2005 15:02:00 GMThttp://www.tkk7.com/happyfish/archive/2005/03/02/1624.htmlhttp://www.tkk7.com/happyfish/comments/1624.htmlhttp://www.tkk7.com/happyfish/archive/2005/03/02/1624.html#Feedback0http://www.tkk7.com/happyfish/comments/commentRss/1624.htmlhttp://www.tkk7.com/happyfish/services/trackbacks/1624.html涔呬箙瀛﹂櫌
瀹夎綃?/FONT>

銆銆涓錛屼笅杞藉畨瑁?j2sdk1.4錛坵ww.sun.com)錛夋垨浠ヤ笂,璁劇疆 CLASSPATH錛宩ava_home銆?

銆銆浜岋紝涓嬭澆鏈嶅姟鍣紝鍏嶈垂鐗堟湰鐨勬湁 tomcat,resin,褰撶劧涔熻繕鏈?weblogic涔嬬被鐨勫法鏃犻湼錛屼笉榪囧緱鐪嬩綘鐢佃剳鐨勯厤緗槸鍚︽壙鍙楃殑浜?

銆銆榪欓噷鍙互resin鏉ヨ鏄庯紝鍏朵粬鐨勯厤緗兘宸笉澶氾紝鍙互鏌ョ湅鍚勪釜鏈嶅姟鍣ㄨ嚜甯︾殑璇存槑鏂囦歡銆?BR>
銆銆resin 鏈嶅姟鍣ㄥ彲浠ュ湪 caucho.com涓嬭澆錛岄夋嫨鍚堥傜殑鐗堟湰錛屼笅杞借В鍘嬬緝?yōu)鍙互鐩存帴鋴社敤銆?BR>
銆銆榪欓噷resin鏈変竴涓?resin-ee鐗堟湰錛岃繖涓富瑕佹槸甯jb鍔熻兘鏀寔鐨勩?濡傛灉鐢ㄤ笉鍒癳jb錛屼竴鑸殑灝辮凍澶熶簡銆?
銆銆涓夛紝鐒跺悗灝辨槸鏁版嵁搴擄紝鏈夊緢澶氭暟鎹簱浜у搧鍙互閫夋嫨錛孌B2,Oracle,MSSQL,MySQL絳夌瓑澶浜嗐傝繖閲屾垜閫夋嫨MySQL錛屼笉浠呭洜涓哄畠鏄厤璐圭殑錛岃屼笖瀹冪殑4.0鐗堟湰鍦ㄧ戶鎵夸互鍓嶇増鏈殑蹇熺ǔ瀹氱殑鍩虹涓婏紝鏁村悎浜咺nnoDB(http://www.innodb.com)鍏堣繘鐨勪簨鍔″鐞嗘満鍒躲傜浉淇′即闅忕潃Linux鐨勫.澶э紝瀹冨皢鍦ㄥ晢涓氭暟鎹簱甯傚満鍗犵殑涓甯箣鍦般備笉榪囧氨鏁版嵁搴撴湰韜紝瀹冭繕緙哄皯瀛愭煡璇㈢瓑寮哄ぇ鍔熻兘鐨勬敮鎸併?BR>瀹夎灝變笉澶氳浜嗭紝閰嶇疆濂界敤鎴峰悕錛屽瘑鐮併?鐒跺悗灝卞彲浠ヤ笅杞?MySQL-Front 鏉ュ彲瑙嗗寲鎿嶄綔鏁版嵁搴撱?

銆銆鍥涳紝鍦↗ava緙栫▼涓婏紝涓涓狪DE鐨勫姛鑳芥樉鐒朵笉鍙己灝戯紝鐜板湪嫻佽鐨処DE寰堝錛屾湁JBuilder,Eclipse,IntellJ IDEA,JCreator絳夌瓑錛屽叾涓?eclipse鍊熺潃寮婧愪笢椋庯紝渚濋潬寮哄ぇ鐨勬彃浠跺姛鑳借瑾変負鏈鏈夊墠閫旂殑宸ュ叿錛孞Builder浠庢潵閮芥渶寮哄ぇ鍔熻兘鐨刯ava宸ュ叿錛屼笉榪囧ぇ鍒版垜鐨勭數鑴戝疄鍦ㄨ繍琛屼笉浜嗭紝絀峰晩錛屽彲娌¢挶閰嶆柊鐢佃剳銆傛墍浠ユ垜榪樻槸鍠滄JCreator錛屽皬宸ц屽張鍔熻兘涓嶄織錛屽簲浠樺皬瑙勬ā鐨勫簲鐢ㄧ話緇版湁浣欍傜紪璇戝紑鍙戞椂瑕佹兂鑾峰緱鎻愮ず鏀寔錛岄渶瑕佸湪 configure--option--JDK Profiles 瀵煎叆jar鏂囦歡銆?BR>
銆銆浜旓紝涓涓珯鐐瑰墠鍙扮殑鐣岄潰寮鍙戯紝褰撶劧紱諱笉寮澶у悕榧庨紟鐨?Dreamweaver 浜嗭紝瀹冩敮鎸乯sp錛宎sp絳夊緢澶氳璦鐨勫紑鍙戙傜壒鍒槸鏈榪戠殑Dreamweaver MX 2004 澧炲己浜嗙珯鐐圭殑鍔熻兘錛屽彲浠ユ柟渚跨殑瀵逛竴涓珯鐐硅繘琛屾帶鍒躲傞潰瀵箂truts鐨勫墠鍙拌嚜瀹氫箟鏍囩錛屾湁涓涓猰xp鎻掍歡鍙互鐢ㄦ潵鏀寔鏄劇ずsturts鐨勬爣絳俱備嬌鐢ㄥ墠榪樿鍦ㄧ紪杈?-鏍囩搴?閲岄潰瀵煎叆.tld鏂囦歡錛岀洰鍓嶅彧鏀寔html錛屽拰bean 涓や釜鏍囩銆?BR>
銆銆閰嶇疆綃?/FONT>

銆銆涓錛宺esin铏氭嫙绔欑偣閰嶇疆

錛渉ost id='yourweb:8080' app-dir='e:\blog\' class-update-interval='2'錛?BR>錛渨eb-app id='/'錛?BR>錛渄irectory-servlet id='false'/錛?
錛?web-app錛?BR>錛渆rror-log id='log/web-error.log'/錛?
錛渉ost錛?/TD>

銆銆鐒跺悗鍦ㄥ畾涔夌殑鐩綍涓嬮潰寤虹珛绔欑偣銆?

銆銆浜岋紝Dreamweaver绔欑偣鐨勯厤緗氨涓嶅璇翠簡銆?BR>
銆銆涓夛紝Struts鐨勯厤緗?BR>
銆銆榪欓噷鎴戜滑浣跨敤鐨勬槸struts1.1,涓嬭澆騫惰В鍘嬬緝鍒頒復鏃舵枃浠跺す錛屽氨鍋囪鏄痶em鏂囦歡澶瑰惂銆?BR>
銆銆棣栧厛鎷瘋礉tem/lib/涓嬮潰鎵鏈夌殑.tld鏂囦歡鍒扮珯鐐圭殑/WEB-INF/鐩綍涓嬶紝鍐嶆嫹璐濇墍鏈夌殑.jar鏂囦歡鍒?WEB-INF/lib/鐩綍涓嬶紝鏈鍚巜eb.xml鏂囦歡涓殑閰嶇疆宸笉澶氬涓嬶細

錛?xml version="1.0" encoding="ISO-8859-1"?錛?
錛?DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"錛?BR>
錛渨eb-app錛?BR>
錛渟ervlet錛?BR>錛渟ervlet-name錛瀉ction錛?servlet-name錛?BR>錛渟ervlet-class錛瀘rg.apache.struts.action.ActionServlet錛?servlet-class錛?BR>錛渋nit-param錛?BR>錛減aram-name錛瀋onfig錛?param-name錛?BR>錛減aram-value錛?WEB-INF/struts-config.xml錛?param-value錛?BR>錛?init-param錛?BR>錛渋nit-param錛?BR>錛減aram-name錛瀌ebug錛?param-name錛?BR>錛減aram-value錛?錛?param-value錛?BR>錛?init-param錛?BR>錛渋nit-param錛?BR>錛減aram-name錛瀌etail錛?param-name錛?BR>錛減aram-value錛?錛?param-value錛?BR>錛?init-param錛?BR>錛渓oad-on-startup錛?錛?load-on-startup錛?BR>錛?servlet錛?BR>
錛渟ervlet-mapping錛?BR>錛渟ervlet-name錛瀉ction錛?servlet-name錛?BR>錛渦rl-pattern錛?.do錛?url-pattern錛?BR>錛?servlet-mapping錛?BR>

錛?-- The Usual Welcome File List --錛?BR>錛渨elcome-file-list錛?BR>錛渨elcome-file錛瀒ndex.jsp錛?welcome-file錛?BR>錛?welcome-file-list錛?BR>

錛?-- Struts Tag Library Descriptors --錛?BR>錛渢aglib錛?BR>錛渢aglib-uri錛?tags/struts-bean錛?taglib-uri錛?BR>錛渢aglib-location錛?WEB-INF/struts-bean.tld錛?taglib-location錛?BR>錛?taglib錛?BR>
錛渢aglib錛?BR>錛渢aglib-uri錛?tags/struts-html錛?taglib-uri錛?BR>錛渢aglib-location錛?WEB-INF/struts-html.tld錛?taglib-location錛?BR>錛?taglib錛?BR>
錛渢aglib錛?BR>錛渢aglib-uri錛?tags/struts-logic錛?taglib-uri錛?BR>錛渢aglib-location錛?WEB-INF/struts-logic.tld錛?taglib-location錛?BR>錛?taglib錛?BR>
錛渢aglib錛?BR>錛渢aglib-uri錛?tags/struts-nested錛?taglib-uri錛?BR>錛渢aglib-location錛?WEB-INF/struts-nested.tld錛?taglib-location錛?BR>錛?taglib錛?BR>
錛渢aglib錛?BR>錛渢aglib-uri錛?tags/struts-tiles錛?taglib-uri錛?BR>錛渢aglib-location錛?WEB-INF/struts-tiles.tld錛?taglib-location錛?BR>錛?taglib錛?BR>
錛?web-app錛?/TD>

銆銆鍥涳紝Hibernate閰嶇疆

銆銆涓嬭澆騫舵嫹璐?lib鐩綍涓嬬殑

hibernate2.jar
commons-beanutils.jar
commons-collections.jar
commons-dbcp.jar
commons-lang.jar
commons-logging.jar
commons-pool.jar
dom4j.jar
cglib-asm.jar
connector.jar

銆銆鍒板簲鐢ㄧ珯鐐圭殑/lib鐩綍涓嬨傛帴涓嬫潵閰嶇疆 hibernate.cfg.xml鏂囦歡

錛?xml version='1.0' encoding='utf-8'?錛?BR>錛?DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"錛?
錛渉ibernate-configuration錛?BR>錛渟ession-factory錛?BR>
錛減roperty name="hibernate.connection.url"錛?BR>jdbc:mysql://localhost:3306/yourdatabase
錛?property錛?BR>錛減roperty name="hibernate.connection.driver_class"錛?BR>org.gjt.mm.mysql.Driver
錛?property錛?BR>錛減roperty name="hibernate.connection.username"錛?BR>yourname
錛?property錛?BR>錛減roperty name="hibernate.connection.password"錛?BR>youyrpassword
錛?property錛?BR>
錛??- 鏄惁灝嗚繍琛屾湡鐢熸垚鐨凷QL杈撳嚭鍒版棩蹇椾互渚涜皟璇?-錛?BR>錛減roperty name="show_sql"錛瀎alse錛?property錛?BR>
錛?--dialect 錛屾瘡涓暟鎹簱閮芥湁鍏跺搴旂殑Dialet浠ュ尮閰嶅叾騫沖彴鐗規(guī)?-錛?BR>錛減ropertyname="dialect"錛瀗et.sf.hibernate.dialect.MySQLDialect錛?property錛?BR>錛??- 浜嬪姟綆$悊綾誨瀷錛岃繖閲屾垜浠嬌鐢↗DBC Transaction --錛?BR>錛減roperty name="transaction.factory_class"錛?BR>net.sf.hibernate.transaction.JDBCTransactionFactory錛?property錛?BR>
錛減roperty name="jdbc.batch_size"錛?0錛?property錛?BR>錛減roperty name="jdbc.use_scrollable_resultset"錛瀟rue錛?property錛?BR>
錛??鏄犲皠鏂囦歡閰嶇疆錛屾敞鎰忛厤緗枃浠跺悕蹇呴』鍖呭惈鍏剁浉瀵逛簬鏍圭殑鍏ㄨ礬寰?-錛?BR>錛渕apping resource="net/seerlog/hbm/Cat.hbm.xml"/錛?BR>
錛?session-factory錛?BR>
錛?hibernate-configuration錛?/TD>

銆銆浠ヤ笂閰嶇疆浜嗘暟鎹簱榪炴帴鎵鐢ㄧ殑鍦板潃鍜岀敤鎴峰悕錛屽瘑鐮佺瓑銆傚叿浣撳弬鏁扮殑鍚箟璇峰弬鑰冨畼鏂規(guī)枃妗c?BR>
銆銆鏄犲皠鏂囦歡鐨勫唴瀹瑰彲浠ユ墜宸ユ潵鍐欙紝涔熷彲閫氳繃涓浜涘伐鍏鋒潵鑷姩鐢熸垚銆?

銆銆鏁翠釜闇瑕佷袱縐嶆枃浠訛細 .hbm.xml閰嶇疆鏂囦歡 鍜?.java鎸佷箙鍖栧璞?, 涓よ呮槸鐩鎬簰鍏寵仈鐨勶紝.hbm.xml 瀵規(guī)暟鎹簱鐨勬槧灝勮繕闇瑕?.java榪欎釜bean鏉ユ搷浣溿傛墍浠ユ暣涓繃紼嬮渶瑕侀鍏堣璁″ソ鏁版嵁搴擄紝鐒跺悗鏍規(guī)嵁鏁版嵁搴撳鍑?.hbm.xml鏂囦歡 ,鐒跺悗鍐嶅鍑?.java 鏂囦歡銆?鏈夊緢澶氬伐鍏峰彲浠ュ疄鐜拌繖涓伐紼嬶紝鎴戜滑榪欓噷閲囩敤 Middlegen-Hibernate鏉ュ疄鐜?鏁版嵁搴撳埌.hbm.xml鏂囦歡鐨勮漿鍖栵紝鐢℉ibernate-Extension宸ュ叿鍖呬腑鐨?hbm2java 鏉ュ疄鐜?.hbm.xml 鍒?.java 鏂囦歡鐨勮漿鍖栵紒

 

銆銆鏌ユ壘鍏抽敭瀛椻?FONT color=#ff0000>!ENTITY
鈥濓紝寰楀埌錛?BR>
錛?DOCTYPE project [
錛?ENTITY database SYSTEM
"file:./config/database/hsqldb.xml"錛?BR>]錛?/TD>

銆銆b) Application name

錛減roperty name="name" value="airline"/錛?

銆銆c) 杈撳嚭鐩綍

銆銆鏌ユ壘鍏抽敭瀛椻渘ame="build.gen-src.dir"鈥濓紝寰楀埌錛?BR>
錛減roperty name="build.gen-src.dir" value="${build.dir}/gen-src"/錛?

銆銆d) 瀵瑰簲浠g爜鐨凱ackage name

錛渉ibernate
destination="${build.gen-src.dir}"
package="${name}.hibernate"
genXDocletTags="false"
genIntergratedCompositeKeys="false"
javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper"
/錛?

銆銆閰嶇疆瀹屾垚鍚庯紝鍦∕iddleGen 鏍圭洰褰曚笅榪愯ant錛屽氨灝嗗嚭鐜癕iddleGen鐨勭晫闈細

銆銆閫夋嫨闇瑕佺殑琛紝鍗曞嚮紿楀彛欏墮儴鐨凣enerate 鎸夐挳錛孧iddleGen 鍗充負鎴戜滑鐢熸垚榪欎簺鏁版嵁搴撹〃鎵瀵瑰簲鐨凥ibernate鏄犲皠鏂囦歡銆?

銆銆鎺ヤ笅鏉ョ殑宸ヤ綔閫氳繃Hibernate Extension 鏉ュ畬鎴愶紝Hibernate Extension 鐨則ools\bin鐩綍涓嬪寘鍚笁涓伐鍏鳳細

銆銆1錛?hbm2java.bat

銆銆鏍規(guī)嵁鏄犲皠鏂囦歡鐢熸垚瀵瑰簲鐨凱OJO銆傞氳繃MiddleGen 鎴戜滑宸茬粡寰楀埌浜嗘槧灝勬枃浠訛紝涓嬩竴姝ュ氨鏄氳繃hbm2java.bat宸ュ叿鐢熸垚瀵瑰簲鐨凱OJO銆?BR>
銆銆2錛?class2hbm.bat

銆銆鏍規(guī)嵁POJO class 鐢熸垚鏄犲皠鏂囦歡錛岃繖涓伐鍏峰緢灝戠敤鍒幫紝榪欓噷涔熷氨涓嶅啀璇︾粏浠嬬粛銆?BR>
銆銆3錛?ddl2hbm.bat

銆銆鐢辨暟鎹簱瀵煎嚭搴撹〃緇撴瀯錛屽茍鐢熸垚鏄犲皠鏂囦歡浠ュ強POJO銆傝繖涓姛鑳戒笌MiddleGen鐨勫姛鑳介噸鍙狅紝浣嗙敱浜庣洰鍓嶈繕涓嶅鎴愮啛錛堝疄闄呬笂宸茬粡琚簾寮冿紝涓嶅啀緇存姢錛夛紝鎻愪緵鐨勫姛鑳戒篃鏈夐檺錛屾墍浠ユ垜浠繕鏄噰鐢∕iddleGen鐢熸垚鏄犲皠鏂囦歡錛屼箣鍚庣敱hbm2java鏍規(guī)嵁鏄犲皠鏂囦歡鐢熸垚POJO 鐨勬柟寮忋?

銆銆榪欓噷鎴戜滑浣跨敤絎竴涓猦bm2java.bat錛屽埄鐢ㄥ垰鎵嶇敓鎴愮殑.hbm.xml鏂囦歡鑷姩鐢熸垚 java 鏂囦歡銆?

銆銆涓轟簡浣跨敤榪欎釜宸ュ叿錛岄鍏堟垜浠渶瑕侀厤緗竴浜涘弬鏁幫紝鎵撳紑tools\bin\setenv.bat 鏂囦歡錛屼慨鏀瑰叾涓殑JDBC_DRIVER鍜孒IBERNATE_HOME鐜鍙橀噺錛屼嬌鍏舵寚鍚戞垜浠殑瀹為檯JDBC Driver鏂囦歡鍜孒ibernate鎵鍦ㄧ洰褰曘傚悓鏃舵鏌ヤ竴涓嬬幆澧冨彉閲廋P涓殑鍚勪釜欏圭洰涓槸鍚﹀疄闄呭瓨鍦紝鐗瑰埆鏄?CORELIB%涓嬬殑jar鏂囦歡錛屾煇浜涚増鏈殑鍙戣鍖呬腑錛岄粯璁ら厤緗腑鐨勬枃浠跺悕涓庡疄闄呯殑鏂囦歡鍚嶆湁鎵鍑哄叆錛堝%CORELIB%\commons-logging.jar, 鍦℉ibernate 鍙戣鍖呬腑錛屽彲鑳藉疄闄呯殑鏂囦歡鍚嶆槸commons-logging-1.0.3.jar錛岃濡傛綾伙級銆?

銆銆浣跨敤hbm2java錛屾牴鎹甅iddleGen鐢熸垚鐨勬槧灝勬枃浠剁敓鎴怞ava 浠g爜錛?BR>
銆銆鎵撳紑Command Window錛屽湪tools\bin鐩綍涓嬫墽琛岋細

hbm2java c:\sample\org\hibernate\sample\*.xml --output=c:\sample\

銆銆閫氳繃浠ヤ笂姝ラ鎴戜滑灝辯敓鎴愪簡鎵闇瑕佺殑鎵鏈夊熀鏈厤緗枃浠躲傛帴涓嬫潵灝卞彲浠ユ潵鍒濆鍖栬繖浜涢厤緗暒銆?
銆銆瀹炴垬綃?/B>

銆銆鍦ㄨ繖涓鑺傛垜浠閰嶇疆涓涓畬鏁寸殑搴旂敤閰嶇疆銆傚叾瀹炴瘡涓涓崟鐙嬁鍑烘潵閮借兘鍐欐湰涔︼紝涓嶈繃鎴戝彧鏄晶閲嶅鑷繁鎬葷粨錛屽湪浠ュ悗鎴戜細涓嶆柇鍦版妸瀛︿範鐨勭粡楠屾暀璁啓涓嬫潵銆?BR>
銆銆涓錛孡og4j 鐨勫垵濮嬪寲

銆銆閰嶇疆log4j.properties

### direct log messages to stdout ###
#log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.Target=System.out
#log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
%c{1}:%L - %m%n
#log4j.appender.stdout.layout.ConversionPattern=%-5p %d{yyyy-MM-dd HH:mm:ss} %l%n%m%n
log4j.logger.seerlog=DEBUG,A2
log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.file=d:\\log\\applog.txt
log4j.appender.A2.DatePattern='.'yyyy-MM-dd
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%-5p %d{yyyy-MM-dd HH:mm:ss} %m%n

#log4j.logger.ALL=DEBUG,A1
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.file=d:\\log\\all.log
log4j.appender.A1.DatePattern='.'yyyy-MM-dd
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-5p %d{yyyy-MM-dd HH:mm:ss} %l%n%m%n

### direct messages to file 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.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###

###log4j.rootLogger=warn, stdout
log4j.rootLogger=info, A1

#浠ヤ笅鏄痟ibernate API闇瑕佺殑閰嶇疆

log4j.logger.net.sf.hibernate=info

### log just the SQL
#log4j.logger.net.sf.hibernate.SQL=debug

### log JDBC bind parameters ###
log4j.logger.net.sf.hibernate.type=info

### log schema export/update ###
log4j.logger.net.sf.hibernate.tool.hbm2ddl=debug

### log cache activity ###
#log4j.logger.net.sf.hibernate.cache=debug

### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
#log4j.logger.net.sf.hibernate.connection.DriverManagerConnectionProvider=trac

銆銆閰嶇疆鍚庡涓嬫潵璋冪敤,棣栧厛闇瑕佸垵濮嬪寲閰嶇疆鏂囦歡錛岃繖涓繃紼嬪彧闇瑕佷竴嬈★紝鎵浠ユ垜浠彲浠ュ湪ServletContextListener涓潵榪涜銆?BR>
String prefix = context.getRealPath("/");
PropertyConfigurator.configure(prefix+"/WEB-INF/classes/log4j.properties");

銆銆榪欓噷闇瑕佷綘鐨勯厤緗枃浠剁殑璺緞鏉ュ垵濮嬪寲銆?BR>
銆銆鍒濆鍖栧畬鎴愬悗錛屾垜浠湪浠ュ悗鐨刟ction涓氨鍙互 璞′笅闈竴鏍鋒潵璋冪敤錛?BR>
static Logger log=Logger.getLogger("seerlog");
log.warn("it's log4j warn");
log.info("it's log4j info");

銆銆鍏充簬 log4j 鐨勫畬鍏ㄤ嬌鐢ㄦ柟娉曪紝鍋朵細鍦ㄤ互鍚庡仛璇︾粏鐨勮鏄庯紒

銆銆浜岋紝hibernate 鐨勫垵濮嬪寲

銆銆棣栧厛鎴戜滑瑕佹妸hibernate.cfg.xml 鏀懼埌搴旂敤鐨?classes 鐩綍涓紝鐒跺悗鍙互浣跨敤hibernate鍙傝冩枃妗f彁渚涚殑渚嬪瓙鏉ュ皝瑁呭鍚庡彴鐨勪嬌鐢ㄣ?BR>
public class Hi{

private static final SessionFactory sessionFactory;
private static Connection conn;
static {
銆try {
銆銆sessionFactory = new Configuration().configure().buildSessionFactory();
銆} catch (HibernateException ex) {
銆銆throw new RuntimeException("Exception building SessionFactory: " + ex.getMessage(), ex);
銆}
}

public static final ThreadLocal session = new ThreadLocal();
public static Session getSession() throws HibernateException {
銆Session s = (Session) session.get();
銆// 鍋囧娌℃湁涓涓彲鐢ㄧ殑綰跨▼錛屽紑鍚竴涓柊 Session,
銆if (s == null) {
銆銆conn=DBConnectionManager.getConnection();
銆銆s = sessionFactory.openSession(conn);
銆銆session.set(s);
銆}
銆return s;
}

public static void closeSession() throws HibernateException {
銆Session s = (Session) session.get();
銆session.set(null);
銆if (s != null)
銆銆s.close();
銆if(conn!=null)
銆銆DBConnectionManager.returnConnection(conn);
銆}
}

銆銆鏂囦腑DBConnectionManager.getConnection()鏄竴涓狣AO綾伙紝鎻愪緵榪炴帴姹犵殑瀹炵幇銆?

銆銆鎴戜滑浣跨敤榪欎釜con榪炴帴鏉ュ垱寤轟竴涓?session 錛宻ission鏄竴涓暟鎹簱榪炴帴鎿嶄綔鐨勪細璇濆懆鏈燂紝瀹冩彁渚涗簡寮哄ぇ鐨勭鐞嗘暟鎹殑鑳藉姏銆?

銆銆浠ュ悗鎴戜滑鍦╝ction鐨?execute 鏂規(guī)硶涓氨鍙互浣跨敤 Hi.getSession()鏉ヨ幏寰椾竴涓細璇濇敮鎸併傚吀鍨嬬殑搴旂敤濡備笅錛?

try{
銆//寮鍚竴涓細璇濓紝騫跺惎鍔ㄤ簨鍔″洖婊氳兘鍔?BR>銆Session session = Hi.getSession();
銆Transaction tx= session.beginTransaction();

銆//鏌ヨ鏁版嵁搴擄紝浣跨敤HQL
銆Query q = session.createQuery("from Topic as topic order by topic.id desc");
銆q.setFirstResult(0);
銆q.setMaxResults(5);

銆//寰楀埌涓涓狶ist綾誨瀷鐨勬暟鎹?
銆List newTopicList = q.list();

銆// 涓氬姟澶勭悊
銆NewTopicList ntlBean=new NewTopicList();
銆ntlBean.setList(newTopicList);
銆req.setAttribute("newtopiclist",ntlBean);

銆//浜嬪姟鎻愪氦錛岃寰楀叧闂細璇濓紒
銆tx.commit();
銆Hi.closeSession();

}//鍥犱負鏁翠釜浼氳瘽浼氭姏鍑哄紓甯革紝鎵浠ラ渶瑕佺敤try--catch鏉ュ寘瑁?BR>catch(HibernateException e){

銆//鏃ュ織璁板綍
銆Log.error(e.toString());
}

銆銆鍏朵腑鐨凥QL 鍙互鍙傝?hibernate 瀹樻柟鏂囨。鏉ュ涔犮?
銆銆瀹炴垬綃?/B>

銆銆鍦ㄨ繖涓鑺傛垜浠閰嶇疆涓涓畬鏁寸殑搴旂敤閰嶇疆銆傚叾瀹炴瘡涓涓崟鐙嬁鍑烘潵閮借兘鍐欐湰涔︼紝涓嶈繃鎴戝彧鏄晶閲嶅鑷繁鎬葷粨錛屽湪浠ュ悗鎴戜細涓嶆柇鍦版妸瀛︿範鐨勭粡楠屾暀璁啓涓嬫潵銆?BR>
銆銆涓錛孡og4j 鐨勫垵濮嬪寲

銆銆閰嶇疆log4j.properties

### direct log messages to stdout ###
#log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.Target=System.out
#log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
%c{1}:%L - %m%n
#log4j.appender.stdout.layout.ConversionPattern=%-5p %d{yyyy-MM-dd HH:mm:ss} %l%n%m%n
log4j.logger.seerlog=DEBUG,A2
log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.file=d:\\log\\applog.txt
log4j.appender.A2.DatePattern='.'yyyy-MM-dd
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%-5p %d{yyyy-MM-dd HH:mm:ss} %m%n

#log4j.logger.ALL=DEBUG,A1
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.file=d:\\log\\all.log
log4j.appender.A1.DatePattern='.'yyyy-MM-dd
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-5p %d{yyyy-MM-dd HH:mm:ss} %l%n%m%n

### direct messages to file 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.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###

###log4j.rootLogger=warn, stdout
log4j.rootLogger=info, A1

#浠ヤ笅鏄痟ibernate API闇瑕佺殑閰嶇疆

log4j.logger.net.sf.hibernate=info

### log just the SQL
#log4j.logger.net.sf.hibernate.SQL=debug

### log JDBC bind parameters ###
log4j.logger.net.sf.hibernate.type=info

### log schema export/update ###
log4j.logger.net.sf.hibernate.tool.hbm2ddl=debug

### log cache activity ###
#log4j.logger.net.sf.hibernate.cache=debug

### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
#log4j.logger.net.sf.hibernate.connection.DriverManagerConnectionProvider=trac

銆銆閰嶇疆鍚庡涓嬫潵璋冪敤,棣栧厛闇瑕佸垵濮嬪寲閰嶇疆鏂囦歡錛岃繖涓繃紼嬪彧闇瑕佷竴嬈★紝鎵浠ユ垜浠彲浠ュ湪ServletContextListener涓潵榪涜銆?BR>
String prefix = context.getRealPath("/");
PropertyConfigurator.configure(prefix+"/WEB-INF/classes/log4j.properties");

銆銆榪欓噷闇瑕佷綘鐨勯厤緗枃浠剁殑璺緞鏉ュ垵濮嬪寲銆?BR>
銆銆鍒濆鍖栧畬鎴愬悗錛屾垜浠湪浠ュ悗鐨刟ction涓氨鍙互 璞′笅闈竴鏍鋒潵璋冪敤錛?BR>
static Logger log=Logger.getLogger("seerlog");
log.warn("it's log4j warn");
log.info("it's log4j info");

銆銆鍏充簬 log4j 鐨勫畬鍏ㄤ嬌鐢ㄦ柟娉曪紝鍋朵細鍦ㄤ互鍚庡仛璇︾粏鐨勮鏄庯紒

銆銆浜岋紝hibernate 鐨勫垵濮嬪寲

銆銆棣栧厛鎴戜滑瑕佹妸hibernate.cfg.xml 鏀懼埌搴旂敤鐨?classes 鐩綍涓紝鐒跺悗鍙互浣跨敤hibernate鍙傝冩枃妗f彁渚涚殑渚嬪瓙鏉ュ皝瑁呭鍚庡彴鐨勪嬌鐢ㄣ?BR>
public class Hi{

private static final SessionFactory sessionFactory;
private static Connection conn;
static {
銆try {
銆銆sessionFactory = new Configuration().configure().buildSessionFactory();
銆} catch (HibernateException ex) {
銆銆throw new RuntimeException("Exception building SessionFactory: " + ex.getMessage(), ex);
銆}
}

public static final ThreadLocal session = new ThreadLocal();
public static Session getSession() throws HibernateException {
銆Session s = (Session) session.get();
銆// 鍋囧娌℃湁涓涓彲鐢ㄧ殑綰跨▼錛屽紑鍚竴涓柊 Session,
銆if (s == null) {
銆銆conn=DBConnectionManager.getConnection();
銆銆s = sessionFactory.openSession(conn);
銆銆session.set(s);
銆}
銆return s;
}

public static void closeSession() throws HibernateException {
銆Session s = (Session) session.get();
銆session.set(null);
銆if (s != null)
銆銆s.close();
銆if(conn!=null)
銆銆DBConnectionManager.returnConnection(conn);
銆}
}

銆銆鏂囦腑DBConnectionManager.getConnection()鏄竴涓狣AO綾伙紝鎻愪緵榪炴帴姹犵殑瀹炵幇銆?

銆銆鎴戜滑浣跨敤榪欎釜con榪炴帴鏉ュ垱寤轟竴涓?session 錛宻ission鏄竴涓暟鎹簱榪炴帴鎿嶄綔鐨勪細璇濆懆鏈燂紝瀹冩彁渚涗簡寮哄ぇ鐨勭鐞嗘暟鎹殑鑳藉姏銆?

銆銆浠ュ悗鎴戜滑鍦╝ction鐨?execute 鏂規(guī)硶涓氨鍙互浣跨敤 Hi.getSession()鏉ヨ幏寰椾竴涓細璇濇敮鎸併傚吀鍨嬬殑搴旂敤濡備笅錛?

try{
銆//寮鍚竴涓細璇濓紝騫跺惎鍔ㄤ簨鍔″洖婊氳兘鍔?BR>銆Session session = Hi.getSession();
銆Transaction tx= session.beginTransaction();

銆//鏌ヨ鏁版嵁搴擄紝浣跨敤HQL
銆Query q = session.createQuery("from Topic as topic order by topic.id desc");
銆q.setFirstResult(0);
銆q.setMaxResults(5);

銆//寰楀埌涓涓狶ist綾誨瀷鐨勬暟鎹?
銆List newTopicList = q.list();

銆// 涓氬姟澶勭悊
銆NewTopicList ntlBean=new NewTopicList();
銆ntlBean.setList(newTopicList);
銆req.setAttribute("newtopiclist",ntlBean);

銆//浜嬪姟鎻愪氦錛岃寰楀叧闂細璇濓紒
銆tx.commit();
銆Hi.closeSession();

}//鍥犱負鏁翠釜浼氳瘽浼氭姏鍑哄紓甯革紝鎵浠ラ渶瑕佺敤try--catch鏉ュ寘瑁?BR>catch(HibernateException e){

銆//鏃ュ織璁板綍
銆Log.error(e.toString());
}

銆銆鍏朵腑鐨凥QL 鍙互鍙傝?hibernate 瀹樻柟鏂囨。鏉ュ涔犮?


]]>
主站蜘蛛池模板: 皇色在线免费视频| 亚洲av永久中文无码精品综合| 嫩草在线视频www免费观看| 国产成人无码免费视频97| 亚洲丶国产丶欧美一区二区三区| 免费毛片在线看片免费丝瓜视频| 精品国产日韩久久亚洲| 成年人网站在线免费观看| 亚洲人成色4444在线观看| 色www永久免费视频| 免费人成大片在线观看播放电影| 免费成人在线观看| 岛国精品一区免费视频在线观看| 亚洲最大AV网站在线观看| 国产真人无码作爱视频免费 | 一个人免费观看www视频在线| 波多野结衣亚洲一级| 在线免费观看视频你懂的| 亚洲精品无播放器在线播放 | 国产亚洲精品线观看动态图| A国产一区二区免费入口| 亚洲AV永久无码精品水牛影视| 97在线视频免费播放| 国产亚洲sss在线播放| 免费日韩在线视频| 久久久受www免费人成| 亚洲精品天天影视综合网| 无码国产精品一区二区免费| 亚洲丁香婷婷综合久久| 亚洲中文字幕在线观看| 亚洲一级毛片免费看| 国产亚洲精品国产福利在线观看| 亚洲一区二区高清| 69精品免费视频| 亚洲成a人无码亚洲成www牛牛 | 亚洲AV综合色区无码一二三区 | 中文字幕在线免费看线人| 亚洲视频在线观看网址| 好大好硬好爽免费视频| 九九九精品视频免费| 久久亚洲精品人成综合网|