(Mybatis)输入映射和输出映射

1、parameterType(输入映射)

      *  传递简单类型:

<!-- 根据id查询用户 -->
<select id="findUserById" parameterType="java.lang.Integer" 
             resultType="com.jadan.pojo.User">
    select * from user where id = #{id}
</select>

<!-- 根据用户名模糊查询用户 -->
<select id="findUserByUsername" parameterType="java.lang.String"             
            resultType="com.jadan.pojo.User">
    select * from user where username like '%${value}%'
</select>

      

      *  传递pojo对象:

<!-- 插入用户 -->
<insert id="insertUser" parameterType="com.jadan.pojo.User">
	<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
		select LAST_INSERT_ID()
	</selectKey>
	insert into user(username, sex, birthday, address)
		 value(#{username},#{sex},#{birthday},#{address})
</insert>
	
<!-- 更新用户信息 -->
<update id="updateUserById" parameterType="com.jadan.pojo.User">
	update user set sex = #{sex} where id = #{id}
</update>

      *  传递pojo包装对象:

         QueryVo:

package com.jadan.pojo;

public class QueryVo {

	private User user;

	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}
}

         sql 语句:

<!-- 多条件查询 -->
<select id="findUserByVo" parameterType="com.jadan.pojo.QueryVo" 
        resultType="com.jadan.pojo.User">
    select * from user where username like '%${user.username}%' and sex = #{user.sex}
</select>

         UserMapper.java 接口:

package com.jadan.mapper;

import java.util.List;
import com.jadan.pojo.QueryVo;
import com.jadan.pojo.User;

public interface UserMapper {

	// 多条件查询
	public List<User> findUserByVo(QueryVo vo);
}

         测试:

// 多条件查询
@Test
public void testFindUserByVo() {
	SqlSession openSession = factory.openSession();
	// 通过getMapper方法来实例化接口
	UserMapper mapper = openSession.getMapper(UserMapper.class);
		
	User user = new User();
	user.setUsername("小");
	user.setSex("1");
		
	QueryVo vo = new QueryVo();
	vo.setUser(user);
		
	List<User> list = mapper.findUserByVo(vo);
	System.out.println(list);	
}

2、resultType(输出映射):

      *  输出基本类型:

<!-- 查询记录条数 -->
<!-- 只有返回结果为一行一列的时候,那么返回值类型才可以指定成基本类型 -->
<select id="findUserCount" resultType="java.lang.Integer">
	select count(*) from user
</select>

      *  输出pojo对象:

<!-- 根据id查询用户 -->
<select id="findUserById" parameterType="java.lang.Integer" resultType="com.jadan.pojo.User">
	select * from user where id = #{id}
</select>

      *  输出pojo列表:

<!-- 根据用户名模糊查询用户 -->
<select id="findUserByUsername" parameterType="java.lang.String" resultType="com.jadan.pojo.User">
	select * from user where username like '%${value}%'
</select>

下一篇:动态Sql

猜你喜欢

转载自blog.csdn.net/jonez/article/details/81075054