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>