通过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{}
如果没有额外的要求只需这样继承后直接进行调用就可以完成一些基本的数据库操作。
- 通过Hibernate框架搭建简单的dao层
- hibernate的dao层
- 基于Hibernate框架的泛型DAO层---SwiftDAO
- Hibernate基于持久层框架的DAO模式应用
- Hibernate 框架的搭建及简单介绍
- ssm框架搭建(一)-Dao层搭建-mybatis
- Hibernate 对Dao层的处理实例
- 我的hibernate通用dao层
- hibernate的dao层实现条件查询
- 我的hibernate通用dao层 .
- 我的hibernate通用dao层
- hibernate的dao层通用设计
- Hibernate dao 层
- 简单Blog项目笔记之一:Hibernate管理Dao层
- dao层框架
- 利用hibernate对dao层和service层的重用
- 基于hibernate的泛型Dao框架
- sevice层和dao层的简单理解
- Android沉浸式模式的实现
- ViewPager+FragmentStatePagerAdapter 实现菜单
- Gradient Boosting Classifier sparse matrix issue using pandas and scikit
- 靛青K专访:iOS界的字幕组 -- SwiftGG 要做更多事
- popupwindow中的listview设置点击事件没响应
- 通过Hibernate框架搭建简单的dao层
- typedef用法
- 解决VS2008编译的程序在某些机器上运行提示“由于应用程序配置不正确,应用程序未能启动”的问题
- 小程序的swiper不显示图片
- GPRS Multislot operation
- ScrollView、RecyclerView、ScrollView嵌套ListView性能优化方案
- 为什么要用存储过程
- 2.13 Notification(通知)的使用
- node.js与express4.X实战--快速构建一个简单的API接口(翻译)