下面是关于MyBatis Plus常用注解的具体使用攻略。
简介
MyBatis Plus是一个开源的基于MyBatis的ORM框架,可以用于快速的进行Java Web应用的开发。MyBatis Plus提供了很多方便的注解,用于简化SQL语句编写和提高开发效率。
常用注解
@TableName
@TableName
注解用于标识当前实体对应的表名。如果实体名称与表名不同,可以使用此注解指定表名,否则不需要使用此注解。
@TableName("user_info")
public class User {
private Long id;
private String name;
private Integer age;
//省略getters and setters方法
}
@TableId
@TableId
注解用于标识当前实体对应的主键字段。如果实体类中只有一个主键字段,可以不需要使用此注解;如果有多个主键字段,则需要使用此注解来指定主键字段。
public class User {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
//省略getters and setters方法
}
@TableField
@TableField
注解用于标识当前字段对应的表字段。如果实体类中字段名与表字段名相同,可以不需要使用此注解;否则需要使用此注解指定表字段名。
public class User {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@TableField("user_name")
private String name;
private Integer age;
//省略getters and setters方法
}
@EnumValue
@EnumValue
注解用于标识当前字段对应的枚举值。如果实体类中字段类型是枚举类型,可以使用此注解指定枚举的值。
public enum Gender {
Male(1, "男"),
Female(2, "女");
@EnumValue
private final int value;
private final String desc;
//省略构造方法和getters方法
}
public class User {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
private Gender gender;
//省略getters and setters方法
}
@SqlParser
@SqlParser
注解用于标识当前方法中的SQL语句使用了自定义的SQL解析器。如果需要自定义SQL解析器,可以使用此注解标识当前方法中需要使用自定义的SQL解析器。
public interface UserMapper extends BaseMapper<User> {
@SqlParser(handler = MySqlParser.class)
@Select("select * from user where id = #{id}")
User getById(@Param("id") Long id);
}
示例说明
示例1:使用@TableName注解
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@TableName("book_info")
public class Book {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private String name;
private String author;
}
public interface BookMapper extends BaseMapper<Book> {
}
在实体类Book
上使用@TableName
注解标识表名为book_info,然后在BookMapper
中继承BaseMapper
,即可直接使用MyBatis Plus提供的通用CRUD方法。
示例2:使用@EnumValue注解
public enum Status {
RUNNING(1, "运行中"),
STOPPED(2, "已停止"),
UNKNOWN(0, "未知状态");
@EnumValue
private int value;
private String desc;
Status(int value, String desc) {
this.value = value;
this.desc = desc;
}
}
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@TableName("server_info")
public class Server {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private String name;
private String url;
private Status status;
}
public interface ServerMapper extends BaseMapper<Server> {
}
在实体类Server
中使用@EnumValue
注解标识status字段对应的枚举值,然后在ServerMapper
中继承BaseMapper
,即可直接使用MyBatis Plus提供的通用CRUD方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mybatis plus常用注解的具体使用 - Python技术站