Spring Boot教程 | 第二篇:使用Spring Data JPA、Hikari连接池操作MySQL数据库

本文是Spring Boot教程的第二篇,讲解如何使用Spring Data JPA和Hikari连接池操作MySQL数据库。首先介绍了Spring Data JPA的简化持久层功能,以及Hikari作为最快连接池的优势。接着详细阐述了配置依赖、数据源连接设置、实体类创建以及RESTful接口编写的过程,最后总结了data jpa的基本用法,并预告了后续教程的内容。
摘要由CSDN通过智能技术生成

一、简介

Spring Boot完整教程 | 主页及目录

Spring Data JPA,它的底层是用Hibernate实现的,相当于封装了一道Hibernate。目的是帮我们简化持久层的代码。

Hikari:截止2019年7月,Hikari号称java平台最快的连接池......

 

二、配置及操作

2.1引入依赖

pom中引入spring-boot-starter-data-jpa依赖,以及MySQL连接类mysql-connector-java依赖,springboot 2.0 后默认连接池就是Hikari了,所以引用parents后不用专门加依赖。

为了减少实体类或虚拟实体类的代码,引入lombok依赖。Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。例如开发中经常需要写的实体类,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现大量的getter/setter方法,这些显得很冗长也没有太多技术含量,一旦修改属性,就容易出现忘记修改对应方法的失误。Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法。

完整pom如下:

<?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.1.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.kcsm.training</groupId>
    <artifactId>bootdemo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>bootdemo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </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>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.20</version>
            <scope>provided</scope>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

2.2 配置数据源连接

在application.properties配置文件中进行配置,配置如下,:(更为详细的配置信息详见最后的附件)

#应用名称
spring.application.name=bootdemo
server.port=8080

# 数据库连接配置
# jdbc_config   datasource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url= jdbc:mysql://127.0.0.1:3306/alh?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&serverTimezone=Asia/Shanghai
spring.datasource.username=sa
spring.datasource.password=123456
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect

# hibernate配置(jpa底层使用hibernate配置实现)
##映射方式配置,PhysicalNamingStrategyStandardImpl,名称不做修改加工。
##映射方式配置,若配置成SpringPhysicalNamingStrategy,在进行映射时,首字母小写,大写字母变为下划线加小写
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
##ddl-auto配置属性:create 启动时删数据库中的表,然后创建;create-drop 启动时删数据库中的表,然后创建,如果表不存在报错;
##update 如果启动时表格式不一致则更新表,原有数据保留;validate 项目启动表结构进行校验 如果不一致则报错
##生产环境中请勿配置,否则会导致严重的生产事故!,生产时使用spring cloud远程配置中心统一配置各项参数
spring.jpa.hibernate.ddl-auto=update

##控制台是否打印sql,默认false,生产时建议关闭
spring.jpa.show-sql=true

# 连接池配置
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
## 最小连接数
spring.datasource.hikari.minimum-idle=5
## 最大连接数
spring.datasource.hikari.maximum-pool-size=15
## 此属性控制从池返回的连接的默认自动提交行为,默认值:true
spring.datasource.hikari.auto-commit=true
## 连接允许在池中闲置的最长时间,默认600000(10分钟),单位ms
spring.datasource.hikari.idle-timeout=30000
## 连接池名称
spring.datasource.hikari.pool-name=UserHikariCP
## 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟,单位ms
spring.datasource.hikari.max-lifetime=1800000
## 数据库连接超时时间,默认30秒,即30000,单位ms
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.connection-test-query=SELECT 1

创建entity包,创建实体类

@Data注解后自动生成getter/setter、equals、hashcode、toString方法(lombok提供的功能)

package com.kcsm.training.bootdemo.entity;

import lombok.*;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;

/**
 * 学生实体类
 *
 * @author lqk
 * @date 2019/7/9 11:41
 */
@Entity
@Table(name = "STUDENT")
@Data
public class Student {

    /**
     * 主键
     */
    @Id
    @GeneratedValue(generator = "guidGenerator")
    @GenericGenerator(name = &#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值