JavaEE项目实战(OA系统)之八_部门管理之二

  JavaEE项目实战(OA系统)之八_部门管理之二

  二、数据访问层

  数据访问层先写接口再写实现类,包结构如下:


  接口:

public interface DeptDao {
	void add(Dept dept);

	void del(int id);

	void update(Dept dept);

	Dept getById(int id);

	List<Dept> getAll();
}
  实现类(实现类放在impl子包中,命名为“接口类名”+Impl):

// 数据访问层
@Repository
public class DeptDaoImpl implements DeptDao {
	@Resource
	private SessionFactory sessionFactory; // session工厂对象

	@Override
	public void add(Dept dept) {
		Session session = sessionFactory.getCurrentSession();
		session.save(dept);
	}

	@Override
	public void del(int id) {
		Session session = sessionFactory.getCurrentSession();
		Dept dept = this.getById(id);
		session.delete(dept);
	}

	@Override
	public void update(Dept dept) {
		Session session = sessionFactory.getCurrentSession();
		session.update(dept);
	}

	@Override
	public Dept getById(int id) {
		Session session = sessionFactory.getCurrentSession();
		return (Dept) session.get(Dept.class, id);
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Dept> getAll() {
		Session session = sessionFactory.getCurrentSession();
		Query query = session.createQuery("from Dept");
		return (List<Dept>) query.list();
	}

	// getter & setter

	public SessionFactory getSessionFactory() {
		return sessionFactory;
	}

	public void setSessionFactory(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
	}
}
  Hibernate4的DAO类代码已经很简单了,只需几行代码就可以完成各种操作,这是由于Hibernate会辅助我们生成sql语句,程序运行时,可以在控制台看到生成的sql语句。

  增删改查方法的第一句代码都是先取得session。session是Hibernate中类似于数据库连接的概念,每次先取连接,再执行相应方法。

  查询方法有两个,一个是根据id查找单个对象,一个是查找所有对象,返回列表。

  根据id查找单个对象,一般使用get方法,参数1是实体类的class,参数2是id。

  查找所有对象,一般使用Query对象,Query对象是Hibernate是专用于查询的对象,使用Hibernate专用的HQL语言进行查询。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值