1.映射文件:User.hbm.xml
代码语言:javascript复制<!--
package 指向class中所有类的包名,可以直接在指定类名时同时指定包名
-->
<hibernate-mapping package="cn.vincent.pojo">
<!--
class 表示类的映射
name表示类名,如果hibernate-mapping中没有指定包名,在这里必须指定。
table 指定类所对应的表名 如果不写 默认和类名一致
-->
<class name="User" table="t_user">
<!--
id表示主键映射,在hibernate中,类所对应的表必须有主键
name表示 类中对应数据库表中主键属性名
column 表示字段名称 不写和属性名一致
type 表示属性的类型 如果不写 会自动根据类的属性信息查找
-->
<id name="id" column="id" type="int">
<!--
generator表示主键生成策略-为保存数据时指定其id
increment
用于为long, short或者int类型生成 唯一标识。
只有在没有其他进程往同一张表中插入数据时才能使用。 在集群下不要使用。
select max(id) from table;
identity
对DB2,MySQL, MS SQL Server, Sybase和HypersonicSQL
的内置标识字段提供支持。 返回的标识符是long, short 或者int类型的。
sequence
在DB2,PostgreSQL, Oracle, SAP DB, McKoi中使用序列(sequence),
而在Interbase中使用生成器(generator)。返回的标识符是long, short或者 int类型的。
<generator class="sequence">
<param name="sequence">sequence_name</param>
</generator>
hilo
使用一个高/低位算法高效的生成long, short 或者 int类型的标识符。给定一个表和
字段(默认分别是 hibernate_unique_key 和next_hi)作为高位值的来源。
高/低位算法生成的标识符只在一个特定的数据库中是唯一的。
uuid-开发中使用最多
用一个128-bit的UUID算法生成字符串类型的标识符, 这在一个网络中是唯一的(使用
了IP地址)。UUID被编码为一个32位16进制数字的字符串。
native
根据底层数据库的能力选择identity, sequence 或者hilo中的一个。
assigned 手动指定id
让应用程序在save()之前为对象分配一个标示符。这是 <generator>元素
没有指定时的默认生成策略。
foreign
使用另外一个相关联的对象的标识符。通常和<one-to-one>联合起来使用。
-->
<generator class="native"></generator>
</id>
<!--
property 表示属性的映射
name 属性名 区分大小写,属性提供get/set方法
column 字段名 不写时 默认和属性名一致
type 属性的类型 可以不写
-->
<property name="name" column="name" type="java.lang.String"/>
<property name="age" column="age" type="int"/>
</class>
</hibernate-mapping>
2.配置文件讲解:hibernate.cfg.xml
代码语言:javascript复制<hibernate-configuration>
<session-factory>
<!-- 数据库连接信息 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- 默认 localhost:3306 -->
<property name="connection.url">jdbc:mysql:///test</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<!-- 通用配置 -->
<!-- 方言:hibernate要支持多种数据库,根据不同数据库生成对应的sql语句
告诉hibernate使用的什么数据库,以便生成对应数据库的sql
-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 打印sql语句 -->
<property name="show_sql">true</property>
<!-- 格式化sql -->
<property name="format_sql">true</property>
<!-- 映射信息 注意映射文件存放的是文档路径 需要用/ -->
<mapping resource="cn/vincent/pojo/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>