欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mapper.xml配置文件配置解析

程序员文章站 2022-04-22 10:37:19
...
<?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="cn.lz.mapper.UserMapper">

        <!--
        当数据库和实体类不匹配时
            1.可以使SQL的起别名
            2.是resultMap
        -->
        <!--配置 查询结果的列名和实体类的属性名的对应关系-->
            <!--
            <resultMap id="userMap" type="cn.lz.domain.User">
                主键字段的对应
                    Property   实体类中对应的属性名称
                    Column     数据库中对应的值&ndash;&gt;
                <id property="userID" column="id"></id>
                非主键字段的对应&ndash;&gt;
                <result property="" column=""></result>
            </resultMap>
            -->
        <!--查询用户所用信息 resultType确认返回值-->
        <select id="findAll" resultType="cn.lz.domain.User">
            select * from user;
        </select>


    <!--添加新用户  parameterType参数类型 -->
        <insert id="addUser" parameterType="cn.lz.domain.User">
            <!--配置插入操作后,获取插入数据的ID
                keyProperty   实体类中对应的属性名称
                keyColumn     数据库中对应的值
                order         什么时候进行这个操作
                resultType    返回值类型
            -->
            <selectKey keyProperty="id" keyColumn="id" order="AFTER" resultType="int">
                select last_insert_id();
            </selectKey>
            insert  into user (username,address,sex,birthday) values (#{username},#{address},#{sex},#{birthday});
        </insert>

        <!--更新用户-->
        <update id="updateUser" parameterType="cn.lz.domain.User">
            update user set  username=#{username},address=#{address},sex=#{sex},birthday=#{birthday} where id=#{id};
        </update>

        <!--根据ID删除用户-->
    <delete id="deleteByID" parameterType="integer">
            delete from user where id=#{id};
    </delete>

    <!--根据Id查询用户-->
    <select id="findById" parameterType="integer" resultType="cn.lz.domain.User">
            select  * from user  where id= #{id};
    </select>

    <!--根据姓名模糊查询用户-->
    <select id="findByName" parameterType="string" resultType="cn.lz.domain.User">
        <!--select  * from user where username like '${value}';这种方式在前面不需要%%号了-->
        select  * from user where username like #{username};
    </select>

    <!--查询总的用户总记录条数 -->
    <select id="findTotal" resultType="java.lang.Integer">
        select count(id) from user;
    </select>

    <!--根据queryvo的条件查询用户-->
    <select id="findByVo" parameterType="cn.lz.domain.QueryVo" resultType="cn.lz.domain.User">
        select  * from user where username like #{user. username};
    </select>
</mapper>