赞
踩
近期整理了对象关系映射对象的知识点,其中就涉及到了Hibernate相关的知识及内容,在此记录一下,以免忘记!PS:虽然不一定能用的上,有备无患吧。
一、搭建项目
1)打开开发工具,选择maven项目,默认使用下一步,设定项目名称直至完成。
在pom.xml中添加依赖,依赖如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>2.6.4</version>
- <relativePath/> <!-- lookup parent from repository -->
- </parent>
- <groupId>org.example</groupId>
- <artifactId>myhibernet</artifactId>
- <version>1.0-SNAPSHOT</version>
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- <!--导入hibernate-->
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-entitymanager</artifactId>
- </dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-core</artifactId>
- </dependency>
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <scope>runtime</scope>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-jpa</artifactId>
- </dependency>
- </dependencies>
-
- </project>

2)建立yml配置文件完成链接数据库:
- server:
- port: 80
- spring:
- datasource:
- url: jdbc:mysql://localhost:3306/xxx?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT
- driver-class-name: com.mysql.cj.jdbc.Driver
- username: root
- password: xxxxxxxxx
- hikari:
- #池中最大链接数
- maximum-pool-size: 50
- #池中链接最长生命周期
- max-lifetime: 120000
- #连接允许在池中闲置的最长时间
- idle-timeout: 600000
- #等待来自池的连接的最大毫秒数
- connection-timeout: 30000
- #池中最小空闲链接数
- minimum-idle: 10

3)配置启动类
- package com.jl.nyxy;
-
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
-
- @SpringBootApplication
- public class MyhibernetApplication {
- public static void main(String[] args) {
- SpringApplication.run(MyhibernetApplication.class,args);
- }
- }
4)定义配置类
- @Configuration
- @EnableJpaRepositories
- @EnableTransactionManagement
- public class HibernateConfig {
- @Value("${spring.datasource.url}")
- private String jdbcUrl;
- @Value("${spring.datasource.username}")
- private String username;
- @Value("${spring.datasource.password}")
- private String password;
- @Value("${spring.datasource.driver-class-name}")
- private String driverClassName;
-
- @Autowired
- private SessionFactory sessionFactory;
-
- @Bean
- public DataSource dataSource(){
- return DataSourceBuilder.create()
- .url(jdbcUrl)
- .username(username)
- .password(password)
- .driverClassName(driverClassName)
- .build();
- }
-
- @Bean
- public LocalSessionFactoryBean localSessionFactoryBean(){
- Properties properties=new Properties();
- properties.setProperty("hibernate.show_sql", "true");
- properties.setProperty("hibernate.format_sql", "true");
- properties.setProperty("hibernate.hbm2ddl.auto", "update");
- /**
- * 如果是高版本的mysql,请使用MySQLDialect,低版本使用MySQL5Dialect
- */
- properties.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
- LocalSessionFactoryBean lsb=new LocalSessionFactoryBean();
- lsb.setDataSource(dataSource());
- /**
- * 设置实体类的位置
- */
- lsb.setPackagesToScan("com.jl.nyxy.pojo");
- lsb.setHibernateProperties(properties);
- return lsb;
- }
-
- @Bean
- public HibernateTemplate hibernateTemplate(){
- HibernateTemplate hibernateTemplate = new HibernateTemplate();
- hibernateTemplate.setSessionFactory(sessionFactory);
- return hibernateTemplate;
- }
-
- }

5)建立实体类
- import javax.persistence.*;
- @Entity
- @Table(name = "person")
- public class Person {
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- @Column(name = "id")
- private int id;
- @Column(name = "personName")
- private String personName;
- @Column(name = "personEmail")
- private String personEmail;
- @Column(name = "personPhone")
- private String personPhone;
- @Column(name = "contactText")
- private String contactText;
-
- /**
- *省略了get和set
- **/
- }

6)配置控制类
- @RestController
- @RequestMapping("person")
- public class PersonController {
- @Autowired
- HibernateTemplate hibernateTemplate;
-
- @RequestMapping("findAll")
- public List<Person> findAll(Person person){
- List<Person> persons = hibernateTemplate.findByExample(person);
- return persons;
- }
-
- }
以上项目搭建完成,启动SpringBoot服务进行测试。
二、测试
访问接口,观察数据库中的数据库已经查出。
查出结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。