设为首页 加入收藏

TOP

Hibernate实现最基本的增删改查(一)
2015-07-24 11:35:13 来源: 作者: 【 】 浏览:8
Tags:Hibernate 实现 基本 删改

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
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇asminstnaceASMB 下一篇压缩数据库

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·哈希表 - 菜鸟教程 (2025-12-24 20:18:55)
·MySQL存储引擎InnoDB (2025-12-24 20:18:53)
·索引堆及其优化 - 菜 (2025-12-24 20:18:50)
·Shell 中各种括号的 (2025-12-24 19:50:39)
·Shell 变量 - 菜鸟教 (2025-12-24 19:50:37)