条件筛选([尚硅谷]_张晓飞_Mybatis 学习笔记五)
目录
一、定义用户表
二、与数据库表对应的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<=#{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 学习笔记五)相关推荐
- mybatis 入门([尚硅谷]_张晓飞_Mybatis 学习笔记一)
目录 一.创建数据库 二.添加log4j日志 三.定义java类和配置xml 3.1 定义xml,xml 中的id作为操作sql的唯一标识 3.2 定义接口,接口方法作为操作sql 的唯一标识 一.创 ...
- 尚硅谷Vue2-3(张天禹老师) 学习笔记
这里写目录标题 (一) 基本模块 01基础模板语法 1.1插值语法 -- 解析标签体里的内容 1.2指令语法 -- 解析标签 数据绑定 条件渲染 1.2.1 **`v-bind:xxx`** 1.2. ...
- (尚硅谷java零基础教程)学习笔记day7/8-数组
1.数组的概述 1.1 定义 数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理. 1.2 数组的相关概念 数组名 元素 数组的索引 ...
- 尚硅谷+黑马程序员MongoDB视频学习笔记(一)
本学习笔记是来源于学习B站上的尚硅谷和黑马的MongoDB教学视频而做的知识总结. 一.数据库(Database) 数据库是按照数据结构来组织.存在和管理数据的仓库.说白了,数据库就是存在数据的仓库. ...
- 《尚硅谷30天入门Java》学习笔记1
第0天–准备工作 1.工具之印象笔记 浏览器插件.Android.Windows客户端.chrome印象笔记插件可以实现减藏页面,做笔记! 一个浏览器插件的网站 之前拖插件到拓展程序这里,显示crx_ ...
- 【学习笔记】尚硅谷周阳老师的Docker教程学习笔记
本文是尚硅谷周阳老师的Docker教程的相关学习笔记,暂时还没有检查勘误过. 一.Docker简介 1. 简介 Docker的出现是为了解决代码在本机可以正常运行,而部署到其他机器不能运行的问题.这是 ...
- 尚硅谷周阳老师 SpringCloud第二季学习笔记
前言:首先感谢尚硅谷周阳老师的讲解,让我对springcloud有了很好的理解,周阳老师的讲课风格真的很喜欢,内容充实也很幽默,随口一说就是一个段子,我也算是周阳老师的忠实粉丝啦. 先说说课程总体内容 ...
- 尚硅谷Kubernetes(k8s)视频学习笔记
这里写目录标题 kubernetes (k8s) 主要内容 一. kubernetes 概述 1. kubernetes 基本介绍 2. kubernetes 功能和架构 2.1 概述 2.2 K8s ...
- 尚硅谷web前端工程师1000集学习笔记11
一个练习 <!doctype html> <html> <head> <meta charset="utf-8" ...
最新文章
- iOS App与iTunes文件传输的方法和对iOS App文件结构的说明
- LayoutInflater中调用系统服务
- WordPress菜单“显示选项”无法显示的解决办法
- 锲而不舍 —— M 是怎样找工作的?(八)
- 几种常见SQL分页方式效率比较
- ReactiveCocoa入门教程——第一部分
- ltrim函数_MySQL|trim() 函数用法
- 10条设计推荐系统的经验和教训
- selenium 验证码_selenium自动化测试之验证码处理
- 用了这么久的 Chrome,你不会还没掌握这个功能吧?
- [转]printf 函数实现的深入剖析
- 遗传算法原理及其python实现
- eclipse字体大小设置
- 测试驱动开发心得体会
- 多因子模型matlab,【干货】不可不知的N种量化策略模型——量化因子
- git pull 拉取代码的时候报错 Pulling is not possible because you have unmerged files.
- 八、血条的制作和boss敌人的产生(雷霆战机)
- 【转】我的助理辞职了!
- Github如何回滚代码?
- 云计算除了具有极高的市场效益外,简化企业IT运营、内置安全和易于部署等优势非常明显
热门文章
- iOS (2020年9月) 最新苹果企业级账号申请流程及客服审核问题
- Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束
- 数据库实验一---图书管理的数据库建立
- 搜狗输入法电脑端如何分词
- 一个古典概率问题(小学奥数题)
- win11 使用win10之前默认右击菜单展开的方式
- vue打包npm run build报错
- 「镁客早报」国内航空公司暂停运行波音737MAX客机;英伟达将以70多亿美元收购以色列芯片制造商Mellanox... 1
- python发票识别代码_python 发票验证码自动生成
- UOS共享功能如何使用账号密码访问