您的位置:首页 > 编程语言 > Java开发

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

2016-09-10 09:41 549 查看
  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语言进行查询。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息