bean对象:
@Data
public class Persion {
private Long age;
private String name;
private Integer age;
private String sex;
}
使用注解开发把sql写在注解上就不需要mapp.xml文件了
方式一: 在注解上直接编写sql
依查询为例:
@Mapper
public interface PersionMapper {
@Select("select " +
"* " +
"FROM persion " +
"WHERE age = #{age} AND sex = #{sex} ")
List<Persion> select(@Param("age") Integer age , @Param("sex") String sex );
}
这种方法适合编写简单SQL
用法相同的其他标签:
注解 | 含义 | 描述 |
---|---|---|
@Insert | 插入sql | 作用在方法上,和xml insert sql语法完全一样 |
@Select | 查询sql | 作用在方法上,和xml insert sql语法完全一样 |
@Update | 更新sql | 作用在方法上,和xml insert sql语法完全一样 |
@Delete | 删除sql | 作用在方法上,和xml insert sql语法完全一样 |
方式二: 使用方法拼接sql
接口:
public interface PersionMapper {
@UpdateProvider(type = SqlConstruction.class, method = "method")
int updateByAreplyIds(@Param("ids") List<Long> ids);
//type 类,method 方法名, 返回值是string类型的方法
}
构造sql的类:
public class SqlConstruction {
public String method(List<Long> ids){
StringBuilder sb = new StringBuilder();
sb.append("UPDATE persion \n");
sb.append("SET age = 18 \n");
sb.append("WHERE id in");
sb.append("(");
int size = ids.size();
for (int i = 0; i <size; i++) {
sb.append(areplyIds.get(i));
if (i < size - 1) {
sb.append(",");
}
}
sb.append(")");
return sb.toString();
}
}
这种方式适合编写复杂sql 比如sql 的批量操作,
用法相同的其他标签:
注解 | 含义 | 描述 |
---|---|---|
@InsertProvider | 插入sql | 作用在方法上,和xml insert sql语法完全一样 |
@SelectProvider | 查询sql | 作用在方法上,和xml insert sql语法完全一样 |
@UpdateProvider | 更新sql | 作用在方法上,和xml insert sql语法完全一样 |
@DeleteProvider | 删除sql | 作用在方法上,和xml insert sql语法完全一样 |
mybatis常用注解
注解 | 含义 | 描述 |
---|---|---|
@Insert | 插入sql | 作用在方法上,和xml insert sql语法完全一样 |
@Select | 查询sql | 作用在方法上,和xml insert sql语法完全一样 |
@Update | 更新sql | 作用在方法上,和xml insert sql语法完全一样 |
@Delete | 删除sql | 作用在方法上,和xml insert sql语法完全一样 |
@Param | 入参 | 作用在方法参数上 |
@Results | 查询结果集合 | 作用在方法上 |
@Result | 查询结果 | 作用在方法上 |