一、映射文件
Hibernate在实现ORM功能的时候主要用到的文件有:
1、 映射类(*.Java)
描述数据库表的结构,表的字段映射为类的属性,表的记录映射为类的对象。
2、映射文件(*.hbm.xml)
指定数据库表和映射类之间的关系。
包括映射类和数据库表、表字段和类属性类型以及表字段和类属性名称的对应关系。
3、 hibernate核心配置文件(*.properties/*.cfg.xml)
指定hibernate的一些核心配置,包含与数据库连接时需要的连接信息。
如:连接数据库、登录数据库的用户名、登录密码以及连接字符串、映射文件的地址。
4、分类
二、XML方式配置映射
classpath:com/test目录下的User.hbm.xml
- <?xml version="1.0"?>
- <!DOCTYPE hibernate-mapping PUBLIC
- "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
- <hibernate-mapping>
- <class name="com.test.User" >
- <id name="id">
- <!-- 算法的核心思想是结合机器的网卡、当地时间、一个随机数来生成id -->
- <generator class="uuid2"></generator>
- </id>
- <property name="name"></property>
- <property name="password"></property>
- </class>
- </hibernate-mapping>
三、注解映射配置
1、加入hibernate annotion支持包
hibernate-commons-annotations-5.0.1.Final.jar
hibernate-jpa-2.1-api-1.0.0.Final.jar
2、hibernate5必须导入jar包 -hibernate-release-5.2.7.Final.zip(hibernate项目文件的jar)
antlr-2.7.7.jar (生成SQL语句)
classmate-1.3.0.jar
dom4j-1.6.1.jar
geronimo-jta_1.1_spec-1.1.1.jar
hibernate-commons-annotations-5.0.1.Final.jar
hibernate-core-5.2.7.Final.jar
hibernate-jpa-2.1-api-1.0.0.Final.jar
jandex-2.0.3.Final.jar
javassist-3.20.0-GA.jar
jboss-logging-3.3.0.Final.jar
mysql-connector-java-6.0.5.jar
3、建立实体类User,采用注解完成映射
- package com.test;
- import javax.persistence.Column;
- import javax.persistence.Entity;
- import javax.persistence.GeneratedValue;
- import javax.persistence.GenericGenerator;
- import javax.persistence.Id;
-
- @Entity //不写Table默认为user,@Table(name="user")
- public class User {
- @Id //主键
- @GenericGenerator(name = "generator", strategy = "uuid2")
@GeneratedValue(generator = "generator") - private String id;
- @Column(name="name") //字段为name,可以不注解@Column
- private String name;
- private String password;
-
- 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 getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- }
四、hibernate.cfg.xml文件配置
1、将User加入到hibernate.cfg.xml配置文件
- <?xml version="1.0"?>
- <!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>
- <!-- 数据库URL -->
- <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_db</property>
- <!-- 数据库用户名 -->
- <property name="hibernate.connection.username">root</property>
- <!-- 数据库密码 -->
- <property name="hibernate.connection.password">admin</property>
- <!-- mysql的方言 -->
- <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
- <!-- 映射文件配置 -->
- <!-- <mapping resource="com/test/User.hbm.xml"/> -->
- <!-- 由原来的映射文件,改成实体类 -->
- <mapping class="com.test.User"/>
- </session-factory>
- </hibernate-configuration>
2、不配置User类的mapping
Configuration 指定映射文件
Configuration cfg=new Configuration().configure("/hibernate.cfg.xml");
cfg.addResource("com/test/User.hbm.xml");
或 cfg.addClass(com.test.User.class);
五、hibernate.properties文件配置
1、hibernate.properties
#数据库使用的驱动类
hibernate.connection.driver_class=com.mysql.jdbc.Driver
#数据库连接串
hibernate.connection.url=jdbc:mysql://localhost:3306/hibernate_db
#数据库连接的用户名
hibernate.connection.username=user
#数据库连接的密码
hibernate.connection.password=admin
#数据库使用的方言
hibernate.dialect=net.sf.hibernate.dialect.MySQLDialect
#是否打印SQL语句
hibernate.show_sql=true
javax.persistence.validation.mode=none
2、配置工具类
Configuration cfg = new Configuration();
cfg.configure("/hibernate.properties");
cfg.addResource("com/test/User.hbm.xml");
//cfg.addClass(com.test.User.class);