springboot 와 my batis 통합:매개 변수 조회 와 동적 sql

springboot 과 my batis 통합:
mapper 는 데이터베이스 의 조작 방법 을 정의 합 니 다:
@Mapper
public interface UserMapper {
     }

단일 매개 변수 처리:
    @Select("select * from t_user")
    @Results({
     
            @Result(property = "userId", column = "USER_ID"),
            @Result(property = "username", column = "USERNAME"),
            @Result(property = "password", column = "PASSWORD"),
            @Result(property = "mobileNum", column = "PHONE_NUM")
    })
    List<User> list();


다 중 매개 변수 처리:
    /**
     *   :      ,        ,     @Param  ,      EL       。
     */
    @Select("select * from t_user where username like #{username} and password like #{password}")
    @Results({
     
            @Result(property = "userId", column = "USER_ID"),
            @Result(property = "username", column = "USERNAME"),
            @Result(property = "password", column = "PASSWORD"),
            @Result(property = "mobileNum", column = "PHONE_NUM")
    })
    User get(@Param("username") String username, @Param("password") String password);

CRUD 의 고급 주석:
@SelectProvider @InsertProvider @UpdateProvider @DeleteProvider
먼저 mapper 에서 Provider 를 정의 합 니 다.Provider 란 사용자 정의 sql 문 구 를 정의 합 니 다.규칙 은 사용자 정의 할 수 있 습 니 다.
public class UserSqlProvider {
     
    /**
     *   1:        ,        SQL。
     */
    public String listByUsername(String username) {
     
        return "select * from t_user where username =#{username}";
    }
}

그리고 이 sql 문 구 를 사용 하 는 방법 을 정의 합 니 다.대응 하 는 mapper 에서 작 동 합 니 다.
    /**
     *   2:                   SQL.
     */
    @SelectProvider(type = UserSqlProvider.class, method = "listByUsername")
    @Results({
     
            @Result(property = "userId", column = "USER_ID"),
            @Result(property = "username", column = "USERNAME"),
            @Result(property = "password", column = "PASSWORD"),
            @Result(property = "mobileNum", column = "PHONE_NUM")
    })
    List<User> listByUsername(String username);

controller 에서 사용:
    @GetMapping("list/{username}")
    public List<User> listByUsername(@PathVariable("username") String username) {
     
        return userMapper.listByUsername(username);
    }

another samples:
UserSqlProvider.java   

/**
     *   2:          API     SQL。
     */
    public String getBadUser(@Param("username") String username, @Param("password") String password) {
     
        return new SQL() {
     {
     
            SELECT("*");
            FROM("t_user");
            if (username != null && password != null) {
     
                WHERE("username like #{username} and password like #{password}");
            } else {
     
                WHERE("1=2");
            }
        }}.toString();
    }

UserMapper.java

    @SelectProvider(type = UserSqlProvider.class, method = "getBadUser")
    @Results({
     
            @Result(property = "userId", column = "USER_ID"),
            @Result(property = "username", column = "USERNAME"),
            @Result(property = "password", column = "PASSWORD"),
            @Result(property = "mobileNum", column = "PHONE_NUM")
    })
    User getBadUser(@Param("username") String username, @Param("password") String password);

UserController.java
    @GetMapping("get/bad/{username}/{password}")
    public User getBadUser(@PathVariable("username") String username, @PathVariable("password") String password) {
     
        return userMapper.getBadUser(username, password);
    }

좋은 웹페이지 즐겨찾기