近期整理了对象关系映射对象的知识点,其中就涉及到了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服务进行测试。
二、测试
访问接口,观察数据库中的数据库已经查出。
查出结果: