- 論壇徽章:
- 0
|
2月23日學(xué)習(xí)hibernate手記
1、從前幾天開始學(xué)習(xí)hibernate主要是從網(wǎng)上參看網(wǎng)頁上的教程來做一些例子(
http://www.hibernate.org/hib_docs/reference/zh-cn/html/quickstart.html
)
從通過配置tomcat服務(wù)器開始;我的機(jī)器上有一個tomcat服務(wù)器是一個需要按裝只要啟動服務(wù)就可以了通過教程中的說明發(fā)現(xiàn)需要在tomcat中添加datasource,登陸我自己的
服務(wù)器
http://localhost:8080/admin
來增加datasource ,在登陸的時候使用admin用戶不能登陸通過查詢資料后在tomcat安裝目錄下有一個conf目錄下的文件tomcat-users.xml
通過在該文件增加 和 登陸到管理界面進(jìn)行配置(不知道是因?yàn)閐atasource配置的問題
還是hibernate配置文件的問題,結(jié)果在后邊配置了hibernate的配置文件hibernate.cfg.xml后在jsp文件中不能夠使用tomcat配置的datasource,提示找不到datasource);
在配置完datasource 后按照教程 開始配置 hibernate的配置文件hiberate.cfg.xml,因我使用的數(shù)據(jù)庫服務(wù)器oracle數(shù)據(jù),不是教程中使用的PostgreSQL 7.3的數(shù)據(jù)庫所以
在配置的時候和教程不太一致,我都進(jìn)行了修改,在hibernate.cfg.xml文件中Session-Factory的配置如下:
java:comp/env/oracle
false
net.sf.hibernate.dialect.OracleDialect
然后根據(jù)教程內(nèi)容分別建立如下的java類HibernateUtil:
package com.abc;
import net.sf.hibernate.*;
import net.sf.hibernate.cfg.*;
public class HibernateUtil {
private static Log log = LogFactory.getLog(HibernateUtil.class);
private static final SessionFactory sessionFactory;
static {
try {
// Create the SessionFactory
sessionFactory = new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
log.error("Initial SessionFactory creation failed.", ex);
throw new ExceptionInInitializerError(ex);
}
}
public static final ThreadLocal session = new ThreadLocal();
public static Session currentSession() throws HibernateException {
Session s = (Session) session.get();
// Open a new Session, if this Thread has none yet
if (s == null) {
s = sessionFactory.openSession();
session.set(s);
}
return s;
}
public static void closeSession() throws HibernateException {
Session s = (Session) session.get();
session.set(null);
if (s != null)
s.close();
}
}
java類Cat
package com.abc;
public class Cat
{
private String id;
private String name;
private char sex;
private float weight;
public Cat() {
}
public String getId() {
return id;
}
private 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;
}
}
建立自己使用的java類tet
package com.abc;
public class tet
{
public static void abc()
{
Session session = HibernateUtil.currentSession();
Transaction tx= session.beginTransaction();
Cat princess = new Cat();
princess.setName("Princess");
princess.setSex('F');
princess.setWeight(7.4f);
session.save(princess);
tx.commit();
HibernateUtil.closeSession();
}
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
通過在jsp業(yè)中調(diào)用tet在數(shù)據(jù)庫中插入數(shù)據(jù)
在tomcat的webapps目錄下建立quickstart目錄,建立了webapp,將上述的類文件放入WEB-INF/classes/com/abc目錄中
將建立的hibernate.cfg.xml和Cat.hbm.xml文件放置在WEB-INF\classes\目錄下然后啟動服務(wù),打開網(wǎng)頁提示不能找到datasource .
重復(fù)修改了很多次hibernate.cfg.xml始終提示不能找到datasource 。最后沒有辦法只好將配置文件修改如下內(nèi)容,并將oracle的數(shù)據(jù)庫jdbcdriver文件
重新打包放在WEB-INF/lib/目錄下。hibernate.cfg.xml文件修改為如下內(nèi)容即不使用tomcat提供的datasource :
net.sf.hibernate.dialect.OracleDialect
oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@192.168.0.103:1521:oracle
system
manager
在重新啟動服務(wù)打開網(wǎng)頁后數(shù)據(jù)庫中增加了數(shù)據(jù),經(jīng)過幾天的折騰終于做成了一個例子。
本文來自ChinaUnix博客,如果查看原文請點(diǎn):http://blog.chinaunix.net/u/1507/showart_77608.html |
|