mybatis 条件查询

Mybatis多条件查询 我们来简单说一下,条件查询就是在查询的时候,根据多个条件进行查询,例如查询学生成绩的时候,我们要查找全班姓李和年龄为12的学生的成绩,那么这个条件查询分别是姓名和年龄。我们直接来看代码,看一下条件查询如何编写。在看条件查询之前,我们需要学会mybatis入门案例,大家可以点击查看mybatis入门案例。 阅读详情
package com.itheima.test;

import com.itheima.mapper.BrandMapper;
import com.itheima.pojo.Brand;
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 java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MyBatisTest {
    @Test
    public void testSelectAll() throws Exception {
        //1.获取核心配置文件
        //1.加载Mybatis 的核心配置文件,获取  sqlSessionFactory,用来执行sql语句的。
        String resource = "mybatis-config.xml";//配置文件的路径,就是加载url 用户名和密码之类的。

        InputStream inputStream = Resources.getResourceAsStream(resource);
        //通过mybatis 提供的一个资源加载的类 Resources类 ,将字符串输入的进来,得到一个字节输入流。

        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //然后得到一个sqlSessionFactory 对象。


        //2.获取sqlSession 对象

        SqlSession sqlSession = sqlSessionFactory.openSession();

        //3.获取mapper 接口的代理对象

        BrandMapper brandMapper = sqlSession.getMapper(BrandMapper.class);


        //4.执行方法

        List<Brand> brands = brandMapper.selectAll();
        System.out.println(brands);

        //5.释放资源

        sqlSession.close();

    }

@Test
    public void testSelectById() throws Exception {


        //1.获取核心配置文件
        //1.加载Mybatis 的核心配置文件,获取  sqlSessionFactory,用来执行sql语句的。
        String resource = "mybatis-config.xml";//配置文件的路径,就是加载url 用户名和密码之类的。

        InputStream inputStream = Resources.getResourceAsStream(resource);
        //通过mybatis 提供的一个资源加载的类 Resources类 ,将字符串输入的进来,得到一个字节输入流。

        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //然后得到一个sqlSessionFactory 对象。


        //2.获取sqlSession 对象

        SqlSession sqlSession = sqlSessionFactory.openSession();

        //3.获取mapper 接口的代理对象

        BrandMapper brandMapper = sqlSession.getMapper(BrandMapper.class);


        //4.执行方法
        int id = 1;
        Brand brand = brandMapper.selectById(id);
        System.out.println(brand);


        //5.释放资源

        sqlSession.close();

    }


    @Test
    public void testSelectByCondition() throws Exception {

        int status = 4;
        String companyName = "华为";
        String brandName = "华为";

        companyName = "%" + companyName + "%";
        brandName = "%" + brandName  + "%";

        Brand brand = new Brand();
        brand.setStatus(status);
        brand.setCompanyName(companyName);
        brand.setBrandName(brandName);

        //1.获取核心配置文件
        //1.加载Mybatis 的核心配置文件,获取  sqlSessionFactory,用来执行sql语句的。
        String resource = "mybatis-config.xml";//配置文件的路径,就是加载url 用户名和密码之类的。

        InputStream inputStream = Resources.getResourceAsStream(resource);
        //通过mybatis 提供的一个资源加载的类 Resources类 ,将字符串输入的进来,得到一个字节输入流。

        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //然后得到一个sqlSessionFactory 对象。


        //2.获取sqlSession 对象

        SqlSession sqlSession = sqlSessionFactory.openSession();

        //3.获取mapper 接口的代理对象

        BrandMapper brandMapper = sqlSession.getMapper(BrandMapper.class);


        //4.执行方法

//        List<Brand> brands = brandMapper.selectByCondition(status, companyName, brandName);

        List<Brand> brands = brandMapper.selectByCondition(brand);


        System.out.println(brands);

        //5.释放资源

        sqlSession.close();

    }
    
@Test
    public void testSelectByConditionMap() throws Exception {

        int status = 4;
        String companyName = "华为";
        String brandName = "华为";

        companyName = "%" + companyName + "%";
        brandName = "%" + brandName  + "%";
        
        Map map = new HashMap();
        
        map.put("status",status);
        map.put("companyName",companyName);
        map.put("brandName",brandName);
        

//        Brand brand = new Brand();
//        brand.setStatus(status);
//        brand.setCompanyName(companyName);
//        brand.setBrandName(brandName);

        //1.获取核心配置文件
        //1.加载Mybatis 的核心配置文件,获取  sqlSessionFactory,用来执行sql语句的。
        String resource = "mybatis-config.xml";//配置文件的路径,就是加载url 用户名和密码之类的。

        InputStream inputStream = Resources.getResourceAsStream(resource);
        //通过mybatis 提供的一个资源加载的类 Resources类 ,将字符串输入的进来,得到一个字节输入流。

        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //然后得到一个sqlSessionFactory 对象。


        //2.获取sqlSession 对象

        SqlSession sqlSession = sqlSessionFactory.openSession();

        //3.获取mapper 接口的代理对象

        BrandMapper brandMapper = sqlSession.getMapper(BrandMapper.class);


        //4.执行方法

//        List<Brand> brands = brandMapper.selectByCondition(status, companyName, brandName);

        List<Brand> brands = brandMapper.selectByCondition(map);


        System.out.println(brands);

        //5.释放资源

        sqlSession.close();

    }
    
    


}

MyBatis条件查询实战详解 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。它提供了以下功能特性:与JDBC紧密集成。 阅读详情

相关推荐

Xilinx SDK工程编译、链接、调试注意事项

1、添加工程 启动SDK时选取workspace,如下图所示: 对应的workpace文件夹中会生成如下几个文件: 如果当前workspace是首次加载工程,SDK会进入启动界面 点击Import Project,导入已有工程 点击Browse,添加工程路径,一个完整的工程包含一个bsp文件夹,一个HW文件夹,和一个src文件夹(添加C功能函数) 点击Fini...

Autumn_He的博客 1万+

mybatis 公用条件通用化

<select id="xxx" parameterType="xxx" resultMap="xxx"> select * from RECR_PROCESS where 1=1 <if test="xxx != null" > and <include refid="Convert_Report"> <!--这里...

随风往事 1723

基于Apache SeaTunnel构建CDC数据同步管道

Apache SeaTunnel是一个数据集成开发平台,其发展经历了几个重要阶段:ETL时代(90年代):面向结构化数据库的数据同步,用于构建数据仓库。MPP和分布式技术流行:使用技术如Hive进行数据仓库的构建。此阶段主要使用mapreduce程序进行数据搬运和转换。数据湖技术流行:重视数据集成,强调先同步数据至数据湖仓储,再进行业务面向的转换和设计。CDC,即变更数据捕获,是一种捕获数据库变更事件(如插入、更新、删除)的技术。

weixin_54625990的博客 2172

Mybatis中提取<where><if>公共查询条件

我们在使用mybatis写sql语句的时候,经常会遇到很多sql都会有拥有某些相同的查询条件,如果只是一个两个还感觉不到什么,可是如果查询语句特别多,而且又都拥有共同的查询条件的时候,我们可以考虑将中相同的条件抽取出来,然后封装一下,在需要的时候直接引用就可以了。 以我最近接受的代码为例: 1.未抽取前 <select id="selectVtRecordPage" parameterTyp...

sleepyhead1994的博客 7806

在 Ansys CFX Pre 中配置 RGP 表的分步指南

掌握在 Ansys CFX Pre 中设置 RGP 表的技巧,以优化仿真精度和效率。

jkh920184196的博客 1664

实测有效!YOLOv8融合EMA注意力机制后,在无人机航拍目标检测中的性能提升对比

本文详细介绍了YOLOv8融合EMA注意力机制在无人机航拍目标检测中的性能提升效果。通过多尺度特征融合和通道-空间双重注意力机制,EMA模块显著提升了小目标检测的准确率,mAP@0.5平均提升4.2%,同时保持推理速度基本不变。文章还提供了模型定制、训练技巧和实际部署优化的全流程指南。

weixin_33704234的博客 391

mybatis中提取公共的sql方法

mybatis中提取公共的sql方法 属于一个封装的标签,可以用于下面有重复条件的,这个可以简化mybatis中的代码量,调用的时候使用来进行调用!!! <sql id="common_where_if"> <if test="province != '全国' and province != null"> wo_province = #{province} </if> <if test="o

weixin_43417378的博客 2199

ArcGIS栅格数据像元值与坐标值提取及Excel导出全流程解析

本文详细解析了使用ArcGIS将栅格数据批量提取像元值与坐标值并导出至Excel的全流程。通过“栅格转点”、“添加XY坐标”和“表转Excel”三大核心步骤,无需编程即可自动化处理遥感、环境等领域的空间数据,有效提升数据分析效率。

zeta9的博客 365

MybatisPlus条件查询方法全解

例如:我想按照姓名升序,员工编号降序查询员工信息mysqlMP/*** 排序操作: 自定义升、降序* 参数解释:* param1: 满足condition为true的情况,才会拼接条件* param2: 是否升序 true:升序 false:降序* param3: 排序字段* <p>* 排序字段是可以为多个的MP/*** 自定义查询条件MP/*** 无视优化规则直接拼接到 sql 的最后。

startqbb的博客 1万+

用Python+PyTorch实现DQN无人机避障:从环境搭建到实战训练(附完整代码)

本文详细介绍了如何使用Python和PyTorch框架,基于深度强化学习中的DQN算法,实现一个无人机自主避障系统。内容涵盖从自定义环境搭建、DQN智能体核心算法实现,到完整的训练流程与超参数调优,并提供了可视化演示与进阶优化方向,为开发者提供了从理论到实践的完整指南。

kubernetes8ctl的博客 640

ifix5.8连接ab plc的点-通过rslinx

以ifix连接ab plc的点为例 1.先在rslinx上把plc的点导出为opc server 2.使用opc power tool 作为opc client 去连接 3.保存到项目的PDB文件夹下面,并且以节点名命名。 也可以不以节点名命名,系统自动会生成一个以节点名命名的这种文件,就显得很乱。 同时,项目的PDB目录下面必须还得拷过来一个de...

中国智造2025 4114

MyBatis—利用MyBatis查询(查询所有,查询一行,条件查询)

MyBatis—利用MyBatis查询(查询所有,查询一行,条件查询)

chenxingxingxing的博客 3万+

3步!Spring Boot+OCR引擎秒提身份证/营业执照?手把手教你从零实现!

OCR技术革新文档识别效率 本文演示了如何利用Spring Boot+Tesseract OCR+OpenCV构建自动化文档识别系统。相比传统人工录入,OCR技术可实现: 5秒极速提取身份证/营业执照关键信息 精准识别中文文本(准确率90%+) 正则过滤自动匹配结构化数据 技术要点: OpenCV图像预处理(灰度化+二值化) Tesseract多语言OCR识别 正则表达式精准提取证件号码 效率提升达100倍,错误率降低90%,适用于金融、政务等需要批量处理证件的场景。

java专栏 905

MyBatis条件查询

单条件查询 用select查询数据时,如果需要用户传入的参数只有一个时,可以直接在接口代理方法中设置一个参数: 如上图的selectById(int id)方法,定义好方法后需要在对应的映射文件中写上对应的SQL语句 只需要将对应的参数名传入#{}中即可实现插入参数,还有一种方法是将#改成$,这两个的区别在于:$代表的是先拼接字符串,再对SQL进行编译,而#则是先预编译SQL语句,再传入参数的值,这样可以防止字符串拼接时的SQL注入问题,具体可看我的另一篇文章 JDBC解决SQL注入问题 多条件查询 当

MarconiYe的博客 4995

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

mybatis多个查询条件

  &lt;!--随便下面参数的其中一个都可以查询--&gt; &lt;!-- &lt;select id="selectBankInfo" resultMap="BaseResultMap" &gt; SELECT bankHolderName,bankHolderStatus,bankAccountNum,bankName,branchName,branchAddress from ...

子与 5558

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

使用MyBatis实现条件查询总结

使用MyBatis实现条件查询SQL映射文件使用SELECT完成单条件查询使用SELECT完成多条查询使用resultMap完成查询结果的展现 SQL映射文件 Mybatis真正强大的是在于它的SQL映射语句,也是它的流弊之处。 它的功能强大,SQL映射文件的配置却比较简单。 使用SQL映射文件可以减少50%以上的代码量。 Mybatis专注于SQL,对于开发人员来说可极大限度地进行SQL调优,以保证性能, 下面是SQL映射文件的几个顶级元素配置 mapper 它是映射文件的根节点,只有一个属性就是

LiuLiangLONG的博客 8092

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Mybatis-plus实现条件查询

Mybatis-plus实现条件查询(复杂查询) 1.我们一般都会用到条件查询,下面来看看mybatis-plus中几个常见的条件查询,思路很简单,创建QueryWrapper对象,然后再调用各种方法。 然后把wrapper对象,传过去即可。 //条件查询(复杂查询) @Test public void testSelectQuery(){ //创建对象 QueryWrapper<User> wrapper = new QueryWrapper

weixin_46295656的博客 2万+

mybatis 多条件查询、in查询

当参数有值,添加条件查询,附带一个字符串的in查询 resultMap: <resultMap id="eventMap" type="com.szkingdom.entityserver.vo.event.EventBean"> <id column="id" jdbcType="BIGINT" property="id" /> <result ...

你当像鸟飞往你的山~~ 3326

mybatis的分页查询和条件查询

(1)无条件的分页查询: <!-- 分页查询和条件查询,传入map,map存放两个对象,dataTablesInp是存放分页信息的对象 --> <select id="findPersons" parameterType="map" resultType="com.weixz.domain.Person" > select * from person ...

qq_41537826的博客 727

Mybatis-plus分页查询和条件查询通用写法

一查询条件VO /** * @className: TeacherQueryVo * @description: 讲师查询条件封装 * @date: 2020/11/18 * @author: cakin */ @ApiModel("Teacher查询对象") @Data public class TeacherQueryVo implements Serializable { private static final long serialVersionUID = 1L; @Api.

实践求真知 7226

MyBatis基本查询、条件查询、查询排序

"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> resultMap="linkType"> SELECT * FROM OD_LINK_TYPE WHERE LINK_URI = #{linkUri} resultType

xiao雷博客 2619

Mybatis动态查询条件构建的历史演进:MyBatis,MyBatis-Generator-Example,MyBatis-Plus,MyBatis-Flex

Mybatis动态查询条件构建的历史演进:MyBatis,MyBatis-Generator-Example,MyBatis-Plus,MyBatis-Flex。 MyBatis-Generator动态查询条件构建。 updateByExampleSelective的含义。

宋冠巡的博客 1843

使用MyBatis实现条件查询

在test/java的net.huawei.mybatis.mapper包里创建TestStudentMapper类。运行测试方法testFindByCondition(),查看结果。运行测试方法testFindByCondition(),查看结果。运行测试方法testFindByCondition(),查看结果。运行测试方法testFindByCondition(),查看结果。比如查询姓“吴”,性别为“女”,同时年龄为19的学生记录。注意:注意:通配符%与_的区别。修改测试方法里的查询条件。

梁辰兴的博客 2818

mybatis Example条件查询

目录:   or条件查询时,结合0、1两个例子得出差异   Criteria添加条件时如果遇上or条件时,结合2、3两个例子得出差异 0.   DepartmentExample departmentExample = new DepartmentExample();   departmentExample.createCriteria().andTenantIdEqualTo(te

for_the_time_begin 1610

gorm 查询where 条件为空_MyBatis多条件查询

在前面内容的基础上,我们在UserDao中编写一个方法在UserMappper中编写编写测试类,这个测试类的查询条件全部不为空查看结果我们设置部分条件是空的,例如用户角色为空我们修改下测试部分的代码运行测试代码我们发现那么这个结果是否正确呢?我们查看日志信息将查询语句摘取出来,里面的问号改成我们的查询数据,在数据库命令行中执行发现是有数据的,很显然我们的代码有问题这是因为在进行多条件查询的是否,用...

weixin_39651488的博客 2285
上一篇: mybatis 快速入门
下一篇: 黑马的ssm课程中class报错:Description : The fully qualified name of the bean‘s class, except if it serves onl
atitude
博客等级 码龄7年 10粉丝 197原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值