java-mybaits-00401-Mapper-输入输出
1、parameterType(输入类型)
1.1、#{}与${}
<!-- 根据id查询用户信息 -->
<select id="findUserById" parameterType="int" resultType="user">
select * from user where id = #{id}
</select>
<!-- 根据名称模糊查询用户信息 -->
<select id="selectUserByName" parameterType="string" resultType="user">
select * from user where username like '%${value}%'
</select>
//如果使用#{}占位符号则必须人为在传参数中加%
List<User> list = userMapper.selectUserByName("%管理员%");
//如果使用${}原始符号则不用人为在参数中加%
List<User>list = userMapper.selectUserByName("管理员");
1.2、传递简单类型
1.3、传递pojo对象
<!—传递pojo对象综合查询用户信息 -->
<select id="findUserByUser" parameterType="user" resultType="user">
select * from user where id=#{id} and username like '%${username}%'
</select>
1.4、传递pojo包装对象
1.4.1、定义包装对象
package com.lhx.mybatis.po;
public class QueryVo {
    private User user;
    // 自定义用户扩展类
    private UserCustom userCustom;
    private String ordercode;
    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user = user;
    }
    public UserCustom getUserCustom() {
        return userCustom;
    }
    public void setUserCustom(UserCustom userCustom) {
        this.userCustom = userCustom;
    }
    public String getOrdercode() {
        return ordercode;
    }
    public void setOrdercode(String ordercode) {
        this.ordercode = ordercode;
    }
}
如果用户需要扩展
package com.lhx.mybatis.po;
public class UserCustom extends User {
    private String phone;
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
}
1.4.2 mapper.xml映射文件
<select id="findUserList" parameterType="com.lhx.mybatis.po.QueryVo"
resultType="com.lhx.mybatis.po.User">
select * from user where #{user.username} and sex=#{user.sex}
</select>
select * from user where sex=#{user.sex} and username like '%${user.username}%'
1.4.3、编写Mapper
public List<User> findUserList(QueryVo queryVo) throws Exception;
1.5、传递hashmap
<!-- 传递hashmap综合查询用户信息 -->
    <select id="findUserByHashmap" parameterType="hashmap" resultType="com.lhx.mybatis.po.User">
         select * from user where id=#{id} and username like '%${username}%'
    </select>
    public void testFindUserByHashmap() throws Exception {
        // 获取session
        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);
        // 关闭session
        session.close();
    }
2、resultType(输出类型)
2.1 输出简单类型
<!-- 获取用户列表总数 -->
<select id="findUserCount" parameterType="user" resultType="int">
select count(1) from user
</select>
public int findUserCount(User user) throws Exception;
public void testFindUserCount() throws Exception{
       //获取session
       SqlSession session = sqlSessionFactory.openSession();
       //获取mapper接口实例
       UserMapper userMapper = session.getMapper(UserMapper.class);
       User user = new User();
       user.setUsername("管理员");
       //传递Hashmap对象查询用户列表
       int count = userMapper.findUserCount(user);
       //关闭session
       session.close();
    }
2.2 输出pojo对象
<!-- 根据id查询用户信息 -->
<select id="findUserById" parameterType="int" resultType="user">
select * from user where id = #{id}
</select>
public User findUserById(int id) throws Exception;
public void testFindUserById() throws Exception {
       //获取session
       SqlSession session = sqlSessionFactory.openSession();
       //获限mapper接口实例
       UserMapper userMapper = session.getMapper(UserMapper.class);
       //通过mapper接口调用statement
       User user = userMapper.findUserById(1);
       System.out.println(user);
       //关闭session
       session.close();
    }
2.3 输出pojo列表
<!-- 根据名称模糊查询用户信息 -->
<select id="findUserByUsername" parameterType="string" resultType="user">
select * from user where username like '%${value}%'
</select>
public List<User> findUserByUsername(String username) throws Exception;
测试:
public void testFindUserByUsername()throws Exception{
       //获取session
       SqlSession session = sqlSessionFactory.openSession();
       //获限mapper接口实例
       UserMapper userMapper = session.getMapper(UserMapper.class);
       //如果使用占位符号则必须人为在传参数中加%
       //List<User> list = userMapper.selectUserByName("%管理员%");
       //如果使用${}原始符号则不用人为在参数中加%
       List<User> list = userMapper.findUserByUsername("管理员");
       //关闭session
       session.close();
    }
2.4 resultType总结:
2.5 输出hashmap
3、resultMap
3.1 Mapper.xml定义
<select id="findUserListResultMap" parameterType="com.lhx.mybatis.po.QueryVo"
resultMap="userListMap">
select id id_,username username_ from user where
#{user.username} and
sex=#{user.sex}
</select>
使用resultMap指定上边定义的personmap。
3.2 定义resultMap
<resultMap type="com.lhx.mybatis.po.User" id="userListMap">
<id column="id_" property="id"></id>
<result column="username_" property="username"></result>
</resultMap>
<id />:此属性表示查询结果集的唯一标识,非常重要。如果是多个字段为复合唯一约束则定义多个<id />。
Property:表示类的属性。
Column:表示sql查询出来的字段名。
Column和property放在一块儿表示将sql查询出来的字段映射到指定的pojo类属性上。
<result />:普通结果,即pojo的属性。
3.3 Mapper接口定义
public List<User> findUserListResultMap(QueryVo queryVo) throws Exception;
3.4 测试
public void testFindUserListResultMap() throws Exception {
        // 获取session
        SqlSession session = sqlSessionFactory.openSession();
        // 获限mapper接口实例
        UserMapper userMapper = session.getMapper(UserMapper.class);
        QueryVo queryVo = new QueryVo();
        User user = new User();
        user.setUsername("张");
        user.setSex("女");
        queryVo.setUser(user);
        // 传递Hashmap对象查询用户列表
        List<User> list = userMapper.findUserListResultMap(queryVo);
        // 关闭session
        session.close();
    }
小结
java-mybaits-00401-Mapper-输入输出的更多相关文章
- Mybaits之Mapper动态代理开发
		Mybaits之Mapper动态代理开发 开发规范: Mapper接口开发方法只需要程序员与Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法 ... 
- mybits根据表自动生成 java类和mapper 文件
		mybits根据表自动生成 java类和mapper 文件 我这个脑子啊,每次创建新的工程都会忘记是怎么集成mybits怎么生成mapper文件的,so today , I can't write t ... 
- IDEA中MyBaits的Mapper文件颜色问题
		IDEA中MyBaits的Mapper文件颜色问题 在IDEA中Mapper文件的展示 包含的警告及其解决方案 然后我们就完成了,效果如下 在IDEA中Mapper文件的展示 在IDEA中,Mappe ... 
- Java I/O流输入输出,序列化,NIO,NIO.2
		Java IO流 File类: File类是java.io包下代表和平台无关的文件和目录,File不能访问文件内容本身. File类基本操作: System.out.println("判断文 ... 
- 【java】System成员输入输出功能out、in、err
		package System输入输出; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOu ... 
- java SE 入门之输入输出(第四篇)
		在第一篇,八大基本类型的时候,我就介绍了输出,当然,这些输出都是简单的,后续写到流的时候,在细化输入输出. 现在只要求看懂输入输出.输入其实就是接受键盘的输入. public class Hello ... 
- java ssm框架 mapper文件里的#符号和$符号的区别
		Java SSM框架里面,Mapper.xml文件 (一)#符号生成的sql语句是作为传参的 <!-- 获得数据列表(包括课程相关信息) --> <select id="G ... 
- Java IO之简单输入输出
		Java中的IO分为两个部分,以InputStream和Reader为基类的输入类,以OutputStream和Writer为基类的输出类. 当中InputStream和OutputStream以字节 ... 
- 零基础学Java第三节(基本输入输出)
		本篇文章是<零基础学Java>专栏的第三篇文章,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! 本文章首发于公众号[编程攻略] Java程序的命令行参数 我们可以 ... 
- Java基础语法<三>  输入输出
		1. 读取输入 Scanner in = new Scanner(System.in); 输入一行(包含空格) String str = in.nextLine() 读取一个单词(以空白符作为 ... 
随机推荐
- qt 多点触摸
			http://www.ptrackapp.com/apclassys-notes/embedded-linux-multitouch/ Embedded Linux Multitouch with Q ... 
- 实现现下列哪一种接口的对象,并不需要在web.xml文件内进行额外的设定,Servlet容器就能够回应该对象加入HTTP会话所发生的事件?(选择1项)
			实现现下列哪一种接口的对象,并不需要在web.xml文件内进行额外的设定,Servlet容器就能够回应该对象加入HTTP会话所发生的事件?(选择1项) A.ServletContextListener ... 
- 【BZOJ】1664: [Usaco2006 Open]County Fair Events 参加节日庆祝(线段树+dp)
			http://www.lydsy.com/JudgeOnline/problem.php?id=1664 和之前的那题一样啊.. 只不过权值变为了1.. 同样用线段树维护区间,然后在区间范围内dp. ... 
- 【转】关于OnPaint的工作机制
			转载出处:http://blog.csdn.net/foreverhuylee/article/details/21889025 用了两年的VC++,其实对OnPaint的工作原理一直都是一知半解.这 ... 
- Struts2_day04--课程介绍_Struts2拦截器概述&底层原理_重要的概念
			Struts2_day04 上节内容 今天内容 Struts2拦截器概述 拦截器底层原理 重要的概念 自定义拦截器 自定义登录拦截器 Struts2的标签库 Struts2表单标签(会用) Strut ... 
- mySubmit.js
			function mySubmit(theForm,url,result){ function default_callback(res){ result.html(res.info); if(res ... 
- 修改UE4的deriveddatacache目录位置,扩大C盘空间
			按照默认安装目录,UE4会装在C盘 C:\Program Files\Epic Games\UE_4.15 DerivedDataCache缓存目录在 C:\Users\你的用户名\AppData\L ... 
- tomcat下载与安装..使用和配置环境变量
			操作环境: xp, myEclipse6.5 tomcat6.0 正文: 一.下载 tomcat官方网站 http://tomcat.apache.org 在左边Download树形菜单中 点击最新版 ... 
- 微信小程序-云开发(手记)
			微信小程序-云开发(手记) 1.创建data.json文件 注意以下几点要求: 入门示例: init方法的env:默认环境配置,传入字符串形式的环境 ID(理解为数据库)可以指定所有服务的默认环境(意 ... 
- SVN备份及恢复
			一,SVN备份 svnadmin dump /data/svn/blzfmima/ > /tmp/full.svn.bak 其中/data/svn/blzfmima/为svn文件夹,导出成一个备 ... 
