Object Relational Mapping框架之Hibernate
hibernate框架简介:
hibernate框架就是开发中在持久层中应用居多的ORM框架,它对JDBC做了轻量级的封装。
(百度介绍,感觉不错)

使用hibernate框架开发流程:
hibernate开发需求创建俩个配置文件,一个是映射文件,另一个hibernate的框架配置文件。
创建映射文件,该映射文件一般命名规则是(类名.hbm.xml)。
- class标签:建立java类和关系数据表的映射。
- name:类的全路径。
- table:数据库中被建立映射的表名称,如果类名和数据库名一致该属性可以省略。
- catalog:数据库名称。
- id标签:建立主键和java类中属性的映射。
- name:与表中的主键对应的类中的属性名称。
- column:表中的主键名。
- length:字段的长度。
- type:字段的数据类型。
- property标签:建立关系表中普通字段和java类中属性的映射。
- name:与表中除了主键对应的类中的属性名称。
- column:表中除了主键外的普通字段名称。
- length:字段的长度。
- type:字段的数据类型。
- not-null:非空。
- unique:唯一。
创建hibernate核心配置文件(2种:hibernate.properties----不能加载映射文件 hibernate.cfg.xml----结构清晰【通常使用这一种】)。
核心配置文件中的内容:
- 数据库连接的基本参数:
- hibernate的一些基本属性:
- 加载映射文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration>
<session-factory>
<!-- 数据库连接的配置: -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///hibernate_crm</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123</property> <!-- 配置C3P0连接池: -->
<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<!--在连接池中可用的数据库连接的最少数目 -->
<property name="c3p0.min_size">5</property>
<!--在连接池中所有数据库连接的最大数目 -->
<property name="c3p0.max_size">20</property>
<!--设定数据库连接的过期时间,以秒为单位,如果连接池中的某个数据库连接处于空闲状态的时间超过了timeout时间,就会从连接池中清除 -->
<property name="c3p0.timeout">120</property>
<!--每3000秒检查所有连接池中的空闲连接 以秒为单位-->
<property name="c3p0.idle_test_period">3000</property> <!--
配置数据库事务的隔离级别:
1、read uncommitted (1) : 脏读,可重复读,虚读三种情况都有可能发生。
2、read committed (2) : 避免脏读,可重复读和虚读有可能发生。
3、repeatable read (4) : 避免脏读和可重复读,但是虚读有可能发生。
4、serializable (8) : 以上出现的情况都能解决。
-->
<property name="hibernate.connection.isolation">4</property> <!-- hibernate中设置可以使用与当前线程绑定的session连接对象: -->
<property name="hibernate.current_session_context_class">thread</property> <!-- hibernate的相关属性配置: -->
<!-- 必须配置:mysql的方言配置 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 可选配置:显示sql、格式化sql、hbm2ddl等 -->
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property> <!-- 加载映射文件: -->
<mapping resource="com/itheima/domain/Customer.hbm.xml"/>
<mapping resource="com/itheima/domain/LinkMan.hbm.xml"/>
<mapping resource="com/itheima/domain/User.hbm.xml"/>
<mapping resource="com/itheima/domain/Role.hbm.xml"/> </session-factory>
</hibernate-configuration>
Object Relational Mapping框架之Hibernate的更多相关文章
- ORM(Object Relational Mapping)框架
ORM(Object Relational Mapping)框架 ORM(Object Relational Mapping)框架采用元数据来描述对象一关系映射细节,元数据一般采用XML格式,并且存放 ...
- Object/Relational Mapping 数学关系 反面向对象
[hibernate ORM 是对象关系映射框架 事实上的持久化存储引擎] http://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/ ...
- Django中ORM介绍和字段及字段参数 Object Relational Mapping(ORM)
Django中ORM介绍和字段及字段参数 Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简 ...
- Object Relational Mapping(ORM)
Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...
- 一:ORM关系对象映射(Object Relational Mapping,简称ORM)
狼来的日子里! 奋发博取 10)django-ORM(创建,字段类型,字段参数) 一:ORM关系对象映射(Object Relational Mapping,简称ORM) ORM分两种: DB fir ...
- Django中的Object Relational Mapping(ORM)
ORM 介绍 ORM 概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用 ...
- Django框架----Object Relational Mapping(ORM)
Django中的ORM Django项目使用MySQL数据库 1. 在Django项目的settings.py文件中,配置数据库连接信息: DATABASES = { "default&qu ...
- 对象-关系映射ORM(Object Relational Mapping)(转)
ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现 Hibernate在实现ORM功能的时候主要用到的文件有:映射类(*.java).映射文件(*.hbm.xml)和数据库配置文件 ...
- django关系对象映射(Object Relational Mapping,简称ORM)
Model 创建数据库,设计表结构和字段 django中遵循 Code Frist 的原则,即:根据代码中定义的类来自动生成数据库表 from django.db import models clas ...
随机推荐
- if 条件为假(不成立),对应的语句块不会执行. 然后往下走
if 的条件为真,则执行语句块. 如果条件不真,则执行后面的语句块, 即 : if False: print("卡卡卡") # 前面的if条件是False,提示"un ...
- ES(ElasticSearch)学习总结
基本概念 一个分布式多用户能力的全文搜索引擎,基于RESTful web接口. Elasticsearch和MongoDB/Redis/Memcache一样,是非关系型数据库.是一个接近实时的搜索平台 ...
- Python基础.md
数据结构 列表 访问 list1 = ['java','C','C++','Python'] In [10]: list1[1] Out[10]: 'C' In [11]: list1[-1] Out ...
- python第十四课--排序及自定义函数
1.排序 特点: 1).升序:从小到大 2).降序:从大到小 课堂实现选择排序:参看老郭选择排序.py文件 2.函数:(方法/method) 自定义函数: 概念:它表示一段作用范围(作用域),当中封装 ...
- Undefined function or method 'deploywhich' for input arguments of type 'char'
在进行matlab和java混合编程的时候.由matlab打包,把m文件转换为jar文件.供java调用.有时在Tomcat中调用此类jar类会出现如题或者以下的错误: ??? Error using ...
- BZOJ1135:[POI2009]Lyz(线段树,Hall定理)
Description 初始时滑冰俱乐部有1到n号的溜冰鞋各k双.已知x号脚的人可以穿x到x+d的溜冰鞋. 有m次操作,每次包含两个数ri,xi代表来了xi个ri号脚的人.xi为负,则代表走了这么多人 ...
- ## 20145203盖泽双 《Java程序设计》第二周学习总结
20145203盖泽双 <Java程序设计>第二周学习总结 教材学习内容总结 1.java可以分为基本类型和类类型,基本类型包括整数.字节.浮点数.字符与布尔. 整数:short(占两个字 ...
- transfer function
线性变化后,往往希望进行非线性变化,常用的非线性变化函数有Sigmoid,Tanh,ReLU.会发现,经过这三个函数变化后,Tensor的维度并不发生变化. tanh(双曲正切函数):
- 关于lora标配SPDT大功率射频开关
SPDT大功率的UltraCMOS ™DC - 3.0 GHz射频开关 PE4259的UltraCMOS ™射频开关被设计为覆盖广泛的,通过3000兆赫从近DC应用.这种反射 ...
- jenkins slave 挂载
http://blog.sina.com.cn/s/blog_13cc013b50102wiau.html