第一种依据 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>