MyBatis常用注解有哪些?
MyBatis框架提供了一系列注解,用于简化XML映射文件的使用。以下是一些常用的MyBatis注解:
- @Select:这个注解用于指定用来从数据库中查询数据的SQL语句。
““java
@Select(“SELECT * FROM users WHERE id = #{id}”)
User selectUser(int id);“`
</p></li>
<li><p><strong>@Insert</strong>:这个注解指定了用来向数据库插入数据的SQL语句。““java
@Insert(“INSERT INTO users(name, age) VALUES(#{name}, #{age})”)
void insertUser(User user);“`
</p></li>
<li><p><strong>@Update</strong>:这个注解指定了用来修改数据库中数据的SQL语句。““java
@Update(“UPDATE users SET name = #{name}, age = #{age} WHERE id = #{id}”)
void updateUser(User user);“`
</p></li>
<li><p><strong>@Delete</strong>:这个注解指定了用来从数据库中删除数据的SQL语句。““java
@Delete(“DELETE FROM users WHERE id = #{id}”)
void deleteUser(int id);“`
</p></li>
<li><p><strong>@Results</strong> 和 <strong>@Result</strong>:这两个注解用于映射数据库表中的列到对象的属性。““java
@Results({
@Result(property = “id”, column = “id”),
@Result(property = “name”, column = “name”),
@Result(property = “age”, column = “age”)
})
@Select(“SELECT * FROM users”)
ListselectAllUsers(); “`
</p></li>
<li><p><strong>@Param</strong>:这个注解用于给方法参数命名,参数名就能直接在SQL语句中使用。““java
@Select(“SELECT * FROM users WHERE name = #{name}”)
User selectUserByName(@Param(“name”) String name);“`
</p></li>
<li><p><strong>@Mapper</strong>:这个注解用于标记接口为一个MyBatis的mapper接口,MyBatis会自动扫描标记了@Mapper的接口并生成实现。““java
@Mapper
public interface UserMapper {
// …
}“`
-
@Options:这个注解用于设置一些MyBatis的特性,比如是否使用缓存,是否自动获取生成的数据库键等。
-
@ResultMap:这个注解引用定义在Mapper XML文件中的一个ResultMap。
-
@SelectProvider, @InsertProvider, @UpdateProvider, @DeleteProvider:这些注解用来动态构建SQL语句。
这些注解提供了一种更简洁的方法来写SQL语句,无需在XML文件中书写大量的映射代码。但请注意,注解的方式可能不适合处理复杂的SQL语句和动态SQL语句。对于这些情况,你可能需要使用XML映射文件。