博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis学习笔记(6)-输入映射
阅读量:6965 次
发布时间:2019-06-27

本文共 2006 字,大约阅读时间需要 6 分钟。

hot3.png

mybatis学习笔记(6)-输入映射

标签: mybatis


[TOC]


本文主要讲解mybatis的输入映射。

通过parameterType指定输入参数的类型,类型可以是

  • 简单类型
  • hashmap
  • pojo的包装类型

传递pojo的包装对象

  • 定义包装类型pojo
package com.iot.mybatis.po;/** * Created by Brian on 2016/2/24. */public class UserQueryVo {    //在这里包装所需要的查询条件    //用户查询条件    private UserCustom userCustom;    public UserCustom getUserCustom() {        return userCustom;    }    public void setUserCustom(UserCustom userCustom) {        this.userCustom = userCustom;    }    //可以包装其它的查询条件,订单、商品    //....}

其中,UserCustom类继承User

public class UserCustom extends User{}
  • mapper.xml

在UserMapper.xml中定义用户信息综合查询(查询条件复杂,通过高级查询进行复杂关联查询)。

注意不要将#{userCustom.sex}中的userCustom写成UserCustom,前者指属性名(由于使用IDE提示自动补全,所以只是把类型名首字母小写了),后者指类型名,这里是UserQueryVo类中的userCustom属性,是属性名。写错会报如下异常:

org.apache.ibatis.exceptions.PersistenceException: ### Error querying database.  Cause: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'UserCustom' in 'class com.iot.mybatis.po.UserQueryVo'### Cause: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'UserCustom' in 'class com.iot.mybatis.po.UserQueryVo'
  • mapper.java
//用户信息综合查询public List
findUserList(UserQueryVo userQueryVo) throws Exception;
  • 测试代码
//用户信息的综合 查询	@Test	public void testFindUserList() throws Exception {		SqlSession sqlSession = sqlSessionFactory.openSession();		//创建UserMapper对象,mybatis自动生成mapper代理对象		UserMapper userMapper  sqlSession.getMapper(UserMapper.class);		//创建包装对象,设置查询条件		UserQueryVo userQueryVo = new UserQueryVo();		UserCustom userCustom = new UserCustom();		//由于这里使用动态sql,如果不设置某个值,条件不会拼接在sql中		userCustom.setSex("1");		userCustom.setUsername("张三");		userQueryVo.setUserCustom(userCustom);		//调用userMapper的方法		List
list = userMapper.findUserList(userQueryVo); System.out.println(list); }

作者更多文章: | |

转载于:https://my.oschina.net/brianway/blog/625451

你可能感兴趣的文章
windows系统中常见的环境变量有哪些
查看>>
今天到旅行
查看>>
Spark Streaming使用Kafka保证数据零丢失
查看>>
Linux学习记录--数据流重定向
查看>>
YII 联合查询
查看>>
PHP扩展模块Memcache Redis Mssql部署
查看>>
盘点11个面向文档的开源NoSQL数据库
查看>>
eclipse 快捷键
查看>>
最长有效括按号长度(利用栈解决java语言)
查看>>
用Gvim建立IDE编程环境 (Windows篇)
查看>>
ansible及ansible-palybook使用(持续更新)
查看>>
关于endian的故事,big-endian和little-endian
查看>>
Spring定时任务的几种实现
查看>>
使用JMeter进行性能测试
查看>>
使用@Controller注解为什么要配置<mvc:annotation-driven />
查看>>
彪悍的人生不需要解释
查看>>
近期学习的LINUX 命令
查看>>
域策略 设置本地管理员
查看>>
ie6 css :hover 和 select遮挡问题、和z-index失效问题
查看>>
9月22号
查看>>