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 ...
随机推荐
- 铁乐学python_day04-作业
1,写代码,有如下列表,按照要求实现每一个功能 li = ['alex', 'wusir', 'eric', 'rain', 'alex'] 计算列表的长度并输出 print(len(li)) 答:结 ...
- Chrome新发现
昨晚写代码的时候惊喜的发现Chrome中能直接使用一些ES6的语法: let, const, 箭头函数等已经能直接使用. 酷酷的. 另外我的Chrome版本还是比较旧的,并不需要最新版本.
- 浅析Java CompletionService
JDK的CompletionService提供了一种将生产新的异步任务与使用已完毕任务的结果分离开来的服务.生产者 submit 运行的任务.使用者 take 已完毕的任务,并依照完毕这些任务的顺序处 ...
- myFocus 焦点图/轮播插件
最近产品突然就来个需求,要加轮播图,而且是立马要上线,于是乎发现了一个超级简便好用的轮播图插件myFocus,而且myFocus提供很多种风格,可以选择. 这里是使用说明 http://www.chh ...
- virtualbox+vagrant学习-2(command cli)-19-vagrant box命令
Status 格式: vagrant status [name|id] options只有 -h, --help 这将告诉你vagrant正在管理的机器的状态. 很容易就会忘记你的vagrant机器是 ...
- php官网下载的chm手册,源码字号太小的问题解决
首先,到官方网站上下载chm格式的文档,地址如下: http://php.net/downloads.php 如图,点击荧光笔标出链接 然后就可以看到各种语言版本的文档手册,可以选择中文版,并带有笔记 ...
- 论mysql主从复制里面的那些坑
1.找好配置文件,修改对的配置文件,有的时候会有多个配置文件,要搞清楚加载的哪个配置文件. 2.主库备份钱的操作除了设置 只读状态外,还要设置全局只读=1. 3.mysqldump备份sql很方便,恢 ...
- BZOJ2194: 快速傅立叶之二(NTT,卷积)
Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 1776 Solved: 1055[Submit][Status][Discuss] Descript ...
- Yii2 的安装及简单使用
前段时间第一次使用Yii2框架,碰到了一些问题,这里记录一下. Yii2安装:通过composer安装 1.首先要安装composer,我在另外一篇博客中介绍了如何在Windows下安装compose ...
- php使用urlencode对中文编码而引出的问题:urlencode和rawurlencode的区别
事件背景: 之前做h5小游戏,需要后端输出用户的相关信息给前端,输出的内容有:用户id,用户昵称等字段,使用get方式传参.后端使用PHP语言对中文昵称进行格式化编码,使用的是常用的urlencode ...