一、映射文件

Hibernate在实现ORM功能的时候主要用到的文件有:
    1、 映射类(*.Java)

描述数据库表的结构,表的字段映射为类的属性,表的记录映射为类的对象。
  
    2、映射文件(*.hbm.xml)

指定数据库表和映射类之间的关系。

包括映射类和数据库表、表字段和类属性类型以及表字段和类属性名称的对应关系。
 
    3、 hibernate核心配置文件(*.properties/*.cfg.xml)

指定hibernate的一些核心配置,包含与数据库连接时需要的连接信息。

如:连接数据库、登录数据库的用户名、登录密码以及连接字符串、映射文件的地址。

4、分类

二、XML方式配置映射

classpath:com/test目录下的User.hbm.xml

[html] view plaincopy print?
  1. <?xml version="1.0"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC
  3. "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  4. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  5. <hibernate-mapping>
  6. <class name="com.test.User" >
  7. <id name="id">
  8. <!-- 算法的核心思想是结合机器的网卡、当地时间、一个随机数来生成id -->
  9. <generator class="uuid2"></generator>
  10. </id>
  11. <property name="name"></property>
  12. <property name="password"></property>
  13. </class>
  14. </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,采用注解完成映射

[java] view plaincopy print?
  1. package com.test;
  2. import javax.persistence.Column;
  3. import javax.persistence.Entity;
  4. import javax.persistence.GeneratedValue;
  5. import javax.persistence.GenericGenerator;
  6. import javax.persistence.Id;
  7. @Entity //不写Table默认为user,@Table(name="user")
  8. public class User {
  9. @Id //主键
  10. @GenericGenerator(name = "generator", strategy = "uuid2")
        @GeneratedValue(generator = "generator")
  11. private String id;
  12. @Column(name="name") //字段为name,可以不注解@Column
  13. private String name;
  14. private String password;
  15. public int getId() {
  16. return id;
  17. }
  18. public void setId(int id) {
  19. this.id = id;
  20. }
  21. public String getName() {
  22. return name;
  23. }
  24. public void setName(String name) {
  25. this.name = name;
  26. }
  27. public String getPassword() {
  28. return password;
  29. }
  30. public void setPassword(String password) {
  31. this.password = password;
  32. }
  33. }

四、hibernate.cfg.xml文件配置

1、将User加入到hibernate.cfg.xml配置文件

[html] view plaincopy print?
  1. <?xml version="1.0"?>
  2. <!DOCTYPE hibernate-configuration PUBLIC
  3. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  4. "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
  5. <hibernate-configuration>
  6. <session-factory>
  7. <!-- 驱动 -->
  8. <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
  9. <!-- 数据库URL -->
  10. <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_db</property>
  11. <!-- 数据库用户名 -->
  12. <property name="hibernate.connection.username">root</property>
  13. <!-- 数据库密码 -->
  14. <property name="hibernate.connection.password">admin</property>
  15. <!-- mysql的方言 -->
  16. <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
  17. <!-- 映射文件配置 -->
  18. <!--  <mapping resource="com/test/User.hbm.xml"/>  -->
  19. <!-- 由原来的映射文件,改成实体类 -->
  20. <mapping class="com.test.User"/>
  21. </session-factory>
  22. </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之映射相关推荐

  1. Hibernate关联关系映射

    1.  Hibernate关联关系映射 1.1.  one to one <class name="Person"> <id name="id" ...

  2. Hibernate关联关系映射实例速查

    Hibernate关联关系映射实例速查 Hibernate的映射关系很多,也比较复杂,也很容易忘记.这个基本上占据了Hibernate学习的七成时间.熟悉这些映射模型,需要大量的实践才能掌握.下面是我 ...

  3. Hibernate 关联映射 之 多对多 关联(二) 之拆分

    1.由问题引出一个多对多拆分成两个多对一 问题:Hibernate 关联映射 之 多对多 关联(一)中中间表只是一个存放用户和角色的表,并无其他作用,如果客户有其他的需求,该表就无法扩展. 2.问题解 ...

  4. 【Hibernate】映射关系总结

    在hibernate中,由于是对对象进行操作,但是要实现表与表之间的关系,是怎么样实现的呢? 一.Hibernate的映射 Hibernate是对对象进行操作,Hibernate的映射是描述数据库表的 ...

  5. hibernate 高级映射 --张国亮总结第一季

    在做持久化类的时候的规定: 1).有一个默认的构造方法: 2).所有的属性都有setter和getter方法 3).有一个对象标识符Oid; 4).如果有集合属性,则必须定义成接口类型:List.Se ...

  6. 用Hibernate Tools生成Hibernate Mapping映射文件

    用Hibernate Tools生成Hibernate Mapping映射文件 Eclipse中要集成安装Hibernate Tools组件 如果没有,请查看:Eclipse juno 中安装 JBo ...

  7. Hibernate之深入Hibernate的映射文件

    这周周末 要把hibernate的映射文件搞定 .. 1.映射文件的主结构 主要结构  :根元素为<hibernate-mapping ></hibernate-mapping> ...

  8. hibernate mysql 映射_hibernate与mysql映射类型对应表与mysql导入导出

    http://blog.sina.com.cn/s/blog_5f240fc40100etlt.html 一.记录下hibernate mysql映射类型对应表: 1.常规Hibernate 映射 i ...

  9. Oracle primary,unique,foreign 区别,Hibernate 关联映射

    Oracle primary,unique,foreign 区别 转:http://www.cnblogs.com/henw/archive/2012/08/15/2639510.html NOT N ...

  10. mysql映射超_Hibernate的映射类型 hibernate mysql映射类型

    (转)http://blog.csdn.net/zxy_snow/article/details/7214222 Hibernate的映射类型 hibernate mysql映射类型 1.Hibern ...

最新文章

  1. 深度学习:垃圾自动分类
  2. #Sora#OpenStack基础库oslo.config试用总结
  3. Failed to load resource: net::ERR_INSECURE_RESPONSE 问题解决记录
  4. [知识复习] 结构体以及结构体指针
  5. TCP/IP 与OSI结构图
  6. 【STM32】FreeRTOS临界区
  7. linux堡垒机开源软件,Jumpserver开源堡垒机
  8. 数据开放平台的配置管理
  9. 华为鸿蒙系统p40,华为鸿蒙OS系统正式亮剑!华为P40再次确认:双打孔+麒麟990+鸿蒙OS...
  10. web.xml文件的作用
  11. java反射怎么获取结构体_java反射-使用反射获取类的所有信息
  12. 【C语言】qsort函数用法(转)
  13. MySQL读取配置文件的顺序、启动方式、启动原理
  14. 有了 Git 这个操作,我再也不怕代码混乱了!
  15. 获取自身进程结构和csrss.exe进程结构 explorer.exe进程结构
  16. [4G5G专题-113]:部署 - LTE同频组网、抗干扰技术、小区干扰协调ICIC、物理小区标识PCI规划
  17. Oracle SQL基础
  18. Linux NFS配置固定端口
  19. TCP归纳总结,一图流
  20. 在Deepin 15.11系统中遇到微信版本过低不能登录的解决方法

热门文章

  1. Java基础知识——Sting、StringBuild、StringBuffer的区别
  2. 归并排序算法 C++
  3. solverstate的使用
  4. 深入理解 JVM Class文件格式(十)
  5. Absolute Math (HDU 6868)
  6. #3601. 一个人的数论
  7. Orac and LCM #641(div2) c题--求质因数次小指数
  8. P2467 [SDOI2010]地精部落
  9. ICPC2019南昌区域赛
  10. 黑客(续) (压位高精+状压dp)