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框架简单步骤的更多相关文章

  1. Hibernate框架简单应用

    Hibernate框架简单应用 Hibernate的核心组件在基于MVC设计模式的JAVA WEB应用中,Hibernate可以作为模型层/数据访问层.它通过配置文件(hibernate.proper ...

  2. spring框架整合hibernate框架简单操作数据库

    1.配置文件: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http:/ ...

  3. Hibernate 框架简单解说

  4. 2.0、Hibernate框架的简单搭建

    一.Hibernate:是一个开放源代码的对象关系映射框架,对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句 ...

  5. 关于HttpSession 和 Hibernate框架中 session异同点的简单解析

    快速理解: HttpSession中的session是一个容器用来盛基于会话机制的信息. 比喻:我把钱放进银行的保险柜里. 解析:我的钱就是我的信息,ID等 银行的保险柜就是session容器. Hi ...

  6. SSH框架搭建步骤总结以及Hibernate二级缓存,查询缓存

    二级缓存.查询缓存 一级缓存: 默认启动,生命周期是和session同步的,session独享 二级缓存: 需要加载配置信息,生命周期是和应用服务器同步,session共享 1:在hibernate. ...

  7. hibernate框架的简单入门

    1.什么是框架 框架是一个半成品,框架帮我们实现了一部分的功能. 2.使用框架的最大好处 使用框架的最大好处就是,少写一部分代码但仍能实现我们所需要实现的功能. 3.什么是hiberbnate框架 ( ...

  8. JAVA框架之Hibernate框架的学习步骤

    首先介绍一下Java三大框架的关系 以CRM项目即客户关系管理项目示例 hibernate框架的学习路线: 1.学习框架入门,自己搭建框架,完成增删改查的操作 2.学习一级缓存,事物管理和基本查询 3 ...

  9. hibernate 框架的简单使用

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuratio ...

随机推荐

  1. jQ-多选按钮实现单选按钮的功能以及input按钮的优化

    css: .displayN{display: none;} label {font-size:12px;cursor:pointer;} label i {font-size:12px;font-s ...

  2. Django路由分配以及模版渲染

    路由上: 在网络上区分不同的电脑通过IP.端口和网卡的MAC地址等,在web框架中怎么区分不同的请求呢,就是通过 ‘url(路由)’ ,url 学名叫做全球统一资源定位符,其实就是一个网址 一个url ...

  3. 【hdu 3478】Catch

    [Link]:http://acm.hdu.edu.cn/showproblem.php?pid=3478 [Description] 一个人从起点s出发,假设他在时间t在节点x; 则在时间t+1,他 ...

  4. js进阶 14-8 表单序列化函数serializeArray()和serialize()的区别是什么

    js进阶 14-8 表单序列化函数serializeArray()和serialize()的区别是什么 一.总结 一句话总结:两者都是对表单进行序列化,serializeArray()返回的是json ...

  5. 利用formdata对象上传文件时,需要添加的参数

    function doUpload() { var formData = new FormData($( "#uploadForm" )[0]); $.ajax({ url: 'h ...

  6. python内存增长问题

    如果你的程序没有调用什么特殊的库, 只是用了很平常的库, 而且使再循环很多的情况下, 那么建议你把循环里的程序拆出来,写成一子函数,循环子函数. 如下面格式: for   (循环) 子函数 这样程序每 ...

  7. Oracle学习总结(9)—— Oracle 常用的基本操作

    创建用户,相当于在sqlServer中创建一个数据库  create user 用户名 identified by 密码  修改用户密码  alter user 用户名 identified by 新 ...

  8. Oracle学习总结(10)——45 个非常有用的 Oracle 查询语句

    ******************************  日期/时间 相关查询 *****************************       -- 1.获取当前月份的第一天  sele ...

  9. 开发过程使用Tomcat Maven插件持续快捷部署Web项目

    我在平时工作中部署Web项目到测试服务器上的Tomcat时用的是Hudson.Hudson本身已经跟SVN.Git.Maven集成并且支持添加各种插件.但如果使用Hudson,我需要配置两个任务:一个 ...

  10. HDU——T 3501 Calculation 2

    http://acm.hdu.edu.cn/showproblem.php?pid=3501 Time Limit: 2000/1000 MS (Java/Others)    Memory Limi ...