(1)pom中添加相关依赖

     <dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.0.Final</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>4.3.22.RELEASE</version>
</dependency>

(2)声明数据源(Druid),声明Hibernate的Session工厂,声明Hibernate的事务管理器

 package cn.coreqi.config;

 import com.alibaba.druid.pool.DruidDataSource;
import org.hibernate.SessionFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.orm.hibernate5.HibernateTransactionManager;
import org.springframework.orm.hibernate5.LocalSessionFactoryBean;
import org.springframework.transaction.annotation.EnableTransactionManagement; import javax.sql.DataSource;
import java.util.Properties;
@EnableTransactionManagement
@Configuration
public class JdbcConfig {
@Bean
public DataSource dataSource(){
DruidDataSource ds = new DruidDataSource();
ds.setDriverClassName("com.mysql.jdbc.Driver");
ds.setUrl("jdbc:mysql://localhost:3306/hibernatedemo?serverTimezone=UTC");
ds.setUsername("root");
ds.setPassword("123456");
return ds;
} @Bean
public LocalSessionFactoryBean sessionFactory(DataSource dataSource){
LocalSessionFactoryBean sessionFactoryBean = new LocalSessionFactoryBean();
sessionFactoryBean.setDataSource(dataSource);
sessionFactoryBean.setPackagesToScan(new String[]{"cn.coreqi.entities"});
Properties props = new Properties();
props.setProperty("dialect","org.hibernate.dialect.MySQL8Dialect");
props.setProperty("show_sql","true");
props.setProperty("format_sql","true");
props.setProperty("hbm2ddl.auto","update");
return sessionFactoryBean;
}
@Bean
public HibernateTransactionManager transactionManager(SessionFactory sessionFactory){
return new HibernateTransactionManager(sessionFactory);
}
}

(3)编写dao

 package cn.coreqi.dao.SpringHibernate;

 import cn.coreqi.entities.Users;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.query.Query;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional; import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import java.util.List; @Repository
@Transactional
public class UsersSpringHibernate {
@Autowired
private SessionFactory sessionFactory; private Session currentSession(){
return sessionFactory.getCurrentSession();
} public int count(){
return getAll().size();
} public Users getUserByUserName(String username){
CriteriaBuilder builder = currentSession().getCriteriaBuilder();
CriteriaQuery<Users> query = builder.createQuery(Users.class);
Root<Users> root = query.from(Users.class);
query.select(root).where(builder.equal(root.get("UserName"),username));
Query<Users> q = currentSession().createQuery(query);
return q.getSingleResult();
} public List<Users> getAll(){
CriteriaBuilder builder = currentSession().getCriteriaBuilder();
CriteriaQuery<Users> query = builder.createQuery(Users.class);
Root<Users> root = query.from(Users.class);
query.select(root);
Query<Users> q=currentSession().createQuery(query);
List<Users> users=q.getResultList();
return users;
}
public Users getUserById(Integer id){
return (Users)currentSession().get(Users.class,id);
}
}

Hibernate5和Hibernate4有些区别,具体的dao编写方式请参考这篇文章  https://www.boraji.com/hibernate-5-criteria-query-example

在Spring(4.3.22)中集成Hibernate(5.4.0)的更多相关文章

  1. spring中集成hibernate

    1.hibernate框架是什么? (1)hibernate对jdbc进行的封装 (2)开源的轻量级框架. 2.hibernate思想:ORM(对象关系映射) (1)让实体类和数据库中的表一一对应(表 ...

  2. Spring Boot(5) 集成Hibernate 日志配置

    https://blog.csdn.net/ZNG_XP/article/details/78131809 https://blog.csdn.net/u011998835/article/detai ...

  3. Spring集成Hibernate映射文件的4种方式

    概要: 在Spring的applicationContext.xml中集成Hibernate映射文件,通常是在<sessionFactory>这个Bean实例中进行的,若配置的映射文件较少 ...

  4. Spring 集成 Hibernate 和 Struts 2

    在Spring中集成Hibernate,实际上就是将Hibernate中用到的数据源DataSource. SessionFactory实例(通常使用Hibernate访问数据库时,应用程序会先创建S ...

  5. Eclipse juno 中安装 JBoss Tools,集成Hibernate

    在Eclipse中集成Hibernate工具可以帮助开发者根据数据库生成映射文件.注释代码以及反向工程. Hibernate Tools作为JBoss Tools的核心组件,已经被捆绑在JBoss T ...

  6. Jenkins中集成jmeter-maven插件

    转自:http://my.oschina.net/u/1377774/blog/168969 目录[-] 第一步.先在maven工程中单独使用jmeter-maven插件 0.环境 1.在POM.xm ...

  7. 【实验一 】Spring Boot 集成 hibernate & JPA

    转眼间,2018年的十二分之一都快过完了,忙于各类事情,博客也都快一个月没更新了.今天我们继续来学习Springboot对象持久化. 首先JPA是Java持久化API,定义了一系列对象持久化的标准,而 ...

  8. Spring 集成Hibernate的三种方式

    首先把hibernate的配置文件hibernate.cfg.xml放入spring的src目录下,并且为了便于测试导入了一个实体类Student.java以及它的Student.hbm.xml文件 ...

  9. spring mvc 集成hibernate步骤

    今天从头把hibernate集成进入springMVC框架中,把过程记录下来. 1.首先要在监听器配置文件中加入hibernate支持,如下: <?xml version="1.0&q ...

随机推荐

  1. 自学Linux Shell4.3-处理数据文件sort grep gzip tar

    点击返回 自学Linux命令行与Shell脚本之路 4.3-处理数据文件sort grep gzip tar ls命令用于显示文件目录列表,和Windows系统下DOS命令dir类似.当执行ls命令时 ...

  2. 「THUSCH 2017」大魔法师 解题报告

    「THUSCH 2017」大魔法师 狗体面太长,帖链接了 思路,维护一个\(1\times 4\)的答案向量表示\(A,B,C,len\),最后一个表示线段树上区间长度,然后每次的操作都有一个转移矩阵 ...

  3. 洛谷 P2764 最小路径覆盖问题 解题报告

    P2764 最小路径覆盖问题 问题描述: 给定有向图\(G=(V,E)\).设\(P\) 是\(G\) 的一个简单路(顶点不相交)的集合.如果\(V\) 中每个顶点恰好在\(P\) 的一条路上,则称\ ...

  4. go vendor目录

    参考 https://blog.csdn.net/u010649766/article/details/80327035 那么查找依赖包路径的解决方案如下: 当前包下的vendor目录. 向上级目录查 ...

  5. Linux 常用命令——cat, tac, nl, more, less, head, tail, od

    Drecik学习经验分享 转载请注明出处:http://blog.csdn.net/drecik__/article/details/8453584 1. cat 由第一行开始显示文件内容 2. ta ...

  6. 关闭应用程序(主程序)(WPF)

    很多人认为关闭应用程序应该很简单,例如WindowsForm里一个Application.Exit();方法就可以解决问题,但在WPF里面可别滥用,因为WPF里Application类没有该方法,倒是 ...

  7. DTLS协议中client/server的认证过程和密钥协商过程

    我的总结:DTLS的握手就是协商出一个对称加密的秘钥(每个客户端的秘钥都会不一样),之后的通信就要这个秘钥进行加密通信.协商的过程要么使用非对称加密算法进行签名校验身份,要么通过客户端和服务器各自存对 ...

  8. nginx 配置后网站图片加载出来一半或者不出来

    项目进行nginx反向代理后发现图片和js.css等加载很慢,甚至加载不出来. 然后查看nginx的log,发现错误如下: 2016/06/30 15:31:12 [crit] 29465#0: *1 ...

  9. Create ISO library over NFS for XEN server templates

    Based on Ubuntu – Server – install NFS on Ubuntu  – aptitude -y install nfs-kernel-server create a “ ...

  10. 1、JDBC-Connection

    新建Maven工程 pom.xml <dependencies> <dependency> <groupId>mysql</groupId> <a ...