SpringBoot学习之路(X5)- 整合JPA

版权声明:博客对我来说是记忆的笔记和知识的分享~非常感谢博客大神的帮助,若有无意侵权,请您联系我,谢谢^_^!转载请声明出处: https://blog.csdn.net/qq_36698956/article/details/86527286

JPA应用

1、创建应用

选中web模块、JPA、MySql和JDBC(不用选中JDBC也可以,只要跟数据相关的模块,会自动导入JDBC的)
在这里插入图片描述

2、导入依赖

<!-- jpa  -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- jdbc -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- 日志 -->
<dependency>
	<groupId>Repository.org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-logging</artifactId>
	<version>1.5.9.RELEASE</version>
</dependency>
<!--引入druid数据源-->
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>druid</artifactId>
	<version>1.1.8</version>
</dependency>
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
	<groupId>org.mybatis.spring.boot</groupId>
	<artifactId>mybatis-spring-boot-starter</artifactId>
	<version>1.3.0</version>
</dependency>
<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<version>5.1.25</version>
</dependency>
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-test</artifactId>
	<scope>test</scope>
</dependency>

3、依赖图查看

在这里插入图片描述

4、创建实体类 - 配置JPA注解映射

package com.yhhy.springboot.bean;
import javax.persistence.*;
import java.util.Date;
//使用JPA注解配置映射关系
@Entity //告诉JPA这是一个实体类(和数据表映射的类)
@Table(name = "student") //@Table来指定和哪个数据表对应;如果省略默认表名就是student
public class Student {
    @Id //这是一个主键
    @GeneratedValue(strategy = GenerationType.IDENTITY) //自增主键
    private Integer id;
    @Column(name = "stu_name",length = 50)//这是和数据表对应的一个列
    private String stuName;
    @Column //省略 默认列名就是属性名
    private String pwd;
    @Column //省略 默认列名就是属性名
    private String md5;
    @Column //省略 默认列名就是属性名
    private Date date;

    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }

    public String getStuName() {
        return stuName;
    }

    public void setStuName(String stuName) {
        this.stuName = stuName;
    }
    public String getPwd() {
        return pwd;
    }
    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
    public String getMd5() {
        return md5;
    }
    public void setMd5(String md5) {
        this.md5 = md5;
    }
    public Date getDate() {
        return date;
    }
    public void setDate(Date date) {
        this.date = date;
    }
}

5、创建接口 继承 JPA接口:JpaRepository<T, ID>

package com.yhhy.springboot.repository;

import com.yhhy.springboot.bean.Student;
import org.springframework.data.jpa.repository.JpaRepository;
//继承JpaRepository来完成对数据库的操作
//JpaRepository的两个泛型,第一个:实体类  第二个:主键的类型
public interface StuRepository extends JpaRepository<Student,Integer>{
}

在这里插入图片描述
实现的是子级接口,等于拥有了所有的方法
可查看此篇文章:
SpringBoot学习之路(X4)- 整合Spring Data - JPA
在这里插入图片描述

6、yml文件配置

spring:
  datasource:
    username: root
    password: root
    url: jdbc:mysql://192.168.2.17:3306/student01
    driver-class-name: com.mysql.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
#   数据源其他配置
    initialSize: 5
    minIdle: 5
    maxActive: 20
    maxWait: 60000
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    validationQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    poolPreparedStatements: true
#   配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
    filters: stat,wall,log4j
    maxPoolPreparedStatementPerConnectionSize: 20
    useGlobalDataSourceStat: true
#   通过connectProperties属性来打开mergeSql功能;慢SQL记录
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
  jpa:
    hibernate:
#    控制台显示Sql语句
    show-sql: true
#      更新或者创建数据表结构,如果数据库没有此表会根据实体类进行创建或更新
#      ddl-auto: update
mybatis:
  config-location: classpath:mybatis/mybatis-config.xml #指定全局配置文件的位置
  mapper-locations: classpath:mybatis/mapper/*.xml  #指定sql映射文件的位置

主要是:
在这里插入图片描述

7、创建 Controller

package com.yhhy.springboot.controller;

import com.yhhy.springboot.bean.Student;
import com.yhhy.springboot.repository.StuRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class Stu02Controller {
	//注入接口
    @Autowired
    StuRepository stuRepository;

    /**
     * 获取一个学生
     * @param id
     * @return
     */
    @GetMapping("/stu02/{id}")
    public Student getStu(@PathVariable("id") Integer id){
        List<Student> all = stuRepository.findAll();
        return  stuRepository.getOne(id);
    }
}

8、查看结果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_36698956/article/details/86527286