输入映射类型:
简单类型
1映射文件
<!-- 根据用户ID查询用户信息 -->
<select id="findUserById" parameterType="int" resultType="cn.itcast.po.User">
select * from user where id = #{id}
</select>
2Mapper接口
//根据用户ID查询用户信息
public User findUserById(int id) throws Exception;
3测试
public class UserMapperTest {
private SqlSessionFactory sqlSessionFactory;
@Before
public void setUp() throws Exception {
//读取配置文件
String resource ="SqlMapConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
//创建SqlSessionFactory
sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
}
@Test
public void testFindUserById() throws Exception {
//创建UserMapper对象
SqlSession sqlSession = sqlSessionFactory.openSession();
//由mybatis通过Sqlsession创建代理对象
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.findUserById(1) ;
System.out.println(user);
sqlSession.close();
}
}
pojo类型
1映射文件
<!-- 添加用户 -->
<insert id="insertUser" parameterType="cn.itcast.po.User">
insert into User(username, birthday, sex, address) values(#{username}, #{birthday},#{sex},#{address})
</insert>
2Mapper接口
//添加用户
public void insertUser(User user);
3测试
@Test
public void testInsertUser() {
//创建UserMapper对象
SqlSession sqlSession = sqlSessionFactory.openSession(true) ;
UserMapper userMapper = sqlSession.getMapper(UserMapper.class) ;
User user = new User() ;
user.setUsername("znzn");
user.setAddress("hubei");
userMapper.insertUser(user);
sqlSession.close();
}
包装类型
1定义包装pojo类型类
package cn.itcast.po;
import java.util.HashMap;
import java.util.Map;
public class UserCustom {
private User user ;
Map<String, Object> map = new HashMap<String, Object>() ;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public Map<String, Object> getMap() {
return map;
}
public void setMap(Map<String, Object> map) {
this.map = map;
}
}
2映射文件
<select id="findUserList" parameterType="cn.itcast.po.UserCustom" resultType="cn.itcast.po.User">
select * from user where
username like '%${user.username}%'
and sex = #{user.sex}
</select>
3Mapper接口
public List<User> findUserList(UserCustom user) ;
4测试
@Test
public void testFindUserList() {
//创建UserMapper对象
SqlSession sqlSession = sqlSessionFactory.openSession(true) ;
UserMapper userMapper = sqlSession.getMapper(UserMapper.class) ;
UserCustom userCustom = new UserCustom();
User user = new User() ;
user.setSex("1");
user.setUsername("小明");
userCustom.setUser(user);
List<User> list = userMapper.findUserList(userCustom);
int count = userMapper.findUserCount(userCustom);
System.out.println(list);
System.out.println(count);
sqlSession.close();
}
map或list类型
1映射文件
<select id="findUserByIdList" parameterType="java.util.List" resultType="user">
select * from user
<where>
<if test="list != null and list.size() > 0">
<foreach collection="list" item="id" open="And id IN(" close=")" separator=",">
#{id}
</foreach>
</if>
</where>
</select>
2UserMapper接口
public List<User> findUserByIdList(List<Integer> idList);
3测试
@Test
public void testFindUserByIdList(){
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List<Integer> idList = new ArrayList<Integer>();
idList.add(1);
idList.add(10);
idList.add(16);
List<User> list = userMapper.findUserByIdList(idList);
System.out.println(list);
}
输出类型
分两种 resultType 和 resultMap
resultType简单类型 pojo类型
简单类型
1映射文件
<select id="findUserCount" parameterType="cn.itcast.po.UserCustom" resultType="int">
select count(*) from user where
username like '%${user.username}%'
and sex = #{user.sex}
</select>
pojo类型
<!-- 根据用户ID查询用户信息 -->
<select id="findUserById" parameterType="int" resultType="cn.itcast.po.User">
select * from user where id = #{id}
</select>
resultMap pojo类型
1映射文件
<!-- resultMap入门 id标签 专门为查询结果中唯一列映射 result映射查询结果中的普通列 -->
<resultMap type="cn.itcast.po.User" id="UserRstMap">
<id column="id_" property="id" />
<result column="username_" property="username"/>
<result column="sex_" property="sex" />
</resultMap>
<select id="findUserRstMap" parameterType="int" resultMap="UserRstMap">
select id id_, username username_, sex sex_ from user
where id = #{id}
</select>
2Mapper接口
public User findUserRstMap(int id) ;
3测试
@Test
public void testFindUserRstMap() {
//创建UserMapper对象
SqlSession sqlSession = sqlSessionFactory.openSession(true) ;
UserMapper userMapper = sqlSession.getMapper(UserMapper.class) ;
User user = userMapper.findUserRstMap(1);
System.out.println(user);
sqlSession.close();
}