欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Hibernate实现最基本的增删改查

程序员文章站 2024-01-25 13:26:22
...

Hibernate提供了丰富的API对数据库进行操作。 其中Session是对数据库进行操作一个非常重要的类,他提供了对数据库增删改查的基本操作。 下面看一些具体示例,实例中实现了对数据库增加,删除,更新,根据ID查询,查询全部,分页查询,以及模糊查询 package d

Hibernate提供了丰富的API对数据库进行操作。

其中Session是对数据库进行操作一个非常重要的类,他提供了对数据库增删改查的基本操作。

下面看一些具体示例,实例中实现了对数据库增加,删除,更新,根据ID查询,查询全部,分页查询,以及模糊查询

package dao;

import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import sessionfactory.HibernateSessionFactory;
import entity.Login;

public class BaseDao {
	// 保存用户
	public void save(Login login) {
		Session session = HibernateSessionFactory.getSession();
		Transaction tran = null;
		try {
			tran = session.beginTransaction();
			session.save(login);
			tran.commit();
			System.out.println("添加成功!");
		} catch (HibernateException e) {
			tran.rollback();
			System.out.println("插入失败!");
		} finally {
			HibernateSessionFactory.closeSession();
		}
	}

	// 删除用户
	public void delete(Login login) {
		Session session = HibernateSessionFactory.getSession();
		Transaction tran = null;
		try {
			tran = session.beginTransaction();
			session.delete(login);
			System.out.println("删除成功");
			tran.commit();
		} catch (Exception e) {
			System.out.println("删除失败");
			tran.rollback();
		} finally {
			HibernateSessionFactory.closeSession();
		}
	}

	// 更新用户信息
	public void update(Login login) {
		Session session = HibernateSessionFactory.getSession();
		Transaction tran = null;
		try {
			tran = session.beginTransaction();
			session.update(login);
			tran.commit();
			System.out.println("更新成功!");
		} catch (Exception e) {
			tran.rollback();
			System.out.println("更新失败!");
		} finally {
			HibernateSessionFactory.closeSession();
		}
	}

	// 根据用户id查询
	public Login queryById(int id) {
		Login login =null;
		Session session = HibernateSessionFactory.getSession();
		Transaction tran = null;
		try {
			tran = session.beginTransaction();
			login = (Login) session.get(Login.class, id);
			tran.commit();
		} catch (Exception e) {
			tran.rollback();
			System.out.println("未找到用户!");
		} finally {
			HibernateSessionFactory.closeSession();
		}
		return login;
	}

	// 查询全部
	public List queryAll() {
		Session session = HibernateSessionFactory.getSession();
		String hql = "FROM Login";
		List list = null;
		Transaction tran = null;
		try {
			tran = session.beginTransaction();
			Query query = session.createQuery(hql);
			list = query.list();
			tran.commit();
		} catch (Exception e) {
			tran.rollback();
		} finally {
			HibernateSessionFactory.closeSession();
		}
		return list;
	}

	// 模糊查询
	public List queryLike(String name) {
		Session session = HibernateSessionFactory.getSession();
		String hql = "from Login as l where l.username like ?";
		Query query = session.createQuery(hql);
		query.setString(0, "%" + name + "%");
		List list = query.list();
		return list;
	}

	// 分页查询
	public QueryResult queryAll(int firstResult, int maxResult) {
		QueryResult qr = null;
		Session session = HibernateSessionFactory.getSession();
		Transaction tran = null;
		try {
			tran = session.beginTransaction();
			Query query = session.createQuery("FROM Login");
			List list = query.list();
			int totalCount = list.size();
			int pageSize = (totalCount%maxResult==0)?(totalCount/maxResult):(totalCount/maxResult+1);
			query.setFirstResult(firstResult);
			query.setMaxResults(maxResult);
			List listSize = query.list();
			qr = new QueryResult(pageSize, listSize);
			tran.commit();
		} catch (Exception e) {
			tran.rollback();
		} finally {
			HibernateSessionFactory.closeSession();
		}
		return qr;
	}
}