Mybatis学习笔记
本篇内容,紧接上一篇内容 Mybatis学习笔记一
输入映射和输出映射
传递简单类型和pojo类型上篇已介绍过,下面介绍一下包装类型。
传递pojo包装对象
开发中通过可以使用pojo传递查询条件。查询条件可能是综合的查询条件,不仅包括用户查询条件还包括其它的查询条件(比如查询用户信息的时候,将用户购买商品信息也作为查询条件),这时可以使用包装对象传递输入参数。包装对象即Pojo类中的一个属性是另外一个pojo。
演示:根据用户名模糊查询用户信息,查询条件放到QueryVo的user属性中。
1、编写QueryVo
package com.yyb.pojo; import java.io.Serializable; /** * Created by Administrator on 2017/8/16. */ public class QueryVo implements Serializable{ public User getUser() { return user; } public void setUser(User user) { this.user = user; } private User user; }
2、userMapper配置
<select id="findByQueryVo" parameterType="QueryVo" resultType="User"> SELECT * FROM user WHERE username like "%"#{user.username}"%" </select>
3.、userMapper接口中添加
List<User> findByQueryVo(QueryVo vo);
4、测试类
@org.junit.Test public void func2() throws Exception { //加载核心配置文件 String resource = "sqlMapConfig.xml"; InputStream in = Resources.getResourceAsStream(resource); //创建SqlSessionFactory SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in); //创建SqlSession SqlSession sqlSession = sqlSessionFactory.openSession(); //SqlSEssion帮我生成一个实现类 (给接口) UserMapper userMapper = sqlSession.getMapper(UserMapper.class); QueryVo vo=new QueryVo(); User u=new User(); u.setUsername("五"); vo.setUser(u); List<User> us = userMapper.findByQueryVo(vo); for (User use:us) { System.out.println(use); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统