springboot使用hibernate的SessionFactory实现BaseDao
来源:互联网 发布:windows账户有什么用 编辑:程序博客网 时间:2024/05/29 23:24
使用场景:
在简单的大表单CRUD里面,并不一定需要非常灵活的sql或者hql,在非常多的表单和一堆字段面前,灵活反而成了积累。
Hibernate+泛型对象存储,反而成了简单粗暴,最快的解决方式。那么springboot/默认用的是data-jap,而data-Jap用的是EntityManagerFactory。
这让以前的BaseDao不能用了么?随后查了下API,发现了
HibernateJpaSessionFactoryBean
对就是他,下面上代码:
首先是yml
jpa: hibernate: ddl-auto: none show-sql: true database-platform: org.hibernate.dialect.Oracle10gDialect database: oracle properties: hibernate: current_session_context_class: org.springframework.orm.hibernate4.SpringSessionContext然后是App启动类里面需要注入上面的那个bean
@Beanpublic HibernateJpaSessionFactoryBean sessionFactory() { return new HibernateJpaSessionFactoryBean();}
最后也是比较重要的一点,以前SpringMVC里的环境里面配置事务,是用xml配置的,boot里面这么干净的代码
,如果再去配置XML,这是一个强迫症很难接受的。
@Transactional //这里直接简单粗暴加上spring的事务管理@Repository("aBaseDao")public class ABaseDaoImpl implements ABaseDao {//your implemention}//下面是测试代码import com.alibaba.fastjson.JSON;import com.xyz.dao.ABaseDao;import com.xyz.model.SysLogs;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import javax.annotation.Resource;import java.sql.Timestamp;import java.util.List;/** * Created by dell on 2017/10/6. */@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTestpublic class TestDao { @Resource private ABaseDao aBaseDao; @Test public void test_database(){ String sql = "select sysdate from dual"; Timestamp result = (Timestamp) aBaseDao.findBySQL(sql).uniqueResult(); System.out.println(result); List<SysLogs> list = aBaseDao.findAll(SysLogs.class); System.out.println(JSON.toJSONString(list)); }}//Hibernate: select sysdate from dual
//2017-10-06 22:51:21.0
//Hibernate: select syslogs0_.id as id1_0_, syslogs0_.logdate as logdate2_0_, syslogs0_.longmsg as longmsg3_0_, syslogs0_.message as message4_0_, syslogs0_.note as note5_0_, syslogs0_.part_id as part_id6_0_, syslogs0_.type as type7_0_, syslogs0_.xzbm as xzbm8_0_ from sys_logs syslogs0_
//[{"id":1,"logdate":1507171170000,"message":"123123123"},{"id":2,"message":"ceshi"}]
阅读全文
0 0
- springboot使用hibernate的SessionFactory实现BaseDao
- hibernate 的SessionFactory的实现
- BaseDao的实现与使用
- Spring Hibernate 4.0 BaseDao的实现
- Hibernate实现BaseDao
- springboot的通用BaseDAO写法
- Hibernate常用的BaseDao
- 基于hibernate的BaseDao
- 基于hibernate的BaseDao及其实现类的设计
- 基于hibernate的BaseDao及其实现类的设计
- mybatis-basedao的实现
- BaseDao多线程的实现
- 学习Hibernate常用的BaseDao
- 基于hibernate的BaseDAO接口
- 基于Hibernate的BaseDao类
- 基于Hibernate的BaseDao类
- 基于hibernate的BaseDAO接口
- 基于hibernate的BaseDAO接口
- HDU1203 I NEED A OFFER!-概率dp
- vue 设置多个反向代理以及easy-mock的简单的使用方法
- POST和GET请求的区别
- XVII Open Cup named after E.V. Pankratiev. Grand Prix of SPb D cutting potatoes
- 未添加安全组规则设置导致通过公网IP地址不能访问ECS云服务器
- springboot使用hibernate的SessionFactory实现BaseDao
- include指令和include动作的区别
- 使用GDlib在图片上绘制文本
- 统计学名词——偏差
- 拉格朗日插值法
- 用递归实现1到100的和,1到10的阶乘
- SpnnableString 初体验
- druid查看统计的监控信息
- 使用IAR创建库以及如何使用库