`
unddone8373229
  • 浏览: 28246 次
  • 性别: Icon_minigender_1
  • 来自: 江西
社区版块
存档分类
最新评论

持久化对象的增、删、改操作

阅读更多
package cn.itcast.hibernate;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public final class HibernateUtil {
	
	private static SessionFactory sessionFactory;
	
	/**
	 * 私有的构造方法(不希望被实例化)
	 */
	private HibernateUtil(){}
	
	static{
		// 实例化Configuration,加载Hibernate默认的配置文件
		//如果hibernate配置文件不是默认的文件名,则需要再configure("filename");
		Configuration config=new Configuration().configure();
		// 创建SessionFactory对象
		sessionFactory=config.buildSessionFactory();
	}
	
	public static SessionFactory getSessionFactory(){
		return sessionFactory;
	}
	
	public static Session getSession(){
		return sessionFactory.openSession();
	}
	
	/**
	 * 根据主键查找对象
	 * @param objClass
	 * @param id
	 * @return
	 */
	public static Object getById(Class objClass,int id){
		Object obj=null;
		Session session=null;
		try {
			session=HibernateUtil.getSession();
			obj=session.get(objClass, new Integer(id));
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			sessionClose(session);
		}
		return obj;
	}
	
	/**
	 * 保存对象到数据库中
	 * @param obj
	 */
	public static void add(Object obj){
		Session session=null;
		try {
			session=HibernateUtil.getSession();
			Transaction tx=session.beginTransaction();
			session.save(obj);
			tx.commit();
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			sessionClose(session);
		}
	}
	
	/**
	 * 在数据库中更新对象
	 * @param obj
	 */
	public static void update(Object obj){
		Session session=null;
		try {
			session=HibernateUtil.getSession();
			Transaction tx=session.beginTransaction();
			session.update(obj);
			tx.commit();
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			sessionClose(session);
		}
	}
	
	/**
	 * 在数据库中删除对象
	 * @param obj
	 */
	public static void delete(Object obj){
		Session session=null;
		try {
			session=HibernateUtil.getSession();
			Transaction tx=session.beginTransaction();
			session.delete(obj);
			tx.commit();
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			sessionClose(session);
		}
	}
	
	/**
	 * Session对象关闭方法
	 * @param session
	 */
	public static void sessionClose(Session session){
		if(session!=null){
			session.close();
		}
	}
}

 

 

这是一个Hibernate的工具类,可能功能还不够完善,以后还有待改进。

分享到:
评论

相关推荐

    序列化对象+文件操作

     本系统通过将电话本里的所有联系人信息采集到系统中,对联系人的信息进行 管理,以供个人管理自己的电话本。本系统能够迅速的对联系人信息进行添加, 删除,修改,并能快速的查询出联系人的基本信息,对业务较...

    对象存储,数据的增删改查--既有 demo 又有解释,实现快速上手..zip

    对象存储,数据的增删改查--这里主要是讲如何使用系统自带的 CoreData 类对数据持久化到本地的操作,对于初学者十分适合使用,作为作者的我,将所有必要的注释全部写的清楚明了,使得 ios 开发人员在参考此文档时既有 ...

    ios-数据库增删改查操作的封装.zip

    1.我这份代码是参照JKDBModel完成的,我只是加上了一些注释,删除了UI部分代码。目的只是为了让想学习FMDB的人能省去百度的时间(反正我很多不懂的代码都是靠百度) ...具体的增删改查示例代码,在viewController.m中

    ios-Coredata 的对象存储及增 删 改 查 条件过滤的详细解释.zip

    这里主要是讲如何使用系统自带的 CoreData 类对数据持久化到本地的操作,对于初学者十分适合使用,作为作者的我,将所有必要的注释全部写的清楚明了,使得 ios 开发人员在参考此文档时既有 demo 又有解释,实现快速上手.

    还在使用MyBatis Generator?试试这个工具.docx

    代码生成 在企业软件开发过程中,大多数时间都是面向数据库表的增删改查开发。通过通用的增删改查代码生成器,可以有效的...可以帮我们生成表对应的持久化对象(po)、操作数据库的接口(dao)、CRUD sql 的 xml(mapper)。

    ios-YUDBModel.zip

    架构: 使用runtime和Sqlite实现NSObject扩展类YUDBModel,直接实现(json反序列化对象-对象增删改查数据库-对象序列化) 易用: 无需继承,直接实现序列化、反序列化、一行代码操作数据库 稳定: 耦合度低,容错率高,...

    本科毕业设计+java课程设计,大作业+基于SpringBoot+Hibernate+Shiro的库存管理系统

    * 数据持久层使用SpringBoot自带的Hibernate来维护PO(Persistent Object持久化对象),这里使用Hibernate的原因在于其三种对象状态(持久态、游离态、分割态)便于持久化对象的增删改查等一系列操作,取代了jdbc的...

    Struts+hibernate含金量很高的例子

    该例子是用Struts+hibernate技术实现(增删改查) 另外还要实现了上传功能。处理了汉字乱码,例子中有现成的数据库 开发环境:JBuilder2006+MSSQL2000 朋友们,说到hibernate持久化数据 你还一头雾水。那你不要担心...

    c语言c++项目源代码_c++课程设计-产品入库管理操作系统.rar

    系统采用面向对象的编程思想,实现了产品的增删改查、库存统计、报表生成等功能,并支持数据的持久化存储和备份恢复。 主要特点: 1. **用户友好的界面**:系统采用图形化界面设计,用户无需专业知识即可轻松上手...

    Java基于SSM(Spring+SpringMVC+MyBatis)家政预约管理系统.zip

    ORM:在持久化对象上执行基本的增、删、改、查操作 使用Mybatis的步骤 1、 加载数据库驱动 2、 创建并获取数据库链接 3、 创建jdbc statement对象 4、 设置sql语句 5、 设置sql语句中的参数(使用preparedStatement) ...

    Java基于SSM(Spring+SpringMVC+MyBatis)数据结构课堂考勤管理系统.zip

    ORM:在持久化对象上执行基本的增、删、改、查操作 使用Mybatis的步骤 1、 加载数据库驱动 2、 创建并获取数据库链接 3、 创建jdbc statement对象 4、 设置sql语句 5、 设置sql语句中的参数(使用preparedStatement) ...

    Java基于SSM(Spring+SpringMVC+MyBatis)大学生奖助学金发放管理系统.zip

    ORM:在持久化对象上执行基本的增、删、改、查操作 使用Mybatis的步骤 1、 加载数据库驱动 2、 创建并获取数据库链接 3、 创建jdbc statement对象 4、 设置sql语句 5、 设置sql语句中的参数(使用preparedStatement) ...

    Java基于SSM(Spring+SpringMVC+MyBatis)新疆旅游管理系统.zip

    ORM:在持久化对象上执行基本的增、删、改、查操作 使用Mybatis的步骤 1、 加载数据库驱动 2、 创建并获取数据库链接 3、 创建jdbc statement对象 4、 设置sql语句 5、 设置sql语句中的参数(使用preparedStatement) ...

    Java基于SSM(Spring+SpringMVC+MyBatis)大美新疆在线论坛交流系统.zip

    ORM:在持久化对象上执行基本的增、删、改、查操作 使用Mybatis的步骤 1、 加载数据库驱动 2、 创建并获取数据库链接 3、 创建jdbc statement对象 4、 设置sql语句 5、 设置sql语句中的参数(使用preparedStatement) ...

    Java基于SSM(Spring+SpringMVC+MyBatis)个人健康信息管理系统.zip

    ORM:在持久化对象上执行基本的增、删、改、查操作 使用Mybatis的步骤 1、 加载数据库驱动 2、 创建并获取数据库链接 3、 创建jdbc statement对象 4、 设置sql语句 5、 设置sql语句中的参数(使用preparedStatement) ...

    Java基于SSM(Spring+SpringMVC+MyBatis)在线汽车交易系统.zip

    ORM:在持久化对象上执行基本的增、删、改、查操作 使用Mybatis的步骤 1、 加载数据库驱动 2、 创建并获取数据库链接 3、 创建jdbc statement对象 4、 设置sql语句 5、 设置sql语句中的参数(使用preparedStatement) ...

    Java基于SSM(Spring+SpringMVC+MyBatis)在线物业管理系统.zip

    ORM:在持久化对象上执行基本的增、删、改、查操作 使用Mybatis的步骤 1、 加载数据库驱动 2、 创建并获取数据库链接 3、 创建jdbc statement对象 4、 设置sql语句 5、 设置sql语句中的参数(使用preparedStatement) ...

    Java基于SSM(Spring+SpringMVC+MyBatis)小说阅读网站书城.zip

    ORM:在持久化对象上执行基本的增、删、改、查操作 使用Mybatis的步骤 1、 加载数据库驱动 2、 创建并获取数据库链接 3、 创建jdbc statement对象 4、 设置sql语句 5、 设置sql语句中的参数(使用preparedStatement) ...

    Java基于SSM(Spring+SpringMVC+MyBatis)在线个人网站.zip

    ORM:在持久化对象上执行基本的增、删、改、查操作 使用Mybatis的步骤 1、 加载数据库驱动 2、 创建并获取数据库链接 3、 创建jdbc statement对象 4、 设置sql语句 5、 设置sql语句中的参数(使用preparedStatement) ...

    Java基于SSM(Spring+SpringMVC+MyBatis)健身房众筹系统.zip

    ORM:在持久化对象上执行基本的增、删、改、查操作 使用Mybatis的步骤 1、 加载数据库驱动 2、 创建并获取数据库链接 3、 创建jdbc statement对象 4、 设置sql语句 5、 设置sql语句中的参数(使用preparedStatement) ...

Global site tag (gtag.js) - Google Analytics