目录

一、定义用户表

二、与数据库表对应的javabean

三、使用javabean对象作为查询条件

测试类

四、使用Map对象作为查询条件

五、mybatis的配置数据源


一、定义用户表

create table d_user(  id int primary key auto_increment,  name varchar(10),age int(3)
); insert into d_user(name,age) values('Tom',12);
insert into d_user(name,age) values('Bob',13);
insert into d_user(name,age) values('Jack',18);

二、与数据库表对应的javabean

package com.hb.bean;public class User {private int id;private String name;private int age;private int minAge;private int maxAge;public int getMinAge() {return minAge;}public void setMinAge(int minAge) {this.minAge = minAge;}public int getMaxAge() {return maxAge;}public void setMaxAge(int maxAge) {this.maxAge = maxAge;}//get,set方法public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public User(int id, String name, int age) {super();this.id = id;this.name = name;this.age = age;}public User() {}@Overridepublic String toString() {return "User [id=" + id + ", name=" + name + ", age=" + age + "]";}}

备注:javabean比user表多了minAge喝maxAge两个属性,用于数据筛选。

三、使用javabean对象作为查询条件

<?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">
<mapper namespace="com.hb.bean.userMapper"><!-- 这里namespace必须是“包名 + xml文件名”,不然要运行的时候要报错 “is not known to the MapperRegistry” --><select id="getUser" parameterType="com.hb.bean.User"resultType="com.hb.bean.User">select * from user where age>=#{minAge} and age&lt;=#{maxAge}<if test='name!=null'>and name like #{name}</if></select></mapper>

测试类

package com.hb.test5;import java.io.InputStream;
import java.util.List;import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test;import com.hb.bean.User;public class Test5 {public static SqlSessionFactory sqlSessionFactory;public static SqlSession sqlSession;@Beforepublic void init(){//"/"表示是在src根目录下String source = "config.xml";InputStream inputStream = Test5.class.getClassLoader().getResourceAsStream(source);try {sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//          sqlSession = sqlSessionFactory.openSession();//是否自动提交,默认不是自动提交的sqlSession = sqlSessionFactory.openSession(true);} catch (Exception e) {e.printStackTrace();}}@Testpublic void selectByCondition(){String statment = "com.hb.bean.userMapper.getUser";User conditon = new User();conditon.setMaxAge(15);conditon.setMinAge(1);
//      conditon.setName("%a%");//查询list集合List<User> users = sqlSession.selectList(statment, conditon);System.out.println(users);}}

测试打印的日志

2015-02-24 11:54:42,824 [main] DEBUG [com.hb.bean.userMapper.getUser] - ooo Using Connection [com.mysql.jdbc.Connection@11fda7c]
2015-02-24 11:54:42,824 [main] DEBUG [com.hb.bean.userMapper.getUser] - ==>  Preparing: select * from user where age>=? and age<=?
2015-02-24 11:54:42,887 [main] DEBUG [com.hb.bean.userMapper.getUser] - ==> Parameters: 1(Integer), 15(Integer)
[User [id=8, name=Tom, age=12], User [id=9, name=Bob, age=13]]

四、使用Map对象作为查询条件

<!-- 分页通过业务查询所有的机构 --><select id="queryOrgByApp" parameterType="java.util.Map" resultType="adtec.ta_org_relationManager.model.Ta_org_relation">select a.orgRelationId,a.appid,a.ta_id,a.orgId,c.orgName,b.appNamefrom ta_org_relation a,ta_app b,ta_organization cwhere a.appid = b.appidand a.orgId = c.orgIdand a.appid=#{appid}<if test="orgId !=null">and a.orgId in   <foreach item="item" index="index" collection="list" open="(" separator="," close=")">   #{item}   </foreach> </if>limit #{start},#{pageSize}</select>

五、mybatis的配置数据源

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><settings><!-- changes from the defaults for testing --><setting name="cacheEnabled" value="false" /><setting name="useGeneratedKeys" value="true" /><setting name="defaultExecutorType" value="REUSE" /></settings><environments default="development"><environment id="development"><transactionManager type="jdbc" /><dataSource type="POOLED"><!-- <property name="driver" value="oracle.jdbc.driver.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@192.168.56.201:1521:system"/> --><property name="driver" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/mybatis" /><property name="username" value="root" /><property name="password" value="123456" /></dataSource></environment></environments><mappers><mapper resource="com/hb/bean/userMapper.xml" /></mappers></configuration>

  • 大小: 9.5 KB
  • 查看图片附件

条件筛选([尚硅谷]_张晓飞_Mybatis 学习笔记五)相关推荐

  1. mybatis 入门([尚硅谷]_张晓飞_Mybatis 学习笔记一)

    目录 一.创建数据库 二.添加log4j日志 三.定义java类和配置xml 3.1 定义xml,xml 中的id作为操作sql的唯一标识 3.2 定义接口,接口方法作为操作sql 的唯一标识 一.创 ...

  2. 尚硅谷Vue2-3(张天禹老师) 学习笔记

    这里写目录标题 (一) 基本模块 01基础模板语法 1.1插值语法 -- 解析标签体里的内容 1.2指令语法 -- 解析标签 数据绑定 条件渲染 1.2.1 **`v-bind:xxx`** 1.2. ...

  3. (尚硅谷java零基础教程)学习笔记day7/8-数组

    1.数组的概述 1.1 定义 数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理. 1.2 数组的相关概念 数组名 元素 数组的索引 ...

  4. 尚硅谷+黑马程序员MongoDB视频学习笔记(一)

    本学习笔记是来源于学习B站上的尚硅谷和黑马的MongoDB教学视频而做的知识总结. 一.数据库(Database) 数据库是按照数据结构来组织.存在和管理数据的仓库.说白了,数据库就是存在数据的仓库. ...

  5. 《尚硅谷30天入门Java》学习笔记1

    第0天–准备工作 1.工具之印象笔记 浏览器插件.Android.Windows客户端.chrome印象笔记插件可以实现减藏页面,做笔记! 一个浏览器插件的网站 之前拖插件到拓展程序这里,显示crx_ ...

  6. 【学习笔记】尚硅谷周阳老师的Docker教程学习笔记

    本文是尚硅谷周阳老师的Docker教程的相关学习笔记,暂时还没有检查勘误过. 一.Docker简介 1. 简介 Docker的出现是为了解决代码在本机可以正常运行,而部署到其他机器不能运行的问题.这是 ...

  7. 尚硅谷周阳老师 SpringCloud第二季学习笔记

    前言:首先感谢尚硅谷周阳老师的讲解,让我对springcloud有了很好的理解,周阳老师的讲课风格真的很喜欢,内容充实也很幽默,随口一说就是一个段子,我也算是周阳老师的忠实粉丝啦. 先说说课程总体内容 ...

  8. 尚硅谷Kubernetes(k8s)视频学习笔记

    这里写目录标题 kubernetes (k8s) 主要内容 一. kubernetes 概述 1. kubernetes 基本介绍 2. kubernetes 功能和架构 2.1 概述 2.2 K8s ...

  9. 尚硅谷web前端工程师1000集学习笔记11

    一个练习 <!doctype html> <html>     <head>         <meta charset="utf-8" ...

最新文章

  1. iOS App与iTunes文件传输的方法和对iOS App文件结构的说明
  2. LayoutInflater中调用系统服务
  3. WordPress菜单“显示选项”无法显示的解决办法
  4. 锲而不舍 —— M 是怎样找工作的?(八)
  5. 几种常见SQL分页方式效率比较
  6. ReactiveCocoa入门教程——第一部分
  7. ltrim函数_MySQL|trim() 函数用法
  8. 10条设计推荐系统的经验和教训
  9. selenium 验证码_selenium自动化测试之验证码处理
  10. 用了这么久的 Chrome,你不会还没掌握这个功能吧?
  11. [转]printf 函数实现的深入剖析
  12. 遗传算法原理及其python实现
  13. eclipse字体大小设置
  14. 测试驱动开发心得体会
  15. 多因子模型matlab,【干货】不可不知的N种量化策略模型——量化因子
  16. git pull 拉取代码的时候报错 Pulling is not possible because you have unmerged files.
  17. 八、血条的制作和boss敌人的产生(雷霆战机)
  18. 【转】我的助理辞职了!
  19. Github如何回滚代码?
  20. 云计算除了具有极高的市场效益外,简化企业IT运营、内置安全和易于部署等优势非常明显

热门文章

  1. iOS (2020年9月) 最新苹果企业级账号申请流程及客服审核问题
  2. Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束
  3. 数据库实验一---图书管理的数据库建立
  4. 搜狗输入法电脑端如何分词
  5. 一个古典概率问题(小学奥数题)
  6. win11 使用win10之前默认右击菜单展开的方式
  7. vue打包npm run build报错
  8. 「镁客早报」国内航空公司暂停运行波音737MAX客机;英伟达将以70多亿美元收购以色列芯片制造商Mellanox... 1
  9. python发票识别代码_python 发票验证码自动生成
  10. UOS共享功能如何使用账号密码访问