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

        上一节学习了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;

@Entity
public 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代码

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值