Hibernate 随记(数据库映射流程)
<session-factory>
<property name="hibernate.connection.username">root</...>
<property name="hibernate.connection.password">123</...>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</...>
<property name="hibernate.connection.url">jdbc:mysql://loaclhost:3306/TABLE?useUnicode=true&characterEncoding=utf-8</...>
<property name="hibernate.dialect">org.hibernate.dialtct.MySQLDialect</...> <property name="show_sql">true</...>
<property name="format_sql">true</...>
<property name="hbm2ddl.auto">assigned</...>
</session-factory>
<hibernate-mapping>
<class name="com.entity.Grade" table="GRADES”>
<id name="gid" column="SID" type="java.lang.Integer">
<generator class="increment"></generator>
</id>
<property name="gname" type="java.lang.String">
<column name="GNAME" length="20"></column>
</property>
<property name="amount" type="java.lang.Integer">
<column name="AMOUNT"></column>
</property>
<!-- 一对多需配置set -->
<set name="student"(Grade中属性,实体类)table="STUDENTS">
<key column="gid"></key>
<one-to-many class="com.entity.Student"/>
</set>
</class>
</hibernate-mapping>
<many-to-one name="grade"对应属性 class=”com.entity.Grade" column="grade">
</many-to-one>
<session-factory>
.......... <mapping resource="src/com/entity/Grade.hbm.xml"/>
<mapping resource="src/com.entity/Student.hbm.xml"/>
</session-factory>
- 利用configuration创建sessionFactory对象;
- 通过sessionFactory创建session对象;
- 通过sessionFactory获取session(openSession方法或getCurrentSession方法);
- 通过session开启transaction事务(beginTransaction方法);
- 操作数据库:sesison.save()/get(Student.class,id)/load()/delete();
- 提交事务:transactoin.commit();
- 关闭session;
Hibernate5.2的session创建:
.....
ssr = new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml").build();
sessionFactory = new MetadataSources(ssr).buildMetadata().buildSessionFactory();
session = sessionFactory.openSession();
......
操作过程中基本摆脱数据库语句,只是对持久化类操作后进行事务的提交。各版本session创建方法待补充
Hibernate 随记(数据库映射流程)的更多相关文章
- Eclipse从数据库逆向生成Hibernate实体类和映射文件(Eclipse插件系列之HibernateTools)
♣下载安装Eclipse插件(HibernateTools) ♣Eclipse连接数据库(Mysql5.7) ♣新建hibernate.properties和hibernate.cfg.xml文件 ♣ ...
- [转载]Hibernate如何提升数据库查询的性能
目录(?)[-] 数据库查询性能的提升也是涉及到开发中的各个阶段在开发中选用正确的查询方法无疑是最基础也最简单的 SQL语句的优化 使用正确的查询方法 使用正确的抓取策略 Hibernate的性能优化 ...
- Hibernate连接mysql数据库并自动创建表
天才第一步,雀氏纸尿裤,Hibernate第一步,连接数据库. Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个 ...
- Hibernate入门3.配置映射文件深入
Hibernate入门3.配置映射文件深入 2013.11.27 前言: 之前的两节是在Java项目中如何使用hibernate,并且通过一个简单地项目实践,期间有很多的错误,一般都是因为配置包的问题 ...
- Hibernate联合主键映射
1.联合主键的映射规则 1) 类中的每个主键属性都对应到数据表中的每个主键列. Hibernate要求具有联合主键的实体类实现Serializable接口,并且重写hashCode与equals方法, ...
- Hibernate一对一双向关联映射
关键原因在于对象模型具有方向性: 单向:一端只能加载另一端,不能反过来. 双向:两端都可以加载另一端. 问题来了:如何我们想从身份证端(IdCard)加载人(Person),怎么办呢? 下面我们开始介 ...
- Hibernate之1-N关联映射
一.Hibernate之1-N关联映射 1. 哪边是 1 , 哪边是多 ? 须要从业务的角度来说明.比如,Employee 和 Department 之间就是 n-1 的关联关系,Order ...
- zTree市县实现三个梯级数据库映射
zTree市县实现三个梯级数据库映射 Province.hbm.xml: <?xml version="1.0" encoding="UTF-8"? &g ...
- 快捷配置Hibernate实现对数据库的配置(构建通道)
在基于MVC设计模式的JAVA WEB应用中,Hibernate可以作为模型层/数据访问层.它通过配置文件(hibernate.properties或hibernate.cfg.xml)和映射文件(* ...
随机推荐
- php本地及远程文件包含漏洞
在php程序中包含有file inclusion的时候,php要开启一下两个功能: allow_url_fopen onallow_url_include on 但是开启这两个功能之后伴随的是url漏 ...
- HDU 4951 Multiplication table(2014 Multi-University Training Contest 8)
思路 如果进制为p 那么当x<p时 (p-1)*(p-x)=(p-(x+1)) *p +x 因为x<p 所以没有进位 所以高位上的数字为 p-(x+1). 根 ...
- Codeforces Round #370 (Div. 2) E. Memory and Casinos (数学&&概率&&线段树)
题目链接: http://codeforces.com/contest/712/problem/E 题目大意: 一条直线上有n格,在第i格有pi的可能性向右走一格,1-pi的可能性向左走一格,有2中操 ...
- (DFS、bitset)AOJ-0525 Osenbei
题目地址 简要题意: 给出n行m列的0.1矩阵,每次操作可以将任意一行或一列反转,即这一行或一列中0变为1,1变为0.问通过任意多次这样的变换,最多可以使矩阵中有多少个1. 思路分析: 行数比较小,先 ...
- 检索 COM 类工厂中 CLSID 为 {820280E0-8ADA-4582-A1D9-960A83CE8BB5} 的组件失败,原因是出现以下错误: 80040154 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。
检索 COM 类工厂中 CLSID 为 {820280E0-8ADA-4582-A1D9-960A83CE8BB5} 的组件失败,原因是出现以下错误: 80040154 没有注册类 (异常来自 HRE ...
- 《Pro Express.js》学习笔记——Express服务启动常规七步
Express服务启动常规七步 1. 引用模块 var express=require('express'), compression=require('compression'), bo ...
- ASP.NET中Onclick和OnserverClick事件的区别
对于服务器按钮控件(即<asp:Button>类型的按钮): 服务器响应事件:OnClick 客户端响应属性:OnClientClick 对于html按钮控件(即<input typ ...
- Python的入门要点
一.输入 1.键盘输入 在python 2.7中,不用input(),而用 raw_input()读入一行键盘输入,并转化为字符串. s = map(int ,raw_input().split()) ...
- android base64 和 aes 加密 解密
package pioneerbarcode.ccw.com.encryptanddecode;import android.os.Bundle;import android.support.v7.a ...
- python中if __name__ == '__main__': 的解析
当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用. 模块是对象,并且所有的模块都有一个内置属性 __name__.一 ...