SpringBoot 的数据校验和整合JDBC

SpringBoot 的数据校验

  • 创建实体类
package com.study.entity;
​
import lombok.Data;
import org.hibernate.validator.constraints.Length;
​
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
​
@Data
public class User {
    @NotNull(message = "id不能为空")
    private Long id;
    @NotEmpty(message = "姓名不能为空")
    @Length(min = 2,message = "姓名的长度不能小于2")
    private String name;
    @Min(value = 16,message = "年龄必须大于16岁")
    private int age;
}
@GetMapping("/validator")
    public void validatorUser(@Valid User user, BindingResult bindingResult){
        System.out.println(user);
        if (bindingResult.hasErrors()){
            List<ObjectError> allErrors = bindingResult.getAllErrors();
            for (ObjectError allError : allErrors) {
                System.out.println(allError.getCode()+"--" +allError.getDefaultMessage());
            }
        }
    }

@Valid 为User添加数据校验,BindingResult 为数据校验的结果进行的一个返回!,可以通过此对象获取相应的数据校验信息。

Spring Boot 整合 JDBC

  • 1 在pom.xml 中增加依赖

<!--        引入spring boot jdbc-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
<!--        引入mysql 连接驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.46</version>
        </dependency>
  • 2 配置application.yml的数据库信息

server:
  port: 8080    # 设置服务的端口
# 设置spring mvc 的视图表现形式
spring:
  thymeleaf:   # 配置 thymeleaf 的相关模板信息
    prefix: classpath:/templates/
    suffix: .html
    mode: HTML5
    encoding: UTF-8
    servlet:
      content-type: text/html
  datasource:
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
​
  • 3 创建数据库表信息,创建 User 表

create table user
(
    name  varchar(20) null,
    age   int         null,
    score int         null,
    id    int auto_increment
        primary key
);
  • 4 创建实体类 User,以及相关的数据库操作的 Reposity 类,

    • User.java

package com.study.entity;
​
import lombok.Data;
import org.hibernate.validator.constraints.Length;
​
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
​
@Data
public class User {
    @NotNull(message = "id不能为空")
    private Long id;
    @NotEmpty(message = "姓名不能为空")
    @Length(min = 2,message = "姓名的长度不能小于2")
   private String name;
    @Min(value = 1, message = "年龄最小为1岁")
    @Max(value = 100, message = "年龄最大为100岁")
    private int age;
    @Min(value = 60,message = "成绩必须大于60分")
    private int score;
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getScore() {
        return score;
    }
    public void setScore(int score) {
        this.score = score;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}
​
    • 接口 UserReposity 以及它的实现类 UserReposityImpl

package com.study.reposity;
import com.study.entity.User;
import java.util.List;
public interface UserReposity {
   List<User> findAll();
   User findById(long id);
   void save(User user);
   void update(User user);
   void deleteById(long id);
}
    • package com.study.reposity.impl;
      import com.study.entity.User;
      import com.study.reposity.UserReposity;
      import org.springframework.beans.factory.annotation.Autowired;
      import org.springframework.jdbc.core.BeanPropertyRowMapper;
      import org.springframework.jdbc.core.JdbcTemplate;
      import org.springframework.stereotype.Repository;
      import java.util.Collection;
      import java.util.List;
      @Repository
      public class UserReposityImpl implements UserReposity{
          @Autowired
          private JdbcTemplate jdbcTemplate; // 启用spring boot的jdbc工具
          @Override
          public List<User> findAll() {
              return jdbcTemplate.query("select * from user", new BeanPropertyRowMapper<>(User.class));
          }
          @Override
          public User findById(long id) {
              return jdbcTemplate.queryForObject("select * from user where id = ?",
                      new Object[]{id}, new BeanPropertyRowMapper<>(User.class));
          }
          @Override
          public void save(User user) {
              jdbcTemplate.update("insert into user(name, age, score) value (?,?,?)",
                      user.getName(),
                      user.getAge(),
                      user.getScore());
          }
          @Override
          public void update(User user) {
              jdbcTemplate.update("update user set name = ? , age= ? , score = ? where id = ?",
                      user.getName(),
                      user.getAge(),
                      user.getScore(),
                      user.getId());
          }
          @Override
          public void deleteById(long id) {
              jdbcTemplate.update("delete from user where id = ?",id);
          }
      }
      ​

       

    • 创建对应的 Controller ,提供处理的相关RestFul API

package com.study.controller;
import com.study.entity.User;
import com.study.reposity.UserReposity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/user")
public class UserCOntroller {
    @Autowired
    private UserReposity userReposity;
    @GetMapping("/findAll")
    public List<User> findAll(){
        return userReposity.findAll();
    }
    @GetMapping("/findById/{id}")
    public User findById(@PathVariable("id") long id){
        return userReposity.findById(id);
    }
    @PostMapping("/save")
    public void save(@RequestBody User user){
        userReposity.save(user);
    }
    @PutMapping("/update")
    public void update(@RequestBody User user){
        userReposity.update(user);
    }
    @DeleteMapping("/deleteById/{id}")
    public void deleteById(@PathVariable("id") long id){
        userReposity.deleteById(id);
    }
}
​
    • 最后启动相关程序,使用postman软件工具对上面的接口进行测试

package com.study;
​
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
​
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
}

 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值