Mapper.xml

mapper映射文件***Mapper.xml








<mapper namespace="com.mybatis.dao.UserDao">
    
    

    
    
    
    
    
    
    
    <select id="queryUserById" parameterType="int" resultType="com.crud.pojo.User">
      SELECT * FROM USER where id = #{id}
    select>


    
    
    
    
    
    <select id="queryUserByName" parameterType="string" resultType="com.crud.pojo.User">
      SELECT * FROM USER WHERE username LIKE #{username}
    select>

    
    
    
    <select id="queryUserByName2" parameterType="string" resultType="com.crud.pojo.User">
        SELECT * FROM USER WHERE username LIKE '%${value}%'
    select>

    
    
    
    
    <insert id="saveUser" parameterType="com.crud.pojo.User">
        -- 需要用户保存成功后,返回自增主键
        -- 使用selectKey:里面需要填写查询语句:select last_insert_id(); 也就是查询最后一个插入的id
        -- keyProperty:pojo的哪个属性是主键
        -- keyColumn:数据库查询结果的哪个属性是主键
        -- resultType:返回主键的数据类型
        -- order:查询主键应该在插入sql之前执行还是之后执行,AFTER:之后,BEFORE:之前
        <selectKey keyProperty="id" keyColumn="id" resultType="int" order="AFTER">
            SELECT last_insert_id()
        selectKey>
        INSERT INTO USER (
        username,
        birthday,
        sex,
        address
        )
        values(
        #{username},
        #{birthday},
        #{sex},
        #{address}
        )
    insert>


    
    
    <update id="updateUser" parameterType="com.crud.pojo.User">
        UPDATE `user` SET username=#{username} WHERE id = #{id}
    update>

    
    <delete id="deleteUserbyId" parameterType="int">
        DELETE FROM user WHERE id = '${value}'
        -- DELETE FROM user WHERE id = #{id}
    delete>
    
    
    
    
    <select id="queryUserTypeAll" resultType="usertype">
        SELECT * FROM usertype
    select>


    
    
    
    
    <resultMap id="userTypeResultMap" type="usertype" autoMapping="true">
        
        
        
        
        <id property="t_id" column="t_id"/>
        <result property="desc" column="t_explain"/>
    resultMap>

    
    
    <select id="queryUserTypeAllResultMap" resultMap="userTypeResultMap">
      SELECT * FROM usertype
    select>

    
    
    
    
    
    <select id="queryUserByUsernameAndSex" parameterType="user" resultType="user">
        SELECT <include refid="fields"/> FROM user
        <where>
            <if test="sex != '' and sex != null">
                AND sex = #{sex}
            if>
            <if test="username != null and username != ''">
                AND username LIKE #{username}
            if>
        where>
    select>

    
    
    
    <sql id="fields">
        id,username,birthday,sex,address
    sql>

    <select id="queryUserByQueryVo" parameterType="queryvo" resultType="user">
        SELECT <include refid="fields"/> FROM USER
        <where>
            -- 目标:拼接sql片段,id in (1,3,5,6)
            -- collection:就是存放参数的集合,填写pojo的参数名
            -- item:就是遍历集合的变量,用来存放当前遍历的是哪个值,相当于for(User user : list)中到的user,item的值是任意的
            -- open:sql片段的开始的部分,不包括集合的值
            -- close:sql片段结束的部分
            -- separator:遍历的多个值中间用什么进行隔离
            -- index:步增值
            <foreach collection="ids" item="item" open="id in (" close=")" separator="," index="1">
                #{item}
            foreach>
        where>
    select>

    
    <select id="qeuryAccountUserAll" resultType="accountuser">
        SELECT a.*, u.username, u.address FROM account a LEFT JOIN user u ON a.uid = u.id
    select>

    
    
    
    
    <resultMap id="accountResultMap" type="account" autoMapping="true">
        
        <id property="id" column="id"/>

        <result property="uid" column="uid"/>
        <result property="money" column="money"/>

        
        
        <association property="user" javaType="user" autoMapping="true">
            
            
            
            <id property="id" column="uid"/>

            
            <result property="username" column="username"/>
            <result property="address" column="address"/>
        association>
    resultMap>

    
    <select id="queryAccountAll" resultMap="accountResultMap">
        SELECT a.*,u.username,u.id,u.address FROM account a LEFT JOIN `user` u ON a.UID=u.id
    select>
    
    
    <resultMap id="resultMap" type="user" autoMapping="true">
        <id property="id" column="id"/>

        
        
        
        <collection property="accounts" javaType="list" ofType="Account" autoMapping="true">
            <id property="id" column="aid"/>
        collection>
    resultMap>

    
    <select id="queryUserAll" resultMap="resultMap">
        SELECT a.*,u.username,u.address FROM account a LEFT JOIN `user` u ON a.UID=u.id
    select>

    
    
    <cache/>
    
    
    
    
    <select id="queryUserById" parameterType="int" resultType="user" useCache="true">
        SELECT * FROM user where id = #{id}
    select>

    
    <resultMap id="map" type="user" autoMapping="true">
        <id property="id" column="id"/>

        <result property="username" column="username"/>
        <result property="birthday" column="birthday"/>
        <result property="sex" column="sex"/>
        <result property="address" column="address"/>

        <collection property="accounts"
                    ofType="account"
                    column="id"
                    select="com.mybatis_4_2.mapper.AccountMapper.queryAccountById">
        collection>
    resultMap>
    
    <select id="queryUserAll" resultMap="map">
        SELECT * FROM user
    select>
mapper>

你可能感兴趣的:(工具类)