hibernate.cfg.xml注解和*.hbm.xml配置文件详解

来源:互联网 发布:战锤全面战争 mac中文 编辑:程序博客网 时间:2024/05/14 12:33

hibernate中有两个常见的配置文件hibernate.cfg.xml和*.hbm.xml

下面分别详细介绍下这两个配置文件

一、hibernate.cfg.xml配置文件内容和详解

<hibernate-configuration><session-factory><!-- 配置数据库连接信息 --><!-- 数据库驱动 --><property name="connection.driver_class">com.mysql.jdbc.Driver</property><!-- url --><property name="connection.url">jdbc:mysql:///hibernatetest</property><property name="connection.username">root</property><property name="connection.password">root</property><!-- 数据库方言 --><property name="dialect">org.hibernate.dialect.MySQL5Dialect</property><!-- 是否打印sql语句 --><property name="show_sql">true</property><!-- 格式化sql语句 --><property name="format_sql">true</property><!-- 数据库更新方式:create:每次执行都先将原有的数据表删除,然后创建该表create-drop:使用create-drop时,在显示关闭SessionFactory时,将drop掉数据库schema(表)validate:检测update:如果表不存在则创建,有就不用创建 --> <property name="hbm2ddl.auto">update</property><!-- 映射文件 --><mapping resource="com/test/pojo/User.hbm.xml" /></session-factory></hibernate-configuration>
二、User实体类

public class User {private int id;private String name;private String pwd;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}}
与User实体类对应的User.hbm.xml配置文件内容和详解

<!-- package声明pojo类所在的包,如果不写那么在class中需要指明pojo类所在的包 schema指数据库模式, 一个模式下可以有多张表 --><hibernate-mapping package="com.test.pojo"><!--   class:指映射一个pojo类    1) 提供了公共的无参构造方法--通过反射产生对象    2)属性用private修饰,并且生成对应的get/set方法    3)类不能用final 来修饰--hibernate会产生代理类(cglib)    4)类需要指明标识  name:表示pojo类名  table:表示pojo类对应数据库中的表名;如果不写默认是类名 --><class name="User" table="user"><!-- id:表示实体类的标识(OID),对应数据库表中的主键name:指实体类的标识属性名column:表示对应数据库的列名,如果不写则数据库表中列名和属性名一致length:表示数据库表中对应数据类型的长度,如果不写有默认长度type:表示类型如果不写hibernate可以找到对应pojo类的属性的类型--><id name="id" column="id"><!-- 主键生成策略increment:用于为long,short或者int类型生成唯一标识。只有在没有其他进程往同一张表中插入数据时才能使用。在集群下不要使用identity:对DB2,MySQL,SQL Server,Sybase和HypersonicSQL的内置标识字段提供支持。返回的标识符为long,short或者int类型的。sequence:在支持序列的数据库中使用 Orcale例:   注:param中的值是数据库sequence的名称<generator class="sequence">  <param name="sequence">user_seq</param></generator>uuid: UUID被编码为一个32位16进制数字的字符串native:根据底层数据库的能力选择identity,sequence或者hilo中的一个assigned: 自己制定主键 --> <generator class="native"></generator> </id><!-- 实体类属性 name:指明pojo类属性名称(区分大小写)column:实体类属性对应的数据库表列名--><property name="name"><column name="name"></column></property><property name="pwd"/></class></hibernate-mapping>











原创粉丝点击