MyBatis通过映射器配置可以生成对应的JavaBean返回给调用者。
映射器中可以定义select、insert、update、delete、sql、parameterMap、resultMap、cache、cache-ref等。
public int countFirstName(String firstName);
首先id标出这条SQL,然后parameterType定义参数类型,在定义返回类型resultType
当需要传递多个参数到一个select语句中时,可以将这些参数组合成一个POJO类,利用类将参数传递进去;如:
public List findRole(string name,string role,string note);
这个接口需要传递三个参数进去,虽然可以像下面这样使用@Param注解,但是有点儿繁琐:
public List findRole(@Param("name")string name,@Param("role")string role,@Param("note")string note);
将这三个参数变成一个POJO类:
public class RoleParam(){
private String name;
private String role;
private String note;
//setter和getter方法
}
Dao接口为:
public int insertRole(Role role);
使用主键回填的方式,自动递增sql数据库中的自增字段;
insert into role_t(role_name,note) values (#{roleName},#{note})
也可以使用selectKey处理更复杂的插入逻辑:
select if(max(id) is null,1,max(id)+2) as newId from role_t
insert into role_t(role_name,note) values (#{roleName},#{note})
如果主键为null,设置为1,否则设置为主键最大值+2;
在MyBatis中insert、update、delete操作执行完成之后,都会返回一个整数,指示执行语句后影响的记录条数。
update user_t set
user_name = #{userName},
user_num = #{userNum},
user_role = #{userRole}
where id=#{id}
delete from user_t where id=#{id}