Mybatis学习笔记,持续更新

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类型的参数时,通过以下两种方法可以实现参数的正确传递

  1. 使用 @Param(“×××”) 标注在方法的请求参数前 这样做相当于是一个map(鄙人拙见)
  2. 在xml文件中,使用 _parameter 接收参数的值

3.Mybatis like 模糊查询问题 —— 已解决

LIKE CONCAT(‘%’,#{param},’%’ )
LIKE “%${param}%”

猜你喜欢

转载自blog.csdn.net/sinat_34344123/article/details/79099739