1.insert返回自增长id
mapper.xml 文件中执行的 insert sql
我们执行一个insert操作,参数是一个User对象
第一种方法
<insert id="insert" parameterType="com.test.User">
insert into user(loginName,loginPwd) values(#{loginName},#{loginPwd});
</insert>
插入之后需要在方法中使用当前插入值的自增id时,只需要增加下面一句就可以
// 注意这里面的 keyProperty="userId" 是你java bean 中对应的id属性名,我这里用的是userId
// resultType="java.lang.String" 是你java bean 中对应的id属性类型,我这里用的是String类型
<selectKey resultType="java.lang.String" order="AFTER" keyProperty="userId">
SELECT LAST_INSERT_ID();
</selectKey>
<insert id="insert" parameterType="com.test.User">
insert into user(loginName,loginPwd) values(#{loginName},#{loginPwd});
<selectKey resultType="java.lang.String" order="AFTER" keyProperty="userId">
SELECT LAST_INSERT_ID();
</selectKey>
</insert>
第二种方法 (很简单呐 >_<)
<insert id="insert" parameterType="com.test.User" useGeneratedKeys="true" keyProperty="userId">
insert into user(loginName,loginPwd) values(#{loginName},#{loginPwd});
</insert>
User 类
public class User {
/**
* 用户id
* /
private String userId;
/**
* 用户登录名
*/
private String loginName;
/**
* 登录密码
* /
private String loginPwd;
...
set...
get...
}
2.解决方案:There is no getter for property named ‘×××’ in ‘class java.lang.String’”
画重点
我说,mybatis 不支持 String 类型的参数,不是不可以使用,而是使用的时候需要特殊注意
当只有一个String类型的参数时,通过以下两种方法可以实现参数的正确传递
- 使用 @Param(“×××”) 标注在方法的请求参数前 这样做相当于是一个map(鄙人拙见)
- 在xml文件中,使用 _parameter 接收参数的值
3.Mybatis like 模糊查询问题 —— 已解决
LIKE CONCAT(‘%’,#{param},’%’ )
LIKE “%${param}%”