• 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}%”

  • 相关阅读:
    手速太慢QAQ
    最短路总结
    放下
    素材收集
    NOI2018旅游记
    -5
    七月
    德国GG了
    本人自传
    bzoj2369
  • 原文地址:https://www.cnblogs.com/lvgo/p/13275858.html
Copyright © 2020-2023  润新知