天天看點

通過Hibernate架構搭建簡單的dao層

  Hibernate架構提供了很多對資料庫進行操作的接口,友善使用者不用編寫sql語句就能對資料庫進行增删改查的簡單操作。首先配置hibernate的環境,建立hibernate.cfg.xml配置檔案,裡面寫入一些連接配接資料庫的資訊,映射檔案的資訊,還有一些功能屬性

接着建立一個BaseDao<T>接口,然後寫一些通用的方法例如:

public List<T> getAll();

public T getById(Long id);

public void save(T t);

public void delete(T t);

然後建立一個BaseDaoImpl<T>實作類用來實作BaseDao<T>接口,因為使用的是hibernate是以需要在這個實作類裡面打開連接配接:

Configuration conf = new Configuration().configure();

SessionFactory sessionFactory = conf.buildSessionFactory();

Session session  = sessionFactory.openSession();

申明一個Class classt 用來接收傳遞進來的不同的T

在無參構造函數裡初始化classt

public BaseDaoImpl(){

ParameterizedType type = (ParameterizedType)this.getClass().getGenericSuperclass();

this.classt = (Class)type.getActualTypeArguments()[0];

}

實作接口的具體方法,補齊上面所舉例的方法

public List<T> getAll(){

return session.createQuery("from "+classt.getSimpleName()).list();

}

public T getById(Long id){

return (T)session.get(classt,id);

}

public void save(T t){

session.save(t);

}

public void delete(T t){

session.delete(t);

}

這樣一個很基礎的BaseDao就完成了 可以根據具體的需要在這個BaseDao裡面加入新的方法

不同的Dao可以繼承這個BaseDao來傳遞具體的持久化類

例如:interface UserDao extends BaseDao<User>{}

class UserDaoImpl extends BaseDaoImpl<User> implements UserDao{}

如果沒有額外的要求隻需這樣繼承後直接進行調用就可以完成一些基本的資料庫操作。

繼續閱讀