<?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.exam.demo1.mapper.UserMapper" >
<resultMap id="BaseResultMap" type="com.exam.demo1.model.User" >
<id column="id" property="id" jdbcType="VARCHAR" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="password" property="password" jdbcType="VARCHAR" />
<result column="phone" property="phone" jdbcType="VARCHAR" />
</resultMap>
<sql id="Base_Column_List" >
id, name, password, phone
</sql>
<select id="getUserByName" resultMap="BaseResultMap" parameterType="String" >
select
<include refid="Base_Column_List" />
from t_user
where name = #{name,jdbcType=VARCHAR}
</select>
<select id="getAllUsers" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from t_user
</select>
<delete id="deleteUser" parameterType="String" >
delete from t_user
where name = #{name,jdbcType=VARCHAR}
</delete>
<insert id="addUser" parameterType="com.exam.demo1.model.User" >
insert into t_user (id, name, password, phone)
values (#{id,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR},
#{phone,jdbcType=VARCHAR})
</insert>
<update id="updateUser" parameterType="com.exam.demo1.model.User" >
update t_user
set
<if test="password !=null">
password = #{password,jdbcType=VARCHAR}
</if>
<if test="phone !=null">
,phone = #{phone,jdbcType=VARCHAR}
</if>
where name = #{name,jdbcType=VARCHAR}
</update>
</mapper>
parameterType想传递多个参数时,可以采用如下的方法:
1. 把多个参数封装成一个model,如下,User这个model:
User user=new User();
user.setUserName("zhangsan");
user.setPassword("123456");
getUser(user);
mapper文件里:
<select id="getUser” rsultType="User" parameterType="com.exam.demo1.model.User" >
select * from user where username=#{userName} and password=#{passWord}
</select>
2.使用HashMap封装
HashMap <String,Object> map=new HashMap<String,Object>();
map.put("userName","zhangsan");
map.put("password","123456");
getUser(map);//为返回值类型为User
mapper中:
<select id="getUser" resultType="User" parameterType="Map" >
select * from user u where u.user_name=#{userName} and u.pass_word=#{passWord}
</select>
3. 使用注解:
getUser(@param(''userName")String userName,@param("password")String password);
Mapper中:
<select id="getUser" resultType="User">
select * from user u where u.user_name=#{userName} and u.pass_word=#{passWord}//
</select>