hibernate框架简单步骤
Demo.java
package com.itheima.test; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test; import com.itheima.domain.Customer; /**
* 测试Hibernate框架
* @author Administrator
*
*/
public class Demo {
/**
* 测试保存客户
*/
@Test
public void testSave(){
//1、加载配置文件
//2、创建SessionFactory对象,生成Session对象,不是以前学的那个Session,是框架产生的
//3、创建session对象
//4、开启事物
//5、编写保存的代码
//6、提交事务
//7、释放资源
/**
* 代码都是固定的,只有第五步保存代码是不固定的
*/ //1、加载配置文件
Configuration config = new Configuration();
//默认加载src目录下hibernate.cfg.xml的配置文件
config.configure(); //2、创建SessionFactory对象
SessionFactory factory = config.buildSessionFactory(); //3、创建session对象
Session session = factory.openSession(); //4、开启事物
Transaction tr = session.beginTransaction(); //5、编写保存的代码
Customer c = new Customer();
c.setCust_name("测试");
c.setCust_level("2");
c.setCust_phone("110"); //■■保存数据,操作对象就相当于操作数据库,这是代码的核心■■
session.save(c); //6、提交事务
tr.commit(); //7、释放资源
session.close();
factory.close(); }
}
这是SessionFactory的配置文件:
package com.itheima.Utils; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration; /**
* Hibernate框架的工具类
* @author Administrator
*
*/
public class HibernateUtils {
private static final Configuration CONFIG;
private static final SessionFactory FACTORY; //编写静态代码块,在类在加载的时候,他就被执行了
static{
//加载XML的配置文件
CONFIG = new Configuration().configure();
//构建工厂
FACTORY = CONFIG.buildSessionFactory(); } /**
* 从工厂中回去Session对象
* @return
*/
public static Session getSession(){
return FACTORY.openSession();
}
}
有了配置文件,Demo就简单了很多,我们可以对比一下:
package com.itheima.test; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test; import com.itheima.Utils.HibernateUtils;
import com.itheima.domain.Customer; /**
* 测试Hibernate框架
* @author Administrator
*
*/
public class Demo {
/**
* 测试保存客户
*/
@Test
public void testSave(){
//配置文件可以做的事情:加载配置文件,获取Factory对象,获取session
Session session = HibernateUtils.getSession();
Transaction tr = session.beginTransaction();
Customer c = new Customer();
c.setCust_name("苍井空");
session.save(c);
//提交事务
tr.commit();
//释放资源
session.close();
}
}
hibernate框架简单步骤的更多相关文章
- Hibernate框架简单应用
Hibernate框架简单应用 Hibernate的核心组件在基于MVC设计模式的JAVA WEB应用中,Hibernate可以作为模型层/数据访问层.它通过配置文件(hibernate.proper ...
- spring框架整合hibernate框架简单操作数据库
1.配置文件: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http:/ ...
- Hibernate 框架简单解说
- 2.0、Hibernate框架的简单搭建
一.Hibernate:是一个开放源代码的对象关系映射框架,对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句 ...
- 关于HttpSession 和 Hibernate框架中 session异同点的简单解析
快速理解: HttpSession中的session是一个容器用来盛基于会话机制的信息. 比喻:我把钱放进银行的保险柜里. 解析:我的钱就是我的信息,ID等 银行的保险柜就是session容器. Hi ...
- SSH框架搭建步骤总结以及Hibernate二级缓存,查询缓存
二级缓存.查询缓存 一级缓存: 默认启动,生命周期是和session同步的,session独享 二级缓存: 需要加载配置信息,生命周期是和应用服务器同步,session共享 1:在hibernate. ...
- hibernate框架的简单入门
1.什么是框架 框架是一个半成品,框架帮我们实现了一部分的功能. 2.使用框架的最大好处 使用框架的最大好处就是,少写一部分代码但仍能实现我们所需要实现的功能. 3.什么是hiberbnate框架 ( ...
- JAVA框架之Hibernate框架的学习步骤
首先介绍一下Java三大框架的关系 以CRM项目即客户关系管理项目示例 hibernate框架的学习路线: 1.学习框架入门,自己搭建框架,完成增删改查的操作 2.学习一级缓存,事物管理和基本查询 3 ...
- hibernate 框架的简单使用
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuratio ...
随机推荐
- FZU 2205 据说题目很水
2205 据说题目很水 Accept: 199 Submit: 458Time Limit: 1000 mSec Memory Limit : 32768 KB Problem Descr ...
- BZOJ2780: [Spoj]8093 Sevenk Love Oimaster(广义后缀自动机,Parent树,Dfs序)
Description Oimaster and sevenk love each other. But recently,sevenk heard that a girl named ChuYuXu ...
- 洛谷 P1781 宇宙总统
P1781 宇宙总统 题目背景 宇宙总统竞选 题目描述 地球历公元6036年,全宇宙准备竞选一个最贤能的人当总统,共有n个非凡拔尖的人竞选总统,现在票数已经统计完毕,请你算出谁能够当上总统. 输入输出 ...
- asp.net Code学习一(vs code跨平台软件操作)
1.命令行: dotnet new -t web 创建web项目 dotnet new restore build pubilsh run test pack dotnet -info / -h do ...
- 微信消息体加解密及EncodingAESKey
公众平台消息体签名及加解密方案概述 1.新增消息体签名验证,用于公众平台和公众账号验证消息体的正确性 2.针对推送给微信公众账号的普通消息和事件消息,以及推送给设备公众账号的设备消息进行加密 3.公众 ...
- 学习笔记:Vue——插槽
关于Vue插槽,只用过最简单的语法,现在完整地走一遍官方文档说明,并且探索更多用法. 01.如果组件中没有包含一个<slot>元素,则该组件起始标签和结束标签之间的任何内容都会被抛弃. 0 ...
- VUE错误记录 - 品牌后台练习 search(); 数组 splice forEach push 箭头函数
methods:{ add(){ var car = { id: this.id, name: this.name, ctime: new Date()}; this.list.push(car); ...
- Python编写Appium测试用例(1)
有段时间没有使用python编写测试用例了,很长时间以来,感觉appium这个测试工具确实不错,今天又重新拿起来,分享一下自己学习的一些用例,欢迎大家一起交流.学习! 1.登录客户端 #coding= ...
- 如何去掉bootstrap table中表格样式中横线竖线
修改之前,表格看上去比较拥挤,因为bootstrap table插件中自带斑马线表格样式,有横线和竖线分栏,现在我们不需要这些. 应UI设计的要求,要去掉中间的横线和竖线,使用了修改需求中一种简单粗暴 ...
- Codeforces #28 C.Bath Queue (概率dp)
Codeforces Beta Round #28 (Codeforces format) 题目链接: http://codeforces.com/contest/28/problem/C 题意: 有 ...