`
wptc
  • 浏览: 22576 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

HibernateUtil自己写的一个CRUD的工具类

阅读更多

解释下:

大侠们不要见怪,我在这里写的这个工具类肯定有很多不好的地方,我想的是在这里写个文章,好利用它的电子书功能来做个读书笔记。多多包含!

利用MyEclipse7.0自动生成的HibernateSessionFactory.java

 

 

HibernateUtil.java :

package com.cracker;

import java.util.ArrayList;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Restrictions;

public class HibernateUtil {
	/**
	 * 保存
	 */
	public static void add(Object obj){
		Transaction st = null;
		Session session = null;
		try{
		session = HibernateSessionFactory.getSession();
		st = session.beginTransaction();
		session.save(obj);
		st.commit();
		}catch(HibernateException e){
			st.rollback();
			throw e;
		}finally{
			if(session!=null){
				if(session.isOpen()){
				session.close();
				}
			}
		}
	}
	/**
	 * 更新
	 */
	public static void update(Object obj){
		Transaction st = null;
		Session session = null;
		try{
		session = HibernateSessionFactory.getSession();
		st = session.beginTransaction();
		session.update(obj);
		st.commit();
		}catch(HibernateException e){
			st.rollback();
			throw e;
		}finally{
			if(session!=null){
				if(session.isOpen()){
				session.close();
				}
			}
		}
	}
	/**
	 * 删除
	 */
	public static void delete(Object obj){
		
		Session session = HibernateSessionFactory.getSession();
		try{
			
		session.delete(obj);
	
		} catch(HibernateException e){
			System.out.println("删除异常");
			throw e;
		}finally{
			if(session!=null){
				if(session.isOpen()){
				session.close();
				}
			}
		}
			
	}
	
	/**
	 * 查询ByID
	 */
	public static User queryById(int id){
		
		Session session = HibernateSessionFactory.getSession();
		User user = null;
		try{
		
			 user = (User)session.get(User.class,1);
		}catch (HibernateException e){
			System.out.println("查询ByID异常");
			throw e;
		}finally{
			if(session!=null){
				if(session.isOpen()){
				session.close();
				}
			}
		}
		return user;
	}
	
	/**
	 * Query By Name
	 */
	@SuppressWarnings("unchecked")
	public static ArrayList<User> queryByName(String name){
		ArrayList<User> userList = new ArrayList<User>();
		String hql = "from User as user where user.name=:name";
		Session session = HibernateSessionFactory.getSession();
		try{

			Query query =session.createQuery(hql);
//          分页显示
			query.setFirstResult(0);
			query.setMaxResults(4);
			query.setString("name", name);
//			快速获得hql的集合,不用像JDBC那样去一个一个取了
			userList = (ArrayList<User>) query.list();
		}catch(HibernateException e){
			System.out.println("QueryByName异常");
			throw e;
		}finally{
			if(session!=null){
				if(session.isOpen()){
				session.close();
				}
			}
		}
		return userList;
	}
	/**
	 * 
	 * 通过密码来查询,演示采用criteria方式
	 */
	@SuppressWarnings("unchecked")
	public static ArrayList<User> queryByPassword(String password){
		ArrayList<User> userList = new ArrayList<User>();
		Session session = HibernateSessionFactory.getSession();
		try{
			Criteria c = session.createCriteria(User.class);
//          分页显示
			c.setFirstResult(0);
			c.setMaxResults(4);
			c.add(Restrictions.eq("password", password));
//			快速获得的集合,不用想JDBC那样去一个一个取了
			userList = (ArrayList<User>) c.list();
		}catch(HibernateException e){
			System.out.println("QueryByName异常");
			throw e;
		}finally{
			if(session!=null){
				if(session.isOpen()){
				session.close();
				}
			}
		}
		return userList;
	}

}

 

0
0
分享到:
评论

相关推荐

    HibernateUtil

    而HibernateUtil则是为了方便开发者管理Hibernate的核心组件Session和SessionFactory而设计的一个实用工具类。本文将详细探讨HibernateUtil的实现原理、作用以及如何使用它来优化数据库操作。 一、HibernateUtil与...

    封装了一个Hibernate增删改查的工具类

    本篇将详细介绍一个基于Hibernate封装的增删改查工具类,该工具类整合了util、comm.util以及beanutils等库,旨在提高开发效率,降低代码复杂度,方便开发者快速地获取session和sessionFactory。 首先,让我们理解...

    Hibernate工具类

    `HibernateUtil`工具类就是对Hibernate框架功能的一种封装,简化了对数据库的操作。 在`HibernateUtil`工具类中,常见的方法有以下几类: 1. **初始化SessionFactory**: SessionFactory是Hibernate的核心组件,它...

    hibernate 简单CRUD操作

    - `hibernateUtil.java`:工具类,用于初始化SessionFactory并提供Session操作的方法。 - `测试类.java`:例如`TestHibernate.java`,包含CRUD操作的示例代码。 在测试类中,你会看到如何实例化SessionFactory,...

    hibernate使用参考文档

    `HibernateUtil` 是一个工具类,用于提供 Hibernate 的 SessionFactory实例。该类提供了基本的 CRUD(Create、Read、Update、Delete)操作,可以用于实现数据的增删查改操作。 测试代码 在使用 Hibernate 时,我们...

    hibernate的第一个例子

    **描述分析:**描述提到这是一个超级简单的例子,包含一个持久化对象(通常是Java类,对应数据库中的表)、一个辅助类(可能是配置或者工具类,帮助操作数据库)以及一个测试类(用于验证代码功能)。这个例子特别...

    hibenate 对DAO的封装

    然后,用户只需要为自己的实体类创建一个继承自泛型DAO模板的接口,即可获得CRUD操作。例如,对于一个名为`User`的实体类,我们可以创建一个`UserDAO`接口,如下: ```java public interface UserDAO extends ...

    hibernate主要知识点

    `HibernateUtil` 是一个实用工具类,用于加载配置文件 `hibernate.cfg.xml` 并获取 SessionFactory 和 Session 实例。这样可以确保在整个应用中,SessionFactory 只被创建一次,提高了性能。 ```java public final ...

    SpringMVC+Hibernate

    例如,可以创建一个HibernateUtil工具类,封装SessionFactory和Session的获取,以及事务的开始、提交和回滚等操作。还可以编写一个DAO(Data Access Object)基类,提供基本的查询和保存方法,子类根据具体的实体类...

    简单的struts2+hibernate公告管理系统

    同时,Hibernate的SessionFactory和Session对象会在后台处理数据库交互,例如通过`HibernateUtil`工具类来实例化SessionFactory,然后通过Session执行CRUD操作。 总的来说,"简单的Struts2+Hibernate公告管理系统...

    hibernate学习笔记

    - **主键表示**:可选地,可以有一个无意义的表示ID,通常使用@Id注解标识。 - **类非 final**:允许懒加载机制。 3. **映射文件配置** - `&lt;class&gt;`标签的`name`属性指定Java类名,`table`属性指定数据库表名。 ...

    一个Hibernate的简单实例

    这里的`HibernateUtil`通常是一个自定义的工具类,用于获取SessionFactory。`save()`方法会将对象持久化到数据库,`beginTransaction()`和`commit()`则分别用于开启和结束数据库事务。 除了基本的CRUD操作,...

    myeclipse与hibernate―反向生成实体类和DAO

    在项目目录下,创建一个新的文件夹用于存放实体类和DAO。 2. 接下来,我们需要配置Hibernate的连接字符串。在MyEclipse中,我们可以在项目的配置文件中添加以下内容: jdbc:oracle:thin:@localhost:1521:orcl jdbc:...

    struts+hibernate

    为了管理和操作Session,我们创建了一个名为`HibernateUtil`的工具类。这个类通常包含了SessionFactory的初始化,以及获取Session实例的方法,用于执行CRUD(创建、读取、更新、删除)操作。SessionFactory是一个...

    j2ee开发常用jar 包

    这里,`HibernateUtil`通常是一个工具类,用于初始化并提供SessionFactory。整个过程简洁明了,无需手动编写SQL,大大降低了开发复杂度。 总结起来,"j2ee开发常用jar 包2: Hibernate"主要涵盖了Hibernate作为J2EE...

    hibernate入门小示例

    - HibernateUtil.java:用于创建SessionFactory的工具类 - TestHibernate.java:包含JUnit测试用例的类 通过阅读和理解这些代码,你可以更好地了解Hibernate在实际应用中的工作原理。 总之,这个“hibernate入门小...

    Hibernate操作数据库的方法

    5. **HibernateUtil**:HibernateUtil类是一个实用类,用于管理SessionFactory对象。通常包含一个静态的SessionFactory实例和一个静态方法,用于获取这个实例。HibernateUtil类可以帮助简化获取Session的操作。 ...

    Hibernate总结——课程管理

    本教程将深入探讨如何使用Hibernate来实现一个简单的课程管理系统,涵盖多对多关联映射以及CRUD操作。 ### Hibernate概述 Hibernate是一个开源的ORM框架,它允许开发者使用Java对象来表示数据库中的记录,从而避免...

    第一个Hibernate小程序

    创建一个`UserDAO`类,用于执行CRUD操作: ```java import org.hibernate.Session; import org.hibernate.Transaction; public class UserDAO { public void save(User user) { Session session = ...

    hibernate单边一对一关系demo

    在Java的持久化框架中,Hibernate是一个非常重要的工具,它为开发者提供了强大的对象关系映射(ORM)功能。本示例“hibernate单边一对一关系demo”将深入讲解如何在Hibernate中设置和操作一对一(One-to-One)的关系...

Global site tag (gtag.js) - Google Analytics