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);
}
}