Chinaunix
标题:
2月23日学习hibernate手记--配置第一个使用hibernate的应用
[打印本页]
作者:
大马虎
时间:
2006-02-23 11:49
标题:
2月23日学习hibernate手记--配置第一个使用hibernate的应用
2月23日学习hibernate手记
1、从前几天开始学习hibernate主要是从网上参看网页上的教程来做一些例子(
http://www.hibernate.org/hib_docs/reference/zh-cn/html/quickstart.html
)
从通过配置tomcat服务器开始;我的机器上有一个tomcat服务器是一个需要按装只要启动服务就可以了通过教程中的说明发现需要在tomcat中添加datasource,登陆我自己的
服务器
http://localhost:8080/admin
来增加datasource ,在登陆的时候使用admin用户不能登陆通过查询资料后在tomcat安装目录下有一个conf目录下的文件tomcat-users.xml
通过在该文件增加 和 登陆到管理界面进行配置(不知道是因为datasource配置的问题
还是hibernate配置文件的问题,结果在后边配置了hibernate的配置文件hibernate.cfg.xml后在jsp文件中不能够使用tomcat配置的datasource,提示找不到datasource);
在配置完datasource 后按照教程 开始配置 hibernate的配置文件hiberate.cfg.xml,因我使用的数据库服务器oracle数据,不是教程中使用的PostgreSQL 7.3的数据库所以
在配置的时候和教程不太一致,我都进行了修改,在hibernate.cfg.xml文件中Session-Factory的配置如下:
java:comp/env/oracle
false
net.sf.hibernate.dialect.OracleDialect
然后根据教程内容分别建立如下的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业中调用tet在数据库中插入数据
在tomcat的webapps目录下建立quickstart目录,建立了webapp,将上述的类文件放入WEB-INF/classes/com/abc目录中
将建立的hibernate.cfg.xml和Cat.hbm.xml文件放置在WEB-INF\classes\目录下然后启动服务,打开网页提示不能找到datasource .
重复修改了很多次hibernate.cfg.xml始终提示不能找到datasource 。最后没有办法只好将配置文件修改如下内容,并将oracle的数据库jdbcdriver文件
重新打包放在WEB-INF/lib/目录下。hibernate.cfg.xml文件修改为如下内容即不使用tomcat提供的datasource :
net.sf.hibernate.dialect.OracleDialect
oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@192.168.0.103:1521:oracle
system
manager
在重新启动服务打开网页后数据库中增加了数据,经过几天的折腾终于做成了一个例子。
本文来自ChinaUnix博客,如果查看原文请点:
http://blog.chinaunix.net/u/1507/showart_77608.html
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2