- 依赖
<!--jpa--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.21</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.19</version> </dependency>
- 入口类
@SpringBootApplication public class TemplateApplication { public static void main(String[] args) { SpringApplication.run(TemplateApplication.class, args); } }
- application.yml
# mysql datasource: url: jdbc:mysql://localhost:3306/springBoot?useUnicode=true&characterEncoding=UTF-8 username: root password: 123456 driver-class-name: com.mysql.jdbc.Driver jpa: properties: hibernate: dialect: org.hibernate.dialect.MySQL5Dialect hibernate: dialect: org.hibernate.dialect.MySQL5Dialect show_sql: true hbm2ddl: auto: update entitymanager: packagesToScan: com.futao.entity
- 新建HibernateConfiguration.java配置类
package com.futao; import com.alibaba.druid.pool.DruidDataSource; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.jdbc.datasource.DriverManagerDataSource; import org.springframework.orm.hibernate4.LocalSessionFactoryBean; import org.springframework.transaction.annotation.EnableTransactionManagement; import javax.sql.DataSource; import org.springframework.orm.hibernate5.HibernateTransactionManager; import java.util.Properties; /** * @author futao * Created on 18-6-7-下午5:26. */ @Configuration @EnableTransactionManagement public class HibernateConfiguration { @Value("${spring.datasource.driver-class-name}") private String DRIVER; @Value("${spring.datasource.password}") private String PASSWORD; @Value("${spring.datasource.url}") private String URL; @Value("${spring.datasource.username}") private String USERNAME; @Value("${spring.jpa.properties.hibernate.dialect}") private String DIALECT; @Value("${hibernate.show_sql}") private String SHOW_SQL; @Value("${hibernate.hbm2ddl.auto}") private String HBM2DDL_AUTO; @Value("${entitymanager.packagesToScan}") private String PACKAGES_TO_SCAN; /** * @return */ @Bean(value = "sessionFactory") public LocalSessionFactoryBean sessionFactory() { LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean(); sessionFactory.setDataSource(dataSource()); sessionFactory.setPackagesToScan(PACKAGES_TO_SCAN); Properties hibernateProperties = new Properties(); hibernateProperties.put("hibernate.dialect", DIALECT); hibernateProperties.put("hibernate.show_sql", SHOW_SQL); hibernateProperties.put("hibernate.hbm2ddl.auto", HBM2DDL_AUTO); sessionFactory.setHibernateProperties(hibernateProperties); return sessionFactory; } /** * @return */ @Bean public DataSource dataSource() { DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName(DRIVER); dataSource.setUrl(URL); dataSource.setUsername(USERNAME); dataSource.setPassword(PASSWORD); dataSource.setInitialSize(10); dataSource.setMinIdle(10); dataSource.setMaxActive(100); return dataSource; } }
- service
package com.futao.service; import com.futao.entity.User; import com.futao.mapper.UserMapper; import face.com.futao.service.IUserService; import org.apache.ibatis.annotations.Result; import org.hibernate.SessionFactory; import org.hibernate.criterion.Criterion; import org.hibernate.criterion.Restrictions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.orm.hibernate4.LocalSessionFactoryBean; import org.springframework.stereotype.Repository; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Isolation; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import java.util.List; /** * @author futao * Created on 18-6-7-上午11:29. */ @Transactional @Service public class UserService implements IUserService { @Autowired @Qualifier("sessionFactory") private SessionFactory sessionFactory; /** * 添加用户 * * @param user * @return */ @Override public int add(User user) { sessionFactory.getCurrentSession().save(user); return 1; } public List<User> list() { List list = sessionFactory.getCurrentSession().createCriteria(User.class) .add(Restrictions.ge("age", 10)) .list(); return (List<User>) list; } }
OJBK
源码:https://gitee.com/FutaoSmile/springboot
参考:Spring Boot Hibernate example
参考:Spring Boot + Hibernate 5 + Mysql Example
Bing国际版:https://cn.bing.com/?ensearch=1&FORM=BEHPTB