Spring boot结合Spring-Data-JPA操作MySQL数据库

来源:互联网 发布:手机wifi扫描不到网络 编辑:程序博客网 时间:2024/05/22 07:40

        上一节学习了Spring-boot的基本知识,这一节进一步学习一下Spring-boot结合Spring-Data-JPA操作MySQL数据库。首先介绍JPA:Java Persistence API,定义了一系列对象持久化的标准,是一个标准。

第一步:在配置文件中引入Spring-Data-JPA和MySQL的依赖


<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency>
第二步:在yml配置文件中配置数据库的地址及相应的jpa。【在我的本地安装的MySQL中已经创建了数据库learn】


spring:  server:      port:8081  datasource:     driver-class-name: com.mysql.jdbc.Driver     url: jdbc:mysql://127.0.0.1:3306/learn     username: root     password: admin  jpa:    hibernate:      ddl-auto: update  # create每次运行都删除原有表创建新表,update不用每次创建新表    show-sql: true # 打印SQL语句
第三步:建立数据库中表对应的实体类student


package com.example.domain;import javax.persistence.Entity;import javax.persistence.Id;import javax.validation.constraints.Min;@Entitypublic class Student {    @Id    @Min(value = 20110001, message = "学号不得小于20110001")    private int sno;    private String name;    private String major;    public Student(){    }    public int getSno() {        return sno;    }    public void setSno(int sno) {        this.sno = sno;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getMajor() {        return major;    }    public void setMajor(String major) {        this.major = major;    }    @Override    public String toString() {        return "Student{" +                "sno=" + sno +                ", name='" + name + '\'' +                ", major='" + major + '\'' +                '}';    }}
此时运行程序,数据库中已经成功创建了一张表Student


第四步:数据库操作

(1)查看数据库表

新建StudentRespository接口继承自JpaRepository,然后在StudentController.java中装配,并调用对应方法即可


package com.example.repository;import com.example.domain.Student;import org.springframework.data.jpa.repository.JpaRepository;import java.util.List;public interface StudentRepository extends JpaRepository<Student, Integer>{    //通过major来选择学生    public List<Student> findStudentsByMajor(String major);}



(2)添加一个学生


(3)根据学号查学生信息


(4)更新学生信息


(5)删除学生信息


(6)通过专业选择学生,此时在JpaRepository中并没有对应的接口,所以需要首先在StudentRepository中定义根据专业选择学生的接口,然后在StudentController中直接调用该方法即可



(7)批量添加学生。由于上面的逻辑都不复杂,所以并没有建立专门的service来处理数据逻辑,因此在这里,首先建立一个StudentService类,在其中定义好添加学生的方法,然后在StudentController中调用即可



(8)对添加的属性进行验证,比如在数据库中插入学生信息时,学号不得小于“20110001”。

        对原代码做以下修改:

        a)在Student实体类的sno属性上加@Min关键字(value为最小值、message为提示信息);

        b)将StudentController.java中的addStudent方法的参数修改为Student对象,这样可以使对象属性增多时不用修改此处的代码,同时在参数前加@Valid注解,表示对该参数进行验证,验证返回的参数BindingResult。



参考资料:http://www.imooc.com/learn/767

Git代码

原创粉丝点击