
输入映射和输出映射
Mapper.xml映射文件中定义了操作数据库的输入射sql,每个sql是映射一个statement,映射文件是和输mybatis的核心。
1.parameterType(输入类型)
传递简单类型参考第一天内容。出映
传递pojo对象
Mybatis使用ognl表达式解析对象字段的输入射值,#{}或者${}括号中的映射值为pojo属性名称。
传递pojo包装对象
开发中通过pojo传递查询条件,和输查询条件是出映综合的查询条件,不仅包括用户查询条件还包括其它的输入射查询条件(比如将用户购买商品信息也作为查询条件),这时可以使用包装对象传递输入参数。映射
Pojo类中包含pojo。和输
需求:根据用户名查询用户信息,出映查询条件放到QueryVo的输入射user属性中。亿华云
public class QueryVo { private User user; public User getUser() { return user; } public void setUser(User user) this.user = user;* } }Sql语句
SELECT * FROM user where username like %刘%Mapper文件
<!-- 使用包装类型查询用户 使用ognl从对象中取属性值,映射如果是和输包装对象可以使用.操作符来取内容部的属性 --> <select id="findUserByQueryVo" parameterType="queryvo" resultType="user"> SELECT * FROM user where username like %${user.username}% </select> 接口 public interface UserMapper { User findUserByid(Integer id); List<User> findUserByUserName(String name); List<User> findUserByUserNameAndSex(String name,String sex); Integer insertUser(User user); Integer deleteByUserId(Integer id); Integer updateUserById(User user); List<User> QueryVoByUserList(QueryVo queryVo); } 测试方法 @Test public void testFindUserByQueryVo() throws Exception { SqlSession sqlSession = sessionFactory.openSession(); //获得mapper的代理对象 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); //创建QueryVo对象 QueryVo queryVo = new QueryVo(); //创建user对象 User user = new User(); user.setUsername("刘"); queryVo.setUser(user); //根据queryvo查询用户 List<User> list = userMapper.findUserByQueryVo(queryVo); System.out.println(list); sqlSession.close(); }1.resultType(输出类型)
输出简单类型参考getnow输出日期类型,看下边的例子输出整型:
Mapper.xml文件
<!-- 获取用户列表总数 --> <select id="findUserCount" resultType="int"> select count(1) from user </select> Mapper接口 public int findUserCount() throws Exception; 调用: Public void testFindUserCount() throws Exception{ //获取session SqlSession session = sqlSessionFactory.openSession(); //获取mapper接口实例 UserMapper userMapper = session.getMapper(UserMapper.class); //传递Hashmap对象查询用户列表 int count = userMapper.findUserCount(); //关闭session session.close(); }输出简单类型必须查询出来的结果集有一条记录,最终将第一个字段的值转换为输出类型。
使用session的selectOne可查询单条记录。
输出pojo对象
参考第一天内容
输出pojo列表
参考第一天内容。
resultMap
resultType可以指定pojo将查询结果映射为pojo,但需要pojo的属性名和sql查询的列名一致方可映射成功。
如果sql查询字段名和pojo的属性名不一致,可以通过resultMap将字段名和属性名作一个对应关系,resultMap实质上还需要将查询结果映射到pojo对象中。
resultMap可以实现将查询结果映射为复杂类型的服务器托管pojo,比如在查询结果映射对象中包括pojo和list实现一对一查询和一对多查询。
Mapper.xml定义

使用resultMap指定上边定义的personmap。
定义resultMap
由于上边的mapper.xml中sql查询列和Users.java类属性不一致,需要定义resultMap:userListResultMap将sql查询列和Users.java类属性对应起来

<id/>:此属性表示查询结果集的唯一标识,非常重要。如果是多个字段为复合唯一约束则定义多个。
Property:表示User类的属性。
Column:表示sql查询出来的字段名。
Column和property放在一块儿表示将sql查询出来的字段映射到指定的pojo类属性上。
<result />:普通结果,即pojo的属性。
Mapper接口定义
public List<User> findUserListResultMap() throws Exception; 云服务器提供商
Ubuntu 当今最流行的 Linux 操作系统,在android大行天下之时,Ubuntu 也推出自己的移动操作系统:Ubuntu touch,虽然有些迟,但ubuntu Touch 提出了同时支持使用 Qt/QML 开发原生应用,以及基于 HTML5 的 web 应用,从这里也看出了 Ubuntu 在移动领域的长足眼光。已经发布的版本有 Ubuntukylin、Lubuntu、KUbuntu、ubuntu Gnome。更新信息:Unity has improved support for High-DPI displays.Firefox is updated to version 33 and Chromium is updated to version 38.Gtk updated to version 3.12. Qt updated to version 5.3.Support for IPP Everywhere printers is added, and printers shared from Ubuntu can emulate IPP Everywhere printers.LibreOffice 4.3 brings a lot of improvements including improved PDF support, new features in Writer, Calc and Impress (word processor, spreadsheet and presentations).官方下载:Ubuntu 14.10Ubuntu 14.10国内镜像站点下载地址:中国科学技术大学网易镜像地址(一)网易镜像地址(二)厦门大学开源镜像下载ubuntu daily-live(每日创建版)版本:daily-live官方推荐源地址:http://wiki.ubuntu.org.cn/Qref/Source下载ubuntu-desktop-next(每日创建版)版本测试版本下载