
Mybatis学习笔记七 动态查询语句
发布日期:2021-05-07 00:08:36
浏览次数:26
分类:精选文章
本文共 2816 字,大约阅读时间需要 9 分钟。
动态sql查询语句
1、动态sql査询介绍:
动态sql是Mybatis框架中极其强大的一项功能。在实际的软件开发中,经常有这样的一个霈求场录:査询某一张表中的数据记录时,査询的条件有很多个,但査询的条件个数不确定。
a、在jdbc中要实现条件个数不确定的查询非常麻烦,常用的一种思路是:先通过if语句判断某一个条件是否存在,然后通过字符 串中的方法来拼接sql语句
b、在Mybatis中有很多非常实用的标签,例如可以通过if标签来实现sql语句的动态査询
实例
工程目录:
mybatis.xml
没有做任何改变,
Computer.java
也未做任何改变
package cn.java.entity;public class Computer { private String isbn; private String book_name; private String price; public String getIsbn() { return isbn; } public void setIsbn(String isbn) { this.isbn = isbn; } public String getBook_name() { return book_name; } public void setBook_name(String book_name) { this.book_name = book_name; } public String getPrice() { return price; } public void setPrice(String price) { this.price = price; } @Override public String toString() { return "Computer [isbn=" + isbn + ", book_name=" + book_name + ", price=" + price + "]"; } }局部配置文件
ComputerDaoImpl.xml
注意:为了避免sql语句传入参数为空,这样设置sql 语句:
select * from book where 1=1
当传入参数为空的时候,sql语句也可以正常的执行。
测试方法 ComputerDaoImpl.java
package cn.java.dao.impl;import static org.hamcrest.CoreMatchers.nullValue;import java.io.IOException;import java.io.InputStream;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.annotation.Resource;import javax.xml.bind.annotation.XmlTransient;import org.apache.ibatis.annotations.One;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.Before;import org.junit.Test;import cn.java.entity.Computer;public class ComputerDaoImpl { private static SqlSession session=null; @Before public void init(){ try { SqlSessionFactoryBuilder sfb=new SqlSessionFactoryBuilder(); InputStream ins=Resources.getResourceAsStream("mybatis.xml"); SqlSessionFactory ssf= sfb.build(ins); session=ssf.openSession(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Test public void dynamicSelect() throws IOException{ //封装参数 Map动态sql查询在实际的使用中非常广。parameterMap=new HashMap (); //parameterMap.put("isbn", "1001"); parameterMap.put("book_name", "Oracle"); List
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年03月26日 09时26分39秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
11.2.6 时间值的小数秒
2021-05-08
Redis源码分析(七)--- zipmap压缩图
2021-05-08
自定义Hive Sql Job分析工具
2021-05-08
【MySQL】(九)触发器
2021-05-08
关于Altium Designer 09导出BOM表不能正确分类问题
2021-05-08
Oracle 11G环境配置
2021-05-08
【Python】(十二)IO 文件处理
2021-05-08
【Oozie】(三)Oozie 使用实战教学,带你快速上手!
2021-05-08
师兄面试遇到这条 SQL 数据分析题,差点含泪而归!
2021-05-08
C语言的数值溢出问题(上)
2021-05-08
BottomNavigationView控件item多于3个时文字不显示
2021-05-08
函数指针的典型应用-计算函数的定积分(矩形法思想)
2021-05-08
8051单片机(STC89C52)以定时器中断模式实现两倒计时器异步计时
2021-05-08
用 wxPython 打印你的 App
2021-05-08
vue项目通过vue.config.js配置文件进行proxy反向代理跨域
2021-05-08
Linux下安装MySql过程
2021-05-08
android:使用audiotrack 类播放wav文件
2021-05-08
vue通过better-scroll 封装自定义的下拉刷新组件
2021-05-08
android解决:使用多线程和Handler同步更新UI
2021-05-08
Element UI 中动态路由的分析及实现
2021-05-08