一个SpringBoot+Spring-data-jpa访问数据库的基础示例

in 笔记 with 1 comment

在pom.xml里添加依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
  <dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
</dependency>

在application.xml中配置:数据库连接信息

spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

Spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.show-sql=true

创建数据库表

CREATE TABLE `test_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `age` int(255) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

创建实体类

@Entity //注解为实体类
public class TestUser {
    //设置为主键id
    @Id 
    //GeneratedValue(strategy = GenerationType.IDENTITY) 表示自增长方式使用mysql自带的
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id ;

    private String name ;

    private Integer age ;
    //get set 方法
}
/*
JSR提供的校验注解:         
@Null   被注释的元素必须为 null    
@NotNull    被注释的元素必须不为 null    
@AssertTrue     被注释的元素必须为 true    
@AssertFalse    被注释的元素必须为 false    
@Min(value)     被注释的元素必须是一个数字,其值必须大于等于指定的最小值    
@Max(value)     被注释的元素必须是一个数字,其值必须小于等于指定的最大值    
@DecimalMin(value)  被注释的元素必须是一个数字,其值必须大于等于指定的最小值    
@DecimalMax(value)  被注释的元素必须是一个数字,其值必须小于等于指定的最大值    
@Size(max=, min=)   被注释的元素的大小必须在指定的范围内    
@Digits (integer, fraction)     被注释的元素必须是一个数字,其值必须在可接受的范围内    
@Past   被注释的元素必须是一个过去的日期    
@Future     被注释的元素必须是一个将来的日期    
@Pattern(regex=,flag=)  被注释的元素必须符合指定的正则表达式    


Hibernate Validator提供的校验注解:  
@NotBlank(message =)   验证字符串非null,且长度必须大于0    
@Email  被注释的元素必须是电子邮箱地址    
@Length(min=,max=)  被注释的字符串的大小必须在指定的范围内    
@NotEmpty   被注释的字符串的必须非空    
@Range(min=,max=,message=)  被注释的元素必须在合适的范围内
*/

针对实体类创建对应的Repository接口实现对该实体的数据访问

public interface TestUserRepository extends JpaRepository<TestUser , Integer> {
}

创建对应的控制器

@RestController
public class TestUserController {

    @Autowired
    TestUserRepository testUserRepository;

    @RequestMapping(value = "/adduser/{name}/{age}" , method = RequestMethod.GET)
    public TestUser addUser(@PathVariable String name , @PathVariable Integer age){
        TestUser testUser = new TestUser();
        testUser.setName(name);
        testUser.setAge(age);
        return testUserRepository.save(testUser);
    }

    @RequestMapping(value = "/user" , method = RequestMethod.GET)
    public List<TestUser> listUser(){
        return testUserRepository.findAll();
    }
}

启动服务器访问https://localhost:8080/user

数据为空
访问https://localhost:8080/adduser/tom/16
springboot
再次访问https://localhost:8080/user

数据已成功添加进去

Responses
  1. 噗,博主,我已经给你邮箱发送信息了,希望能看到

    Reply