设为首页 加入收藏

TOP

Hibernate实现最基本的增删改查(一)
2015-07-24 11:35:13 来源: 作者: 【 】 浏览:10
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 下一篇压缩数据库

评论

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

·请问微信4.0版本xwec (2025-12-24 22:48:42)
·电脑NVIDIA的文件夹 (2025-12-24 22:48:40)
·如何看待微信新版本 (2025-12-24 22:48:37)
·C语言中如何将结构体 (2025-12-24 22:20:09)
·纯C语言结构体成员变 (2025-12-24 22:20:06)