要配好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自带的数据库,可以修改为自己的数据库。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)