mapper的配置方式

本文介绍了Mybatis中Mapper的三种配置方式:1) 根据Mapper类的路径配置;2) 根据Mapper类所在包路径配置;3) 将XML配置文件独立放在resources中。每种方式对XML配置文件的位置和命名都有特定要求,并提到了不同配置对注解模式的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一种依据 Mapper 类 具体路径 配置 Mapper
这种情况下,如果是非注解模式的话xml配置文件必须和这个类在同一级目录,且与Mapper类同名

<configuration>  
    <mappers>       
        <!-- class 级别的指定 -->  
        <mapper class="com.bestcxx.stu.springmvc.mapper.UserModelMapper"/>  
        <mapper class="com.bestcxx.stu.springmvc.mapper.UserModelTwoMapper"/>  
    </mappers>  
</configuration>  

第二种依据 Mapper 类所在的package包路径 配置 Mapper
这种情况下,如果是非注解模式的话xml配置文件必须也处于同一级 package 下,且与Mapper类同名

<configuration>  
    <mappers>  
        <package name="com.bestcxx.stu.springmvc.mapper"/>  
    </mappers>  
</configuration>  

第三种是把 Mapper 的xml配置文件单独放置到 resources 中,和Mapper 类分开了
这种方式的好处是便于统一管理 xml 配置文件,不好的的地方是无法使用注解模式了

<configuration>  
    <mappers>  
        <!-- 使用这个方案,可以单独指定Mapper的位置 -->  
        <mapper resource="mybatis/mappings/UserModelMapper.xml"/>  
        <mapper resource="mybatis/mappings/UserModelTwoMapper.xml"/>  
    </mappers>  
</configuration>  

mapper的xml 配置文件的内容

<?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="com.bestcxx.stu.springmvc.mapper.UserModelMapper">  
  
    <!-- 表字段显式 -->  
    <sql id="userModelColumns">  
        u.userName AS "userName",  
        u.passWord AS "passWord",  
        u.createDate AS "createDate",  
        u.intNum AS "intNum",  
        u.decimalNum AS "decimalNum"  
    </sql>  
  
  
    <!-- 根据 userName 查询 -->  
    <select id="getUserModel" resultType="userModel">  
        SELECT  
        <include refid="userModelColumns" />  
        FROM  
        userModel u  
        WHERE  
        u.userName = #{userName}  
    </select>  
  
    <!-- 插入 -->  
    <insert id="addUserModel" parameterType="userModel" useGeneratedKeys="true" keyProperty="userName">  
        INSERT INTO userModel (  
        passWord,  
        createDate,  
        intNum,  
        decimalNum  
        )  
        VALUES (  
        #{passWord},  
        #{createDate},  
        #{intNum},  
        #{decimalNum}  
        )  
          
    </insert>  
      
    <!-- 搜索多条,返回List<userModel>-入参为111,222,333 格式 -->  
    <select id="getUserModelListByStrs" parameterType="string" resultType="userModel">  
        SELECT   
        <include refid="userModelColumns" />  
        FROM   
        userModel u  
        WHERE  
        u.userName in (${userNames})  
    </select>  
      
    <!-- 搜索多条,返回 List<HashMap<String,Object>>,入参为list-->  
    <select id="getHashMapListByList" parameterType="list" resultType="map">  
        SELECT   
        <include refid="userModelColumns" />  
        FROM   
        userModel u  
        WHERE  
        u.userName in   
        <foreach item="item" collection="userNamelist" open="(" separator="," close=")" >  
            #{item}  
         </foreach>  
    </select>  
      
    <update id="update">  
        UPDATE userModel u  
        SET  
        u.passWord=#{passWord},u.createDate=#{createDate}  
        WHERE  
        u.userName=#{userName}  
    </update>  
  
</mapper>  
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值