mybatis注解实现动态SQL

144 阅读1分钟

MyBatis提供了多种方式来配置SQL语句,其中注解配置是其中一种。注解配置SQL的实现方式主要有以下几种:

  1. @Select注解:用于配置查询语句,其参数为SQL语句。示例:

    @Select("SELECT * FROM user WHERE id = #{id}")
    User getUserById(int id);
    
  2. @Insert注解:用于配置插入语句,其参数为SQL语句。示例:

    @Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})")
    int addUser(User user);
    
  3. @Update注解:用于配置更新语句,其参数为SQL语句。示例:

    @Update("UPDATE user SET name=#{name}, age=#{age} WHERE id=#{id}")
    int updateUser(User user);
    
  4. @Delete注解:用于配置删除语句,其参数为SQL语句。示例:

    @Delete("DELETE FROM user WHERE id=#{id}")
    int deleteUser(int id);
    
  5. @Result注解:用于配置结果映射,其参数为属性名和列名的对应关系。示例:

    @Results({
        @Result(property = "id", column = "id"),
        @Result(property = "name", column = "name"),
        @Result(property = "age", column = "age")
    })
    @Select("SELECT \* FROM user WHERE id = #{id}")
    User getUserById(int id);
    

以上就是MyBatis注解配置SQL的实现方式。需要注意的是,使用注解配置SQL语句时,需要在配置文件中开启注解扫描。例如,在mybatis-config.xml配置文件中添加以下内容:

<configuration> 
    <mappers>        
        <mapper class="com.example.UserMapper" />    
    </mappers>    
    <settings>        
        <setting name="mapUnderscoreToCamelCase" value="true" />    
    </settings>
</configuration>

其中,mapper标签的class属性指定了使用注解配置SQL的Mapper接口。同时,settings标签中的mapUnderscoreToCamelCase属性用于开启驼峰命名转换。