spring boot 快速开发-数据持久层

我常使用的数据层有mybatis和 jpa

mybatis 依赖

<dependency>
	<groupId>org.mybatis.spring.boot</groupId>
	<artifactId>mybatis-spring-boot-starter</artifactId>
	<version>1.3.2</version>
</dependency>

配置

#实体类
public class User {
    private String username;
    private String password;
    private String fullname;
    private Timestamp date;
     #省略get set方法
}
@JsonFormat(pattern="yyyy-MM-dd")
 在get方法上会将日期类型转换为指定格式
#映射文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.demo.dao.UserDao">
    <select id="getAllUser" resultType="com.demo.entiy.User">
        select * from user order by date desc
    </select>

    <select id="getUserByUsername" resultType="com.demo.entiy.User">
        select * from user where username = #{username}
    </select>
</mapper>
#dao层
@Mapper(一定要加,否则会无法扫描到)
public interface UserDao {
    List<User> getAllUser();

    User getUserByUsername(String username);
}
#控制器
@RestController
@RequestMapping("/test")
public class TestController {
    @Autowired
    private UserDao userDao;

    @RequestMapping(value = "/getUserAll", method = RequestMethod.GET)
    public List<User> getUserAll(){
        return userDao.getAllUser();
    }

    @RequestMapping(value = "/getUserByUsername", method = RequestMethod.GET)
    public User getUserByUsername(@RequestParam @ApiParam(name="username",value="用户名",required=true)String username){
        return userDao.getUserByUsername(username);
    }
}

spring boot 快速开发-数据持久层
spring boot 快速开发-数据持久层

jpa 依赖

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

配置

#实体类
@Entity
public class User {

    @Id
    private String username;
    private String password;
    private String fullname;
    private Timestamp date;
    #省略get set方法
}
#因为使用注解 不需要使用xml映射文件
#dao层 继承 JpaRepository 如果是int型主键 则应该使用 Integer 否则会报错
public interface UserDao extends JpaRepository<User, String> {
    # Jpa 默认属实现了findAll方法
    User findByUsername(String username);
}

命名规则
spring boot 快速开发-数据持久层