Hibernate之映射

一、映射文件

 

 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?在CODE上查看代码片派生到我的代码片
  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?在CODE上查看代码片派生到我的代码片
  1. package com.test;  
  2.   
  3. import javax.persistence.Column;  
  4. import javax.persistence.Entity;  
  5. import javax.persistence.GeneratedValue;  
  6. import javax.persistence.GenericGenerator;  
  7. import javax.persistence.Id;  

  8.   
  9. @Entity //不写Table默认为user,@Table(name="user")  
  10. public class User {  
  11.   
  12.     @Id //主键  
  13.     @GenericGenerator(name = "generator", strategy = "uuid2")
        @GeneratedValue(generator = "generator")
  14.     private String id;  
  15.     @Column(name="name"//字段为name,可以不注解@Column  
  16.     private String name;  
  17.     private String password;  

  18.     public int getId() {  
  19.         return id;  
  20.     }  
  21.     public void setId(int id) {  
  22.         this.id = id;  
  23.     }  
  24.     
  25.     public String getName() {  
  26.         return name;  
  27.     }  
  28.     public void setName(String name) {  
  29.         this.name = name;  
  30.     }  
  31.     public String getPassword() {  
  32.         return password;  
  33.     }  
  34.     public void setPassword(String password) {  
  35.         this.password = password;  
  36.     }  
  37.   
  38.   
  39. }  

 

 

 

四、hibernate.cfg.xml文件配置

 

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

[html] view plaincopy
print?在CODE上查看代码片派生到我的代码片
  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.   
  6. <hibernate-configuration>  
  7.     <session-factory>  
  8.         <!-- 驱动 -->  
  9.         <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>  
  10.         <!-- 数据库URL -->  
  11.         <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_db</property>  
  12.         <!-- 数据库用户名 -->  
  13.         <property name="hibernate.connection.username">root</property>  
  14.         <!-- 数据库密码 -->  
  15.         <property name="hibernate.connection.password">admin</property>  
  16.         <!-- mysql的方言 -->  
  17.         <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>  
  18.           
  19.         <!-- 映射文件配置 -->  
  20.         <!--  <mapping resource="com/test/User.hbm.xml"/>  -->    
  21.           
  22.         <!-- 由原来的映射文件,改成实体类 -->  
  23.         <mapping class="com.test.User"/>  
  24.           
  25.     </session-factory>  
  26. </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);


 





 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/331628.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java流与文件——ZIP文档

【0】README 0.1&#xff09; 本文描述转自 core java volume 2&#xff0c; 旨在理解 java流与文件——ZIP文档 的相关知识&#xff1b; 0.2&#xff09; for source code, please visit https://github.com/pacosonTang/core-java-volume/blob/master/coreJavaAdvanced/cha…

单片机与gsm通信c语言,gsm模块如何与单片机通信?

51单片机与GSM模块实现通信1、检测串口线的好坏1)将串口线插在电脑上&#xff0c;用短路子短接串口的2脚和3脚2)打开串口调试助手3)点击自动发送&#xff0c;在自动发送的窗口中随便发个数据&#xff0c;看看能不能接收到若能接收到自己发的数据表示串口线是正常的&#xff0c;…

aws terraform_在AWS第1部分中使用Terraform自动缩放组:基本步骤

aws terraform因此&#xff0c;您想使用Terraform在AWS上创建一个自动缩放组。 以下是达到此目的的最少步骤。 在编写实际代码之前&#xff0c;应指定aws terraform提供程序以及provider.tf文件上的区域。 provider "aws" { version "~> 2.0" region …

java流与文件——java生成解压缩文件(夹)

【0】README 0.1&#xff09; 本文描述转自 http://blog.csdn.net/chenssy/article/details/9622171 &#xff0c; 旨在理解 java流与文件——java生成解压缩文件&#xff08;夹&#xff09; 的相关知识&#xff1b; 0.2&#xff09; for my diy source code, please visit h…

Java的系统Property

一、java 系统Properties修改 (1)System.getProperties()可以确定当前的系统属性,返回值是一个Properties; (2)System.load(String filename)加载文件中的属性Properties等同于&#xff1a;System.getProperties().load(String filename) (3)System.setProperties(Properties p…

android 发布最新系统更新包,安卓升级包(安卓补丁包更新)

安卓升级包(安卓补丁包更新)2021-02-08 15:39“固件升级”文石BOOX Android 6.0及以上型号都支持升级最新系统&#xff01;好消息&#xff01;截至今天&#xff0c;您在BOOX安卓6.0系统以上的所有阅读器型号&#xff0c;都支持升级到最新BOOX OS 2.3.1系统了&#xff01;?的设…

apache.camel_Apache Camel 3.1 –更多骆驼核心优化(第3部分)

apache.camel我以前曾在博客中介绍过我们在下一个Camel 3.1版本中所做的优化 博客第1部分 博客第2部分 今天&#xff0c;我想简要介绍一下我们已经完成的最新开发&#xff0c;因为我们准备在本周末或下半年准备好构建和发布Camel 3.1。 从第2部分开始&#xff0c;我们设法在…

AVL树的单双旋转解析

【0】README 0.0&#xff09; 本文部分idea 转自&#xff1a;http://blog.csdn.net/collonn/article/details/20128205 0.1&#xff09; 本文专注于 解析 AVL 树的 单旋转&#xff08;左左单旋转和右右单旋转&#xff09; 和 双旋转&#xff08;左右双旋转和右左单旋转&#…

List转数组toArray方法

一、List.toArray方法 List提供了一个将List转为数组的一个非常方便的方法toArray。toArray有两个重载的方法&#xff1a; Object[]toArray() 返回按适当顺序包含列表中的所有元素的数组&#xff08;从第一个元素到最后一个元素&#xff09;。<T> T[]toArray(T…

android定位会出现的问题,android – 使用GPS_PROVIDER进行定位时出现问题

使用&#xff1a;locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,MINIMUM_TIME_BETWEEN_UPDATES,MINIMUM_DISTANCE_CHANGE_FOR_UPDATES, locationListener);对于locationListener,您可以使用&#xff1a;LocationListener locationListener new Locati…

自底向上伸展树(之字形旋转+一字形旋转)

【0】README 0.1&#xff09; 本文总结于 数据结构与算法分析&#xff0c;核心剖析路线为原创&#xff0c; 旨在理清 自底向上伸展树&#xff08;之字形旋转一字形旋转&#xff09; 的基本思路&#xff1b; 0.2&#xff09; 自底向上伸展树 是基于 AVL树&#xff0c;for deta…

apache.camel_Apache Camel 3.1 –更多骆驼核心优化(第2部分)

apache.camel我以前曾在博客中介绍我们在下一个Camel 3.1版本&#xff08;第1部分&#xff09;中所做的优化 。 今天&#xff0c;我想发布大约4周后的状态更新。 我们集中在三个方面优化骆驼核心&#xff1a; 不必要的对象分配 不必要的方法调用 提高绩效 换句话说&#…

Util包中Arrays

java.util 类 Arrays java.lang.Object -java.util.Arrayspublic class Arrays extends Object此类包含用来操作数组&#xff08;比如排序和搜索&#xff09;的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂。 除非特别注明&#xff0c;否则如果指定数组引用为 …

Android的sqlite使用外部,Android 使用外部已经建立好的sqlite数据库

最近项目需要通过电话号码查询归属地&#xff0c;决定直接在本地sqlite的数据库进行查询&#xff0c;没必要去访问网络(虽然最后还是决定还是将数据库放在服务器上)一 首先先将外部的sqlite数据库放入assets文件夹下面注意&#xff1a;必须是sqlite数据库(XXX.db)&#xff0c;如…

java流与文件——操作文件

【0】README 0.1&#xff09; 本文描述转自 core java volume 2&#xff0c; 旨在理解 java流与文件——操作文件 的相关知识&#xff1b; 0.2&#xff09; for source code, please visit https://github.com/pacosonTang/core-java-volume/blob/master/coreJavaAdvanced/ch…

阅读副本和Spring Data第2部分:配置基础项目

在上一篇文章中&#xff0c;我们使用相同的数据设置了多个PostgreSQL实例。 下一步将是使用这两个服务器来配置spring项目。 如前所述&#xff0c;由于我们使用完全相同的数据库&#xff0c;因此我们将使用Spring Boot JPA帖子中的一些代码。 这将是我们的gradle构建文件 pl…

java生成UUID通用唯一识别码

一、UUID概述UUID含义是通用唯一识别码 (Universally Unique Identifier)&#xff0c;这是一个软件建构的标准&#xff0c;也是被开源软件基金会 (Open Software Foundation, OSF) 的组织在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部份。 UUID 的目…

android 项目部署,Android发布项目到JCenter

JCenter是什么大家应该都用过各种各样的Github上的第三方开源组件。类似这种效果的compile wang.yuchao.demoforjcenterlibrary:DemoForJCenterLibraryModel:1.2.5我们会比较好奇Android Studio 是从哪里得到这个类库的&#xff1f;Android Studio是从build.gradle里面定义的Ma…

java流与文件——对象流和序列化

【0】README 0.1&#xff09; 本文描述转自 core java volume 2&#xff0c; 旨在理解 java流与文件——对象流和序列化 的相关知识&#xff1b; 0.2&#xff09; for source code , please visit https://github.com/pacosonTang/core-java-volume/blob/master/coreJavaAdva…

maven 版本号插件_测试Maven版本插件自动递增版本号

maven 版本号插件抽象 Maven版本插件是一个非常强大的工具&#xff0c;我在很大程度上依赖于它来协调软件版本。 通常&#xff0c;软件发行版本号遵循简单的1.0.0.0-SNAPSHOT格式。 但是最近我需要在版本号中添加一个限定符&#xff0c;例如1.0-beta-SNAPSHOT或1.0.0-fix-bug-d…