通过Hibernate框架搭建简单的dao层

来源:互联网 发布:博奥软件 编辑:程序博客网 时间:2024/05/18 13:10

  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{}

如果没有额外的要求只需这样继承后直接进行调用就可以完成一些基本的数据库操作。

0 0
原创粉丝点击