02.Hibernate配置文件之映射配置文件
映射文件,即xxx.hbm.xml的配置文件
<class>标签:用来将类与数据库表建立映射关系
属性:
name:类中的全路径
table:表名(如果类与表名一致,那么table属性可以省略)
catalog:数据库的名称(一般不需要写)
子标签:
<id>标签:用来将类中的属性和表中的主键建立映射,id就是用来配置主键的.
属性:
name:类中的属性名
column:表中的字段名(如果类中的属性名和表中的字段名相同,可以省略)
length:数据的长度。(如果数据库建立好了,可以不写;如果没创建好,生成表结构是,length最好指定)
主键的类型和生成策略在文章后面介绍
<property>标签:将类中的属性与表中的字段建立映射
属性:
name:类中的属性名
column:表中的字段名(如果类中的属性名和表中的字段名相同,可以省略)
length:数据的长度
type:数据类型(一般不需要写)
Hibernate的数据类型:type="string"
Java的数据类型:type="Java.lang.String"
数据库字段的数据类型:<column name="xxx" sql-type="varchar"/>
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE hibernate-mapping PUBLIC
- "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
- <hibernate-mapping>
- <!-- 配置类和表结构的映射 -->
- <class name="com.hibernateday1.domain.Customer" table="cst_customer" catalog="hibernate_day01">
- <!-- 配置id
- name:JavaBean的属性
- column:表结构的字段
- -->
- <id name="cust_id" column="cust_id">
- <!-- 主键的生成策略 -->
- <generator class="native"/>
- </id>
- <!-- 配置其他属性 -->
- <property name="cust_name">
- <column name="cust_name" sql-type="varchar"/>
- </property>
- <property name="cust_user_id" column="cust_user_id" />
- <property name="cust_create_id" column="cust_create_id" />
- <property name="cust_source" column="cust_source" type="string"/>
- <property name="cust_industry" column="cust_industry" type="java.lang.String"/>
- <property name="cust_level" column="cust_level"/>
- <property name="cust_linkman" column="cust_linkman"/>
- <property name="cust_phone" column="cust_phone"/>
- <property name="cust_mobile" column="cust_mobile"/>
- </class>
- </hibernate-mapping>
主键的类型
- 自然主键:对象本身的一个属性作为主键。
- 代理主键:为对象单独创建一个字段,最为主键。(开发中推荐的使用方式)
主键的生成策略
- 1.increment :适用于short,int,long作为主键
不是使用的数据库自动增长机制,Hibernate提供的一种增长机制
当前数据库最大值+1作为新纪录的主键
问题:不能再并发访问个集群情况下使用
- 2.indentity:适用于short,int,long作为主键,但是必须使用在有自动增长的数据库中,采用的是数据库底层的增长机制
底层使用的是数据库的增长机制(auto_increment),想Oracle数据库没有自动增长机制
- 3.sequence:适用于short,int,long作为主键,底层使用的是序列的增长方式
Oracle实现自动增长,需要使用序列
- 4.uuid:☆☆☆☆☆适用于char,varchar类型作为主键
使用随机的字符串作为主键
- 5.native:☆☆☆☆☆本地策略,根据底层数据库的不同,自动选择适合该数据库的生成策略(short,int,long)
MySQL:indentity
Oracle:sequence
- 6.assigned:主键生成不要Hibernate管理,必须手动设置主键
02.Hibernate配置文件之映射配置文件的更多相关文章
- Hibernate主配置文件、映射配置文件以及复合主键查询
Hibernate.cfg.xml主配置文件 主配置文件中主要配置:数据库连接信息.其他参数.映射信息! 常用配置查看源码: hibernate-distribution-3.6.0.Final\pr ...
- Hibernate学习笔记--映射配置文件详解
参考资料: http://blog.163.com/hzd_love/blog/static/13199988120108265317988/ http://www.cnblogs.com/often ...
- Hibernate第三篇【主配置文件、映射文件、复合主键映射】
前言 目前已经学了如何搭建Hibernate的开发环境,以及Hibernate对应的API了-在快速入门还没讲解的就是配置文件是怎么配置的.因此,本博文主要讲解主配置文件以及映射配置文件.. 主配置文 ...
- Mybatis基础:Mybatis映射配置文件,Mybatis核心配置文件,Mybatis传统方式开发
一.Mybatis快速入门 1.1 框架介绍 框架是一款半成品软件,我们可以基于这个半成品软件继续开发,来完成我们个性化的需求! 框架:大工具,我们利用工具,可以快速开发项目 (mybatis也是一个 ...
- Hibernate配置文件和映射元素解释
象关系的映射是用一个XML文档来说明的.映射文档可以使用工具来生成,如XDoclet,Middlegen和AndroMDA等.下面从一个映射的例子开始讲解映射元素. AD:干货来了,不要等!WOT20 ...
- Hibernate框架 主配置文件 Hibernate.cfg.xml 映射配置 说明
1 主配置文件 Hibernate.cfg.xml 主配置文件中主要配置:数据库连接信息.其他参数.映射信息! 常用配置查看源码: hibernate-distribution-3.6.0.Final ...
- Hibernate(三)结构-配置文件-实体映射及配置文件
一.体系结构 SessionFactory:属于单一数据库的编译过的映射文件的一个线程安全的,不可变的缓存快照.Session的工厂.有可能持有一个可选的数据缓存可以进程级别或者群级别保存可以在事务中 ...
- Eclipse使用xdoclet1.2.3 生成hibernate配置文件和映射文件
用ant和xdoclet生成hibernate配置文件可以为我们省去很多配置的操作,废话不多说,直接给栗子: 测试环境: eclipse:Eclipse Java EE IDE for Web Dev ...
- Hibernate配置文件中映射元素详解
对象标识符号 在关系数据库表中,主键(Primary Key)用来识别记录,并保证每条记录的唯一性.在Java语言中,通过比较两个变量所引用对象的内存地址是否相同,或者比较两个变量引用的对象值是否相同 ...
随机推荐
- mui--使用mui中的图文表格组件时出现一条横线的解决方法
最近做的微信公众号点击链接跳转到H5页面,该H5页面使用mui做的,遇到的商品列表页出现一个横线的问题, 这个是修改前的图片 解决方法: <style type="text/css&q ...
- leetcode-157周赛-5216-统计元音字母序列的数目
题目描述: 方法:倒推 class Solution(object): def countVowelPermutation(self, n): MOD = 10 ** 9 + 7 a=e=i=o=u= ...
- (转载)js引擎的执行过程(一)
概述 js是一种非常灵活的语言,理解js引擎的执行过程对我们学习javascript非常重要,但是网上讲解js引擎的文章也大多是浅尝辄止或者只局部分析,例如只分析事件循环(Event Loop)或者变 ...
- Java基本语法.part02
变量 变量的概念: 内存中的一个存储区域 该区域有自己的名称(变量名)和类型(数据类型) Java中每个变量必须先声明,后使用 该区域的数据可以在同一类型范围内不断变化 使用变量注意: 变量的作用域: ...
- 大数据之hadoop小文件存档
hadoop小文件存档1.HDFS存档小文件弊端 每个文件均按块存储,每个块的元数据存储在NameNode的内存中,因此HDFS存储小文件会非常低效.因为大量的小文件会耗尽NameNode中的大部分内 ...
- (转)JNI入门教程之HelloWorld篇 .
转: http://blog.csdn.net/mingjava/article/details/180946 本文讲述如何使用JNI技术实现HelloWorld,目的是让读者熟悉JNI的机制并编写第 ...
- HDU-1852-Beijing 2008-一个神奇的公式求逆元
As we all know, the next Olympic Games will be held in Beijing in 2008. So the year 2008 seems a lit ...
- vue+el-menu+vue-router实现动态导航条
导航栏组件template <template> <div class="sidebar"> <el-menu unique-opened :defa ...
- <Python基础>字典的基本操作
''' 小知识 1.字典的键只能是不可变数据类型:int 元组 bool str(可哈希) 字典查找数据会使用二分查找,会先用哈希表将键转化为数字然后进行查找 ''' s = { "name ...
- java关于lombok(包括父类参数)
java关于lombok对bean对象进行自动设置 使用说明 使用方式 注释类型 @NonNull @Data(常用) @NoArgsConstructor(常用)/@RequiredArgsCons ...