hibernate常用配置
核心配置
核心配置有两种方式进行配置
1:属性文件的配置:hibernate.properties
格式:key=value
hibernate.connection.driver_class=com.mysql.jdbc.Driver
注意:没有办法在核心配置文件中加载映射文件.(必须手动编码的方式进行加载.)
2:XML格式文件配置:hibernate.cfg.xml
格式:<property name="hibernate.connection.username">root</property>
核心配置中
1.必须的配置
连接数据库4个基本参数:
hibernate.connection.driver_class 连接数据库驱动程序
hibernate.connection.url 连接数据库URL
hibernate.connection.username 数据库用户名
hibernate.connection.password 数据库密码
Hibernate的方言:
hibernate.dialect 操作数据库方言
2.可选的配置
hibernate.show_sql true 在控制台上输出SQL语句
hibernate.format_sql true 格式化控制台输出的SQL语句
hibernate.connection.autocommit true 事务是否自动提交
hibernate.hbm2ddl.auto create/create-drop/update/validate
create :每次执行的时候,创建一个新的表.(如果以前有该表,将该表删除重新创建.) 一般测试的时候的使用.
create-drop :每次执行的时候,创建一个新的表,程序执行结束后将这个表,删除掉了. 一般测试的时候使用.
update :如果数据库中没有表,创建一个新的表,如果有了,直接使用这个表.可以更新表的结构.
validate :会使用原有的表.完成校验.校验映射文件与表中配置的字段是否一致.不一致会报错.
3.映射的配置
在XML格式配置文件中加载映射文件:
<mapping resource="cn/itcast/hibernate3/demo1/Customer.hbm.xml" />
映射文件的配置
ORM:对象关系映射(Java对象与数据库表的映射)
配置类与表的映射
name:类的全路径
table:表的名称(可以省略的.若省略使用类的名称作为表名.)
<class name="cn.yzu.hibernate3.demo1.Order" table=”orders”>
配置普通属性与字段映射
<property name="name" column="name" type="string" length=”20”/>
type:三种写法
Java类型 :java.lang.String
Hibernate类型 :string
SQL类型 :不能直接使用type属性,需要子标签<column>
<column name="name" sql-type="varchar(20)"/>
配置唯一标识与主键映射
一个表中只有一个主键的形式:<id name=”id” column=”id”>
主键:自然主键和代理主键
自然主键:
创建一个人员表.人员表中某条记录唯一确定.如人都有身份证号.我们可以使用身份证号作为主键.(身份证号本身就是人员的一个属性.作为主键.)
代理主键:
创建一个人员表.人员表中某条记录唯一确定.但是没有使用身份证号作为主键,新建字段(用新建的字段作为主键.只是一个标识作用.)
尽量要Hibernate自己去维护主键,尽量使用代理主键,因为如果我们使用自然主键如身份证号,万一有一天自然主键要参与业务逻辑,比如身份证号要发生修改,那么会非常麻烦。
主键的生成策略:
increment :自动增长.适合 short int long...不是使用数据库的自动增长机制.使用Hibernate框架提供的自动增长方式.
插入数据时,先发送一条语句:select max(id) from 表; 在最大值的基础上+1再插入数据.(存在多线程的问题)在集群下不能使用
identity :自动增长.适合 short int long...采用数据库的自动增长机制.不适合于Oracle数据库
sequence :序列.适用于 short int long ... 应用在Oracle上
uuid :适用于字符串类型的主键.采用随机的字符串作为主键.
native :本地策略.底层数据库不同.自动选择适用identity 还是 sequence
assigned :Hibernate框架不维护主键,主键由程序自动生成.
foreign :主键的外来的.(应用在多表一对一的关系.)
一个表对应多个主键形式:(复合主键)---了解即可,用的很少:<composite-id></composite-id>,例如:
命名SQL(配置后,可在Java代码中通过直接获取配置的名字而获得数据库语句)
<query name="findAll">
from Customer
</query> <sql-query name="sqlFindAll">
select * from customer
</sql-query>
hibernate常用配置的更多相关文章
- hibernate学习笔记(3)hibernate常用配置以及session对象
更改hibernate.cfg.xml的内容,常用配置有: <!-- 把hibernate运行时的SQL语句显示到控制台 --> <property name="sho ...
- hibernate课程 初探单表映射2-2 hibernate常用配置
1 hibernate.cfg.xml常用配置: show_sql 控制台打印sql format_sql 控制台将sql排版 hbm2ddl.auto: create 删除表结构,重新建表并插值 u ...
- SSH(struts+spring+hibernate)常用配置整理
SSH(struts+spring+hibernate)常用配置整理 web.xml配置 <?xml version="1.0" encoding="UTF-8&q ...
- Hibernate 基础配置及常用功能(一)
本来是想等全部框架测试完以后再统一发布的,但是随着测试的一点点增加感觉把需要叙述的东西放在一起终将会是一场灾难.所以还是打算分成几章来描述,其中还包括一些有待解决的问题.短期很难腾出时间来仔细阅读Hi ...
- Hibernate常用配置文件详解
本文转载自:http://blog.csdn.net/csh624366188/article/details/7578939 初学hibernate的童鞋,刚开应该都有这种感觉,hibernate的 ...
- Hibernate常用接口
Hibernate的接口类型 在了解了Hibernate的基本配置,映射文件后,道路已经铺平了.我们继续往前走.接下来,我们应该做的是了解Hibernate常用的接口,对Hibernate的工作方式进 ...
- Hibernate框架--配置,映射,主键
SSH框架: Struts框架, 基于mvc模式的应用层框架技术! Hibernate, 基于持久层的框架(数据访问层使用)! Spring, 创建对象处理对象的依赖关系以及框架整合! Da ...
- struts2+hibernate+spring配置版框架搭建以及简单测试(方便脑补)
为了之后学习的日子里加深对框架的理解和使用,这里将搭建步奏简单写一下,目的主要是方便以后自己回来脑补: 1:File--->New--->Other--->Maven--->M ...
- Spring连接池的常用配置
1.连接池概述 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出.对数据库连接的管理能显著影响到整个 应用程序的伸缩性和健壮性,影响到程序的性能指标.数据库连接池正 ...
随机推荐
- 初识 MySQL 5.6 新特性、功能
背景: 之前介绍过 MySQL 5.5 新功能.参数,现在要用MySQL5.6,所以就学习和了解下MySQL5.6新的特性和功能,尽量避免踩坑.在后续的学习过程中文章也会不定时更新. 一:参数默认值的 ...
- codeforces 505A. Mr. Kitayuta's Gift 解题报告
题目链接:http://codeforces.com/problemset/problem/505/A 题目意思:给出一个长度不大于10的小写英文字符串 s,问是否能通过在字符串的某个位置插入一个字母 ...
- .NET微信公众号开发-4.0公众号消息处理
一.前言 微信公众平台的消息处理还是比较完善的,有最基本的文本消息,到图文消息,到图片消息,语音消息,视频消息,音乐消息其基本原理都是一样的,只不过所post的xml数据有所差别,在处理消息之前,我们 ...
- jquery this 与javascript的this
<div class="list"> <table> <thead> <tr> <th width="110&quo ...
- [Android Pro] Android 4.3 NotificationListenerService使用详解
reference to : http://blog.csdn.net/yihongyuelan/article/details/40977323 概况 Android在4.3的版本中(即API 18 ...
- 如何激活webstorm 11
以前使用webstorm 10,可以在网上搜个注册码进行激活.后来升级了webstorm 11,发现原来的注册码和注册机已经不能激活了.查询后,才知道WebStorm 11改变了注册方法,可以在Lic ...
- 线程变量ThreadLocal的使用
我们有时候会通过token进行多次查询(猪:token是redis中的key),比如: 一次是在登录拦截器中,一次是在controller的业务中查询,这样存在性能和资源的浪费问题!!! 那么如何将拦 ...
- XMPP框架下微信项目总结(1)环境配置
xmpp介绍 xmpp基于模块开发的 无须自己写请求 (登陆,注册,获取好友列表,添加/删除好友等) ------>简介 ------------------------- ----->工 ...
- JDK、Jmeter、Android环境变量配置
JDK环境变量 1.在系统变量里点击新建,变量名填写JAVA_HOME,变量值填写JDK的安装路径,在这里就填写"D:\Program Files\Java\jdk1.6.0_26" ...
- IDT5V49EE904资料学习
一.特性: 1.4个内部PLL 2.内部非易失EEPROM. 3.最快400k的I2C串行接口. 4.输入时钟范围:1M—200M. 5.输出时钟范围:4.9k—200M 6.输入晶振参数带有在线可编 ...