hibernate配置文件在哪

hibernate配置文件在哪,第1张

1)一个总体用的hibernate.cfg.xml,比如设置数据库用户名、密码、常量、映射文件位置等等信息的地方,这个文件整个hibernate项目只用一个就可;

2)每个实体映射都有一个***.hbm.xml文件,即实体映射文件,里面写的是数据库和实体类的映射配置,包含关系映射或继承映射等等;比如Student.java实体类就用Student.hbm.xml这个映射文件;所以一个hibernate项目往往有多个配置文件。不过这些配置也可以以注解(Annotation)形式写在实体类里面。hibernate支持标准的JPA标准注解。

只要你能找到,放在哪里都可以。sessionFactory = new Configuration().configure("WEB-INF/hibernate.cfg.xml").buildSessionFactory()

hibernate实现有两种配置,xml配置与注释配置。

一、hibernate.cfg.xml

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

<!--url信息-->

<property name="connection.url">jdbc:mysql://localhost:3306/webases</property>

<!--数据库方言信息-->

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

<!--用户名-->

<property name="connection.username">root</property>

<!--密码-->

<property name="connection.password">123456</property>

<!--数据库驱动信息-->

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

<!--指定Hibernate映射文件路径-->

<mapping resource="com/Hibernate/order.hbm.xml" />

</session-factory>

</hibernate-configuration>

二、注解方式:

先是需要加入4个jar包:hibernate-commons-annotations.jar 、

hibernate-annotations.jar、ejb3-persistence.jar 、

hibernate-jpa-2.0-api-1.0.1.Final.jar

不同的地方:

(1):hibernate.hbm.xml 文件中把引用:xxx.hbm.xml改为引用实体类:

即把:<mapping resource="com/wsw/hibernate/model/Order.hbm.xml"/>

改为:<mapping class="com.wsw.hibernate.model.Order" />

(2):获取SessionFactory方式发生了变化:

即:由SessionFactory sf = new Configuration().configure().buildSessionFactory()

改为:SessionFactory sf = new AnnotationConfiguration().configure().buildSessionFactory()

(3):注解方式不需要在xxx.hbm.xml把实体类与表进行映射。而采用在实体类中进行注解。

注意:(1):如果实体类属性名与表字段名不一致的时候,要么都注解在属性前,要么都注解在get方法前。不能部分注解在属性前,部分注解在方法前。

(2):如果实体类属性名与表字段名一致的时候,可以部分注解在属性前,部分注解在方法前。

(3):如果在实体类中某些属性不注解:(属性和get都不写注解),默认为表字段名与实体类属性名一致。

(4):如果实体类的某个成员属性不需要存入数据库中,使用@Transient 进行注解就可以了。即类似于:(xxx.hbm.Xml配置中的某些字段不写(就是不需要对这个成员属性进行映射))

(5):表名称可以在实体类前进行注解。

(6):所有这些注解在:javax.persistence包下。而不是在hibernate包中。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存