Hibernate是怎么工作的——Hibernate的工作流程
举个简单的样例说明:
1.Base.java
package cn.flymouse.hibernate; import java.util.Date; import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import cn.flymouse.hibernate.domain.User; public class Base { public static void main(String[] args) {
//读取并解析配置文档hibernate.cfg.xml文件
Configuration cfg = new Configuration().configure();
//读取并解析映射文件,以Configuration创建SessionFactory
SessionFactory sf = cfg.buidSessionFactory();
//创建session
Session session = sf.openSession();
//开启事务
Transaction tx = session.beginTransaction();
//持久化操作
User user = new User();
user.setBirthday(new Date());
user.setName("name");
session.save(user);
//提交事务
tx.commit();
//关闭Session
session.close();
//关闭SessionFactory
sf.close();
}
}
2.User.java
package cn.flymouse.hibernate.domain; import java.util.Date; public class User {
private int id;
private String name;
private Date birthday; public int getId() {
return id;
}
pubilc String getName(){
return name;
}
public Date getBirthday() {
return birthday;
} public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}
3.User的映射文件User.hbm.xml(跟User类放同个文件夹):
<? xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.flymouse.hibernate.domain"> <class name="User">
<id name="id">
<generator class="native" />
</id>
<property name="name" unique="false"/>
<property name="birthday" />
</class> </hibernate-mapping>
4.hibernate的配置文件hibernate.cfg.xml(放在类路径下,即src文件夹下):
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration>
<session-factory>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql:///test</property>
<property name="connection.username">root</property>
<property name="connection.password">123456</property>
<!-- 方言,用于生成SQL语句 -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 自己主动建表 -->
<property name="hbm2ddl.auto">create</property>
<property name="show_sql">true</property> <mapping resource="cn/flymouse/hibernate/domain/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Hibernate是怎么工作的——Hibernate的工作流程的更多相关文章
- 攻城狮在路上(壹) Hibernate(十五)--- Hibernate的高级配置
一.配置数据库连接池: 1.使用默认的数据库连接池: Hibernate提供了默认了数据库连接池,它的实现类为DriverManegerConnectionProvider,如果在Hibernate的 ...
- 【Hibernate 7】浅谈Hibernate的缓存机制
一.Hibernate缓存机制简介 对于Hibernate本身来说,它的缓存主要包括三部分:session缓存(一级缓存).二级缓存.查询缓存. 1.1,session缓存 随着session的关闭而 ...
- JavaPersistenceWithHibernate第二版笔记-第五章-Mapping value types-007UserTypes的用法(@org.hibernate.annotations.Type、@org.hibernate.annotations.TypeDefs、CompositeUserType、DynamicParameterizedType、、、)
一.结构 二.Hibernate支持的UserTypes接口 UserType —You can transform values by interacting with the plain JD ...
- 周鸿祎——不要抱着打工心态去工作,而是把工作当创业(附读书笔记) good
360周鸿祎反而最为开明,他说“不要抱着打工心态去工作,而是把工作当创业”,就像是,鼓励你拿着公司的工资,锻炼自己的能力,为自己以后创业积累资源和人脉(读书笔记:真是天底下最好的机会,天底下没有比工作 ...
- hibernate报错:org.hibernate.MappingException: No Dialect mapping for JDBC type: -1
解决方法:自定义一个Hibernate Dialect. package com.yourcompany.util ; import java.sql.Types; import org.hibern ...
- 谈论Hibernate级联删除——JPA根据Hibernate实现许多级联删除CascadeType.DELETE_ORPHAN
声明: 1.这篇文章是原创.非复制或转载过来. 2.在本文中,参数都亲自做过实验证明. 3.这篇文章谈到了Hibernate配置基于注释的方法.hbm语法不可用. 不清JPA.Hibernate.EJ ...
- 把Excel工作簿的每个工作表提取出来保存为新工作簿
平台:MS office 2010 任务:有个excel工作簿,其中有上百个工作表,要求把每一个工作表全部保存为新工作簿,如果一个一个复制出来太傻了,可以用excel自带的VB解决. 方法:打开工作簿 ...
- Hibernate基础学习(一)—初识Hibernate
一.对象的持久化 狭义的理解: 持久化仅仅指把对象永久的保存到数据库中. 广义的理解: 持久化包括和数据库相关的各种操作. 保存: 把对象永久保存到数据库中. 更新: ...
- Hibernate学习笔记二:Hibernate缓存策略详解
一:为什么使用Hibernate缓存: Hibernate是一个持久层框架,经常访问物理数据库. 为了降低应用程序访问物理数据库的频次,从而提高应用程序的性能. 缓存内的数据是对物理数据源的复制,应用 ...
- Hibernate框架 主配置文件(Hibernate.cfg.xml) 映射配置 说明
Hibernate.cfg.xml 主配置文件中主要配置:数据库连接信息.其他参数.映射信息! 常用配置查看源码: hibernate-distribution-3.6.0.Final\project ...
随机推荐
- react生命周期知识点
react生命周期知识点 一个React组件的生命周期分为三个部分:实例化.存在期和销毁时. 实例化 组件在客户端被实例化,第一次被创建时,以下方法依次被调用: 1.getDefaultProps2. ...
- java实例化对象的五种方法
1.用new语句创建对象,这是最常见的创建对象的方法. 2.通过工厂方法返回对象,如:String str = String.valueOf(23); 3.运用反射手段,调用java.lang.Cla ...
- angular-数据库
<div ng-app="myApp" ng-controller="customersCtrl"> <table> <tr ng ...
- hdu 2604 Queuing (矩阵高速幂)
Queuing Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- 自己定义CNN网络模型并使用caffe训练
caffe自带的例子中对mnist手写体数字训练使用的卷积神经网络是在lenet_train_test.prototxt中定义的,隐含层包含了2个卷积层,2个池化层,2个全连接层,1个激活函数层.网络 ...
- Oracle GoldenGate
Oracle GoldenGate实现数据库同步 前言:最近刚好在弄数据库同步,网上查了些资料再加上自己整理了一些,做个分享! 一.GoldenGate的安装 官方文档: Oracle®GoldenG ...
- ios各个屏幕
func currentDeviceScreenMeasurement() -> CGFloat { var deviceScree: CGFloat = 3.5 if ((568 == SCR ...
- 如何显示bootstrap fileinput缩略图上面的删除按钮
bootstrap上传文件控件初始化js: //bootstrap上传文件控件 $(".fileupload").fileinput({ language: "zh&qu ...
- 【算法】Dijkstra算法(单源最短路径问题)(路径还原) 邻接矩阵和邻接表实现
Dijkstra算法可使用的前提:不存在负圈. 负圈:负圈又称负环,就是说一个全部由负权的边组成的环,这样的话不存在最短路,因为每在环中转一圈路径总长就会边小. 算法描述: 1.找到最短距离已确定的顶 ...
- shell编程笔记1
参考文章:1 http://blog.csdn.net/wuwenxiang91322/article/details/9259877 通过chmod改变文件权限 补充知识: 1Linux文件的三 ...