mybatis 入门进阶之 pojo
有时候我们dao方法声明的入参需要是自定义的pojo,以满足复杂的查询条件。
IWebUserCustomDao.java
package com.mozi.dao; import java.util.List; import com.mozi.entity.WebUser;
import com.mozi.entity.WebUserCustom; public interface IWebUserCustomDao { public List<WebUser> findUserList(WebUserCustom userQueryVo);
}
sqlmap\userCustomMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace命名空间,作用就是对sql进行分类化的管理,理解为sql隔离
注意:使用mapper代理开发时,namespace有特殊作用
-->
<mapper namespace="com.mozi.dao.IWebUserCustomDao"> <select id="findUserList" parameterType="com.mozi.entity.WebUserCustom" resultType="com.mozi.entity.WebUser" >
select * from WebUsers
<where>
<if test ="enable!=null">
Enable = #{enable}
</if>
<if test ="enable==null">
Enable is NULL
</if>
</where>
</select> </mapper>
同事statment中用到了动态sql : where ,if 。
测试类WebUserCustomDaoImplTest.java
package com.mozi.test.java; import static org.junit.Assert.*; import java.io.IOException;
import java.io.InputStream;
import java.util.List; import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test; import com.mozi.dao.IWebUserCustomDao;
import com.mozi.dao.IWebUserDao;
import com.mozi.dao.impl.WebUserDaoMybatis3;
import com.mozi.entity.WebUser;
import com.mozi.entity.WebUserCustom; public class WebUserCustomDaoImplTest { private static SqlSessionFactory sqlSessionFactory = null; static{
String resource = "SqlMapConfig.xml";
InputStream inputStream = null;
try {
inputStream = Resources.getResourceAsStream(resource);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} @Test
public void findUserListTest() {
SqlSession sqlSession=null; sqlSession=sqlSessionFactory.openSession(); //生成代理类
IWebUserCustomDao userMapper=sqlSession.getMapper(IWebUserCustomDao.class);
//创建包装对象,设置查询条件
WebUserCustom userCustom=new WebUserCustom();
userCustom.setEnable(true); List<WebUser> list = userMapper.findUserList(userCustom);
System.out.println(list); sqlSession.close(); } }
mybatis 入门进阶之 pojo的更多相关文章
- mybatis 入门进阶之 mapper
由于上节 <mybatis 入门优化>中的dao实现类耦合了user.xml中的statment的id,例如:src.main.resource.userMapper.findUserBy ...
- 走进JavaWeb技术世界14:Mybatis入门
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- MyBatis1:MyBatis入门
MyBatis是什么 MyBatis是什么,MyBatis的jar包中有它的官方文档,文档是这么描述MyBatis的: MyBatis is a first class persistence fra ...
- mybatis入门基础(二)----原始dao的开发和mapper代理开发
承接上一篇 mybatis入门基础(一) 看过上一篇的朋友,肯定可以看出,里面的MybatisService中存在大量的重复代码,看起来不是很清楚,但第一次那样写,是为了解mybatis的执行步骤,先 ...
- MyBatis入门基础(一)
一:对原生态JDBC问题的总结 新项目要使用mybatis作为持久层框架,由于本人之前一直使用的Hibernate,对mybatis的用法实在欠缺,最近几天计划把mybatis学习一哈,特将学习笔记记 ...
- MyBatis入门(五)---延时加载、缓存
一.创建数据库 1.1.建立数据库 /* SQLyog Enterprise v12.09 (64 bit) MySQL - 5.7.9-log : Database - mybatis ****** ...
- 20160526-20160531mybatis入门进阶
mybatis第二天 高级映射 查询缓存 和spring整合 课程复习: mybatis是什么? mybatis是一人持久层框架,mybatis是一个不完全的ORM框架.sql语句需要程序员自己去编 ...
- MyBatis(1):MyBatis入门
MyBatis是什么 MyBatis是什么,MyBatis的jar包中有它的官方文档,文档是这么描述MyBatis的: MyBatis is a first class persistence fra ...
- mybatis系列笔记(1)---mybatis入门
mybatis入门 MyBatis是什么? MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了goog ...
随机推荐
- 【android】WebView缓存数据收集
Android WebView 缓存 Android高手进阶教程(二十四)之---Android WebView的缓存!!! Android webView 缓存 Cache + HTML5离线功能 ...
- [LeetCode] ZigZag Conversion [9]
称号 The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows li ...
- 使用Prism提供的类实现WPF MVVM点餐Demo
使用Prism提供的类实现WPF MVVM点餐Demo 由于公司开发的技术需求,近期在学习MVVM模式开发WPF应用程序.进过一段时间的学习,感受到:学习MVVM模式,最好的方法就是用MVVM做几个D ...
- C# 语言的两个html解析器
基于C# 语言的两个html解析器 基于C# 语言的两个html解析器 1)Html Agility Pack http://nsoup.codeplex.com/ 代码段示例: HtmlDocu ...
- [翻译]初识SQL Server 2005 Reporting Services Part 1
原文:[翻译]初识SQL Server 2005 Reporting Services Part 1 构建和部署基本报表 如果曾经存在一项工作使得“真正的”开发者给他的上司泡蘑菇,那就是构建报表.毕竟 ...
- bootstrap导航菜单,手机和PC端
源代码 <!DOCTYPE html> <html> <head lang="en"> <meta name="viewport ...
- MVC5入门学习系列④
添加Model且简单的使用EF 对于EF(EntityFramework)不了解的朋友可以去百度文科或者在园子里搜一些简资源看下,假如和我一样知道EF的概念,那么就知道EF有一个code first的 ...
- 求解轨道力学二体意义下的Lambert方程(兰伯特方程)的Fortran程序
轨道力学中二体问题下求解兰伯特方程. 老外写的Matlab程序,我把它转成了Fortran程序. !************************************************** ...
- MVC Sesion丢失问题
花了两个小时的时间处理一个Session 取值问题 使用MVC LoadCheckController(登录校验)登录成功后创建一个Session,Session中封装了用户的相关信息如权限基本信息, ...
- .NET面试问答集锦
程序员级别鉴定书(.NET面试问答集锦) 提供避免元素命名冲突的方法 DOM适合的使用场景是什么?是否有尺寸限制? DOM是一种与浏览器,平台,语言无关的接口,使你可以访问页面其他的标准组件. DOM ...