博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(29)java web的hibernate使用-crud的dao
阅读量:4347 次
发布时间:2019-06-07

本文共 3698 字,大约阅读时间需要 12 分钟。

1, 做个简单的util

public class HibernateUtils {	private static SessionFactory sf;	static {		//加载主要的配置文件		sf = new Configuration().configure().buildSessionFactory();	}		// 打开session	public static Session getSession(){		return sf.openSession();	}}

 

2,做个Accounts的qrud接口

public interface AccountDaoInterface {		//增加	void save(Account emp);	//更新	void update(Account emp);	//查找	Account findById(Serializable id);	List
getAll(); List
getAll(String AccountName); List
getAll(int index, int count); //删除 void delete(Serializable id); }

  

3,实现接口

public class AccountDao implements AccountDaoInterface {	@Override	public Account findById(Serializable id) {		Session session = null;		Transaction tx = null;		try {			//获取session			session = HibernateUtils.getSession();			//开启			tx = session.beginTransaction();			//进行查询			return (Account) session.get(Account.class, id);		} catch (Exception e) {			throw new RuntimeException(e);		} finally {			tx.commit();			session.close();		}	}	@Override	public List
getAll() { Session session = null; Transaction tx = null; try { session = HibernateUtils.getSession(); tx = session.beginTransaction(); // HQL查询 Query q = session.createQuery("from Account"); return q.list(); } catch (Exception e) { throw new RuntimeException(e); } finally { tx.commit(); session.close(); } } @SuppressWarnings("unchecked") @Override public List
getAll(String AccountName) { Session session = null; Transaction tx = null; try { session = HibernateUtils.getSession(); tx = session.beginTransaction(); Query q =session.createQuery("from Account where empName=?"); // 索引从0开始 q.setParameter(0, AccountName); // 进行查询 return q.list(); } catch (Exception e) { throw new RuntimeException(e); } finally { tx.commit(); session.close(); } } @Override public List
getAll(int index, int count) { Session session = null; Transaction tx = null; try { session = HibernateUtils.getSession(); tx = session.beginTransaction(); Query q = session.createQuery("from Account"); // 设置分页参数 q.setFirstResult(index); // 查询开始行数位置 q.setMaxResults(count); // 查询返回的行数 List
list = q.list(); return list; } catch (Exception e) { throw new RuntimeException(e); } finally { tx.commit(); session.close(); } } @Override public void save(Account emp) { Session session = null; Transaction tx = null; try { session = HibernateUtils.getSession(); tx = session.beginTransaction(); // 保存 session.save(emp); } catch (Exception e) { throw new RuntimeException(e); } finally { tx.commit(); session.close(); } } @Override public void update(Account emp) { Session session = null; Transaction tx = null; try { session = HibernateUtils.getSession(); tx = session.beginTransaction(); //更新 session.update(emp); } catch (Exception e) { throw new RuntimeException(e); } finally { tx.commit(); session.close(); } } @Override public void delete(Serializable id) { Session session = null; Transaction tx = null; try { session = HibernateUtils.getSession(); tx = session.beginTransaction(); // 先查询对象,然后判断删除 Object obj = session.get(Account.class, id); if (obj != null) { session.delete(obj); } } catch (Exception e) { throw new RuntimeException(e); } finally { tx.commit(); session.close(); } } }

  

4,简单使用

List
accounts = new AccountDao().getAll(); for (int i = 0; i < accounts.size(); i++) { Account account = accounts.get(i); System.out.println(account.getName()); }

  

 

转载于:https://www.cnblogs.com/yangzigege/p/9477999.html

你可能感兴趣的文章
铁路信号基础
查看>>
RobotFramework自动化2-自定义关键字
查看>>
CMU Bomblab 答案
查看>>
技术分析淘宝的超卖宝贝
查看>>
Azure云服务托管恶意软件
查看>>
My安卓知识6--关于把项目从androidstudio工程转成eclipse工程并导成jar包
查看>>
旧的起点(开园说明)
查看>>
生产订单“生产线别”带入生产入库单
查看>>
crontab导致磁盘空间满问题的解决
查看>>
自定义滚动条
查看>>
APP开发手记01(app与web的困惑)
查看>>
初识前端作业1
查看>>
ffmpeg格式转换命令
查看>>
万方数据知识平台 TFHpple +Xpath解析
查看>>
Hive实现oracle的Minus函数
查看>>
秒杀多线程第四篇 一个经典的多线程同步问题
查看>>
RocketMQ配置
查看>>
蚂蚁金服井贤栋:用技术联手金融机构,形成服务小微的生态合力
查看>>
端口号大全
查看>>
POJ 3740 Easy Finding (DLX模板)
查看>>