hibernate.cfg.xml在哪

hibernate.cfg.xml在哪,第1张

项目需要构建一个Java环境,使用Hibernate作为数据持久层,一兄弟按照网上的说法配置了hibernate,结果搞了几天都没搞好,总是报错“Could not find datasource”,最后还是我自己动手在自己机器上配个环境才引导他弄好。

要配好Hibernate首先的弄清楚Java在寻找hibernate.cfg.xml这个文件的时候在哪些目录中寻找,Java将在以下目录中寻找hibernate.cfg.xml这个文件:

webappsname/WEB-INF/classes/

TOMCATHOME/

TOMCATHOME/lib

所以我们的hibernate.cfg.xml务必放在webapp的WEB-INF/classes/目录下了,放在其他目录下都不是很合适。

另外就是关于hibernate.cfg.xml中的jdbc配置了,网上的说法各异,其实最简单的就是在hibernate.cfg.xml中直接使用jdbc配置了,如下:

<?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”>

<hibernate-configuration>

<session-factory>

<property name=”hibernate.connection.driver_class”>com.mysql.jdbc.Driver</property>

<property name=”hibernate.connection.url”>jdbc:mysql://localhost/test</property>

<property name=”hibernate.connection.username”>root</property>

<property name=”hibernate.connection.password” />

<property name=”show_sql”>false</property>

<property name=”dialect”>org.hibernate.dialect.MySQLDialect</property>

<mapping resource=”hb/Cat.hbm.xml” />

</session-factory>

</hibernate-configuration>

更改其中的driverclass和connection.url、username、password和dialect,再添加一些mapping就可以了,需要注意的是property节点的name属性中最好在前面加上hibernate。有些文章说使用Tomcat的JNDI,不建议这么做。同时要注意的是在hibernate.cfg.xml不要同时使用datasource和连接字符串两种配置(那个兄弟非要使用两种配置结果来不成功),因为没有必要。

其实从部署的角度来看的话,就应该是这样的,首先在生产环境下,很多时候是没有办法拿到Tomcat的管理权限的是配不了JNDI的,而且要去配JNDI无形增加的部署的难度,在hibernate.cfg.xml中配置连接字符串就很方便部署(Hibernate要是像.net中那样支持连接字符串加密就好了)。hibernate.cfg.xml存放的位置也是一样的,放在WEB-INF/classes/目录下,部署的时候只要拷贝webapp整个目录就可以完成部署了。

网上的文章用来做参考最好,很多东西还得靠自己领会,特别是碰到问题的时候,尽心书不如无书嘛(也别太相信我写的,说不定那天不管用了。^_^)。

附:使用Tomcat JNDI 数据源配置方法

<?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”>

<hibernate-configuration>

<session-factory>

<property name=”hibernate.connection.datasource”>java:comp/env/jdbc/odbcq</property>

<property name=”show_sql”>false</property>

<property name=”dialect”>org.hibernate.dialect.MySQLDialect</property>

<mapping resource=”hb/Cat.hbm.xml” />

</session-factory>

</hibernate-configuration>

参考博客:http://www.cnblogs.com/haquanwen/p/3812611.html

Hibernate加载配置文件的两种方法:

(一):configuration.configure()(默认加载src下的hibernate.cfg.xml文件)

代码:

private static SessionFactory sf = null static{

Configuration configuration = new Configuration()

configuration.configure()

sf = configuration.buildSessionFactory()

}

如果使用了这种加载方法那么在hibernate.cfg.xml文件中就需要mapping XX.hbm.xml文件了

代码:

<session-factory>

<mapping resource="domain/Students.hbm.xml"/>

<mapping resource="domain/Techer.hbm.xml"/></session-factory>

第二种方法使用的是con.addClass(class)方法

在test类中代码:

private static SessionFactory sf = null static{

Configuration configuration = new Configuration()

configuration.configure()

configuration.addClass(Techer.class)

configuration.addClass(Students.class)

sf = configuration.buildSessionFactory()

}

方法:打开myeclipse进入主界面,点击上方【File】,【new】创建一个web project

项目创建完成,右键点击项目名称,在菜单栏点击【Myeclipse】

在右方子菜单栏里点击【Project Facets】,此时在列表中可以看到【hibernate】配置文件点击创建

选择hibernate的版本已经JDK版本,点击下一步

进入创建界面,选择配置文件和Session工厂类的包路径,点击下一步

创建完成,在相关目录下可以看到Hibernate配置文件已经加载成功。

默认生存的数据库是myeclipse自带的数据库,可以修改为自己的数据库。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11645440.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存