Hibernate之映射
一、映射文件
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);
Hibernate之映射相关推荐
- Hibernate关联关系映射
1. Hibernate关联关系映射 1.1. one to one <class name="Person"> <id name="id" ...
- Hibernate关联关系映射实例速查
Hibernate关联关系映射实例速查 Hibernate的映射关系很多,也比较复杂,也很容易忘记.这个基本上占据了Hibernate学习的七成时间.熟悉这些映射模型,需要大量的实践才能掌握.下面是我 ...
- Hibernate 关联映射 之 多对多 关联(二) 之拆分
1.由问题引出一个多对多拆分成两个多对一 问题:Hibernate 关联映射 之 多对多 关联(一)中中间表只是一个存放用户和角色的表,并无其他作用,如果客户有其他的需求,该表就无法扩展. 2.问题解 ...
- 【Hibernate】映射关系总结
在hibernate中,由于是对对象进行操作,但是要实现表与表之间的关系,是怎么样实现的呢? 一.Hibernate的映射 Hibernate是对对象进行操作,Hibernate的映射是描述数据库表的 ...
- hibernate 高级映射 --张国亮总结第一季
在做持久化类的时候的规定: 1).有一个默认的构造方法: 2).所有的属性都有setter和getter方法 3).有一个对象标识符Oid; 4).如果有集合属性,则必须定义成接口类型:List.Se ...
- 用Hibernate Tools生成Hibernate Mapping映射文件
用Hibernate Tools生成Hibernate Mapping映射文件 Eclipse中要集成安装Hibernate Tools组件 如果没有,请查看:Eclipse juno 中安装 JBo ...
- Hibernate之深入Hibernate的映射文件
这周周末 要把hibernate的映射文件搞定 .. 1.映射文件的主结构 主要结构 :根元素为<hibernate-mapping ></hibernate-mapping> ...
- hibernate mysql 映射_hibernate与mysql映射类型对应表与mysql导入导出
http://blog.sina.com.cn/s/blog_5f240fc40100etlt.html 一.记录下hibernate mysql映射类型对应表: 1.常规Hibernate 映射 i ...
- Oracle primary,unique,foreign 区别,Hibernate 关联映射
Oracle primary,unique,foreign 区别 转:http://www.cnblogs.com/henw/archive/2012/08/15/2639510.html NOT N ...
- mysql映射超_Hibernate的映射类型 hibernate mysql映射类型
(转)http://blog.csdn.net/zxy_snow/article/details/7214222 Hibernate的映射类型 hibernate mysql映射类型 1.Hibern ...
最新文章
- 深度学习:垃圾自动分类
- #Sora#OpenStack基础库oslo.config试用总结
- Failed to load resource: net::ERR_INSECURE_RESPONSE 问题解决记录
- [知识复习] 结构体以及结构体指针
- TCP/IP 与OSI结构图
- 【STM32】FreeRTOS临界区
- linux堡垒机开源软件,Jumpserver开源堡垒机
- 数据开放平台的配置管理
- 华为鸿蒙系统p40,华为鸿蒙OS系统正式亮剑!华为P40再次确认:双打孔+麒麟990+鸿蒙OS...
- web.xml文件的作用
- java反射怎么获取结构体_java反射-使用反射获取类的所有信息
- 【C语言】qsort函数用法(转)
- MySQL读取配置文件的顺序、启动方式、启动原理
- 有了 Git 这个操作,我再也不怕代码混乱了!
- 获取自身进程结构和csrss.exe进程结构 explorer.exe进程结构
- [4G5G专题-113]:部署 - LTE同频组网、抗干扰技术、小区干扰协调ICIC、物理小区标识PCI规划
- Oracle SQL基础
- Linux NFS配置固定端口
- TCP归纳总结,一图流
- 在Deepin 15.11系统中遇到微信版本过低不能登录的解决方法