Eight, mybaitis learning - addition, deletion, modification, and self-incrementing primary key acquisition (use primary)

Eight, mybaitis learning - addition, deletion, modification, and self-incrementing primary key acquisition (use primary)

<?xml version="1.0" encoding="UTF-8" ?>   
<!-- 导入约束 --> 
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="UserMapper">   
     <!-- 一、insert语句及获取添自增主键 
        parameterType : 参数类型 全限定类名或者别名
        id:方法名,唯一标识
        #{} :mybatis中的占位符 ,需要传递对象中属性的名称
            取值的方式:OGNL表达式
     -->
    <!-- 保存之后,对user对象的id属性进行赋值 
        1.属性useGeneratedKeys 结合 属性keyProperty
            当保存的时候,直接将数据库的主键值存入到对象的id属性中

        2.属性keyProperty结合子标签selectKey
            keyProperty : 对象中的id属性名称
            order : after 执行顺序,当保存语句执行完成之后,立即发送一条   select last_insert_id()语句查询最后插入的主键
            resultType:返回值类型
            select last_insert_id();//mysql数据库中的语法,获取最后一次保存的数据主键

    -->
    <insert id="saveUser"  parameterType="cn.itcast.entity.User" useGeneratedKeys="true" keyProperty="id">
<!--        <selectKey order="AFTER" resultType="java.lang.Integer" keyProperty="id">
                 select last_insert_id();
            </selectKey> -->
        insert into user (username,sex,birthday,address) values ( #{username} ,#{sex},#{birthday},#{address} )
    </insert>


    <!-- 二、update语句,修改用户 -->
    <update id="updateUser" parameterType="cn.itcast.entity.User">
        update user set username=#{username} , sex=#{sex} , birthday=#{birthday} ,address=#{address}
        where id=#{id}
    </update>

    <!-- 
        parameterType : 指定的是参数的类型,全限定类名
            对于自定义的javaBean对象
            占位符使用:#{java对象中属性的名称}
            对于基本数据类型
            占位符使用:#{随意},要求:使用有具体含义的字符串标识
     -->
    <!-- 三、delete语句、删除用户 -->
    <delete id="deleteUser" parameterType="java.lang.Integer">
        delete from user where id=#{艾迪}
    </delete>


    <!-- 四、select语句 根据用户名查询一个用户对象 -->
    <select id="findUserByName" parameterType="string" resultType="cn.itcast.entity.User">
        select * from user where username=#{username}
    </select>


    <!-- 五、模糊查询:根据用户名模糊查询所有用户
        方式一:将%写到参数上   配置文件中使用#{username}
        方式二:可以使用${} 结合% 表示模糊匹配

        #{}
            对占位符赋值(?)
            PreparedStatmen:预处理
        ${}
            sql拼接
            Statment处理
            * 有sql注入的风险
     -->
    <select id="findUserByNameLike" parameterType="STRing" resultType="cn.itcast.entity.User">
        select * from user where username like '%${value}%'
    </select>


</mapper>

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324582686&siteId=291194637