Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Mybatis输入输出映射

阅读目录
  • 一、输入映射
  •  二、输出映射

一、输入映射

1、传递简单类型

<select id="findUserById" parameterType="int" resultType="com.test.pojo.User">select * from user where id = #{id}
</select>

2、传递pojo对象

Mybatis使用OGNL表达式解析对象字段的值。<select id="findUserByUser" parameterType="com.test.pojo.User" resultType="com.test.pojo.User"> select * from user where id=#{id} and username like "%${username}%"
</select> 测试:@Testpublic void testFindUserByUser(){SqlSession sqlSession=sqlSessionFactory.openSession();UserMapper userMapper=sqlSession.getMapper(UserMapper.class);User user=new User();user.setId(1);user.setUsername("徐剑");List<User> user2=userMapper.findUserByUser(user);System.out.println(user2);sqlSession.close();}

3、传递包装对象

定义包装对象将查询条件(pojo)以类组合的方式包装起来。public class QueryVo{User user;//其他条件。。。public User getUser(){return user;}public void setUser(User user){this.user = user;}} mapper.xml配置文件:<select id="findUserList" parameterType="com.test.pojo.QueryVo" resultType="com.test.pojo.User"> select * from user where id=#{user.id} and username=#{user.username}</select> 测试代码:@Testpublic void testFindUserList(){SqlSession sqlSession=sqlSessionFactory.openSession();UserMapper userMapper=sqlSession.getMapper(UserMapper.class);QueryVo queryVo=new QueryVo();User user=new User();user.setId(2);user.setUsername("谢伟");queryVo.setUser(user);List<User> user2=userMapper.findUserList(queryVo);System.out.println(user2);sqlSession.close();}

4、传递HashMap

sql映射文件: 测试: @Testpublic void testFindUserByHashmap(){SqlSession session = sqlSessionFactory.openSession();//获限mapper接口实例UserMapper userMapper = session.getMapper(UserMapper.class);//构造查询条件Hashmap对象HashMap<String, Object> map = new HashMap<String, Object>();map.put("id", 1);map.put("username", "徐剑");//传递Hashmap对象查询用户列表List<User> list = userMapper.findUserByHashmap(map);System.out.println(list);//关闭sessionsession.close();}

 二、输出映射

1、输出简单类型

输出简单类型必须查询出来的结果集有一条记录,最终讲第一个字段的值转换为输出类型。

2、输出pojo对象

参考输入pojo对象, 使用session调用selectOne查询单条记录。

3、输出pojo列表

使用session的selectList方法获取pojo列表。 注:输出pojo对象和输出pojo列表在sql中定义的resultType是一样的。 返回单个pojo对象要保证sql查询出来的结果集为单条,内部使用session.selectOne方法调用,mapper接口使用pojo对象作为方法返回值。  返回pojo列表表示查询出来的结果集可能为多条,内部使用session.selectList方法,mapper接口使用List<pojo>对象作为方法返回值。 resultMap:可以指定pojo将查询结果映射为pojo,但需要pojo的属性名和sql查询的列名一致方可映射成功。      如果sql查询字段名和pojo的属性名不一致,可以通过resultMap将字段名和属性名作一个对应关系 ,resultMap实质上还需要将查询结果映射到pojo对象中。 resultMap可以实现将查询结果映射为复杂类型的pojo,比如在查询结果映射对象中包括pojo和list实现一对一查询和一对多查询。 定义resultMap: 测试代码: @Testpublic void testFindUserListResultMap() throws Exception{SqlSession session = sqlSessionFactory.openSession();//获限mapper接口实例UserMapper userMapper = session.getMapper(UserMapper.class);List<User> list = userMapper.findUserListResultMap(1);System.out.println(list);//关闭sessionsession.close();}

MyBatis入门学习教程  http://www.linuxidc.com/Linux/2015-02/113771.htmJava实战应用:Mybatis实现单表的增删改 http://www.linuxidc.com/Linux/2014-06/103456.htm[Java][Mybatis]物理分页实现 http://www.linuxidc.com/Linux/2014-04/99889.htmMybatis快速入门教程 http://www.linuxidc.com/Linux/2013-06/85762.htmMybatis的关于批量数据操作的测试 http://www.linuxidc.com/Linux/2012-05/60863.htmMybatis中对List<Object> 对象List的批处理插入操作 http://www.linuxidc.com/Linux/2014-02/96916.htmMyBatis 的详细介绍:请点这里
MyBatis 的下载地址:请点这里本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-07/133596.htm