MyBatis注解模式

2020-01-13  本文已影响0人  夜空中乄最亮的星

MyBatis注解方式实现DAO接口,一般用于简单的sql语句,比如简单条件下的单表操作,复杂的sql使用该方式太繁琐,不易于维护;


@Repository
public interface UserMapper {

    @Select("SELECT id,name FROM user where age>=#{age} LIMIT 10")
    List<User> getUserList(Byte age);

    @Select("SELECT id,username FROM user LIMIT 1")
    User getOne();

    @Insert("INSERT INTO user(name,age) values(#{name},#{age})")
    Integer add(User user);
    
    @Update("UPDATE user SET name=#{name},age=#{age} WHERE id=#{id}")
    Integer update(User user);

}

有几点需要说明:

在sql中需要传入的变量是复杂或者不确定的,如果每个变量都需要对应一个入参,那就没法玩了。但是方法中可以传入一个对象,MyBatis允许我们在sql语句里直接使用相应的属性作为变量即可,作为新手以为需要这样用:

SELECT id,name FROM user where age>=#{user.age} LIMIT 10

其实完全没必要,直接写对象属性即可~!

答案是否定的,在参数占位符 #{} 进行变量替换时,会自动加上单引号

上一篇文章已经提及,必须在jdbc连接参数上带上 useAffectedRows=true ,否则返回结果不正确;

注解模式差不多就遇到这些问题,如果是更复杂的sql语句,请使用xml方式处理;

上一篇 下一篇

猜你喜欢

热点阅读