使用Mybatis如何实现多个控制条件查询
目录
- 实现多个控制条件查询
- 扩展知识
- 实现多个条件简单查询
- 数据库的字段名和实体类的属性名不一致时
- 实现多个条件复杂查询
- MyBatis条件查询总结
- 1.if条件语句
- 2.choose(whenotherwise)
- 4.in的用法
- 5.模糊查询
实现多个控制条件查询
扩展知识
1.给包起别名用
< typeAliases>< typeAlias type=“MybatiesAnimal.Animal” alias=“animal”/>< !-- 指定实体类在哪个包里 -->< package name=“MybatiesAnimal”/>< /typeAliases>
2.在
文章图片
如果想用package直接引入所有mapper/xml, 那么要求接口和xml在一个包里
实现多个条件简单查询
操作步骤如下:
1.在Mapper.xml中输入要查询的SQL语句
文章图片
2.接口文件中参数用@Param接
语句如下:
public List selAnimalBy(@Param(“NAME”) String a,@Param(“kind”) String b);
如果传的是2个java简单类型 那么需要用@Param(“name”) 指定参数名
3.text文档中输出
语句如下:
List< Animal> animal1=sqlsession.getMapper(AnimalMapper.class).selAnimalBy(“老虎”, “猫科”); System.out.println(animal1);
数据库的字段名和实体类的属性名不一致时
因为数据库命名多个单词之间用下划线连接,而Java命名规则为第二个字母大写,命名规则不同时,需要传值。
方法一:修改SQL语句
SELECT a_sid sid,kind,numbers,address,NAME FROM animal
给a_sid 取别名为sid
xml中语句修改如下:
文章图片
方法二:通过配置resultMap标签
原查询语句:
< select id=“selAnimalBy” resultType=“animal” >SELECT * FROM animal WHERE NAME=#{NAME} AND kind=#{kind}< /select>
修改为:
文章图片
实现多个条件复杂查询
例如:查询动物列表中猫科中包含虎字段的数据
文章图片
SQL语句为:
SELECT * FROM animal WHERE 1=1 AND kind=“猫科” AND NAME LIKE ‘%虎%'
1.配置xml中的select标签
如下图:
文章图片
2.添加接口中的执行语句
public List< Animal> selCon(Animal animal);
3.text文档检验结果
Animal animal1=new Animal(); animal1.setKind(“猫科”); animal1.setName(“虎”); List< Animal>animal2=sqlsession.getMapper(AnimalMapper.class).selCon(animal1); System.out.println(animal2);
输出结果如下:
文章图片
MyBatis条件查询总结
1.if条件语句
SELECT ST.STUDENT_ID,ST.STUDENT_NAME,ST.STUDENT_SEX,ST.STUDENT_BIRTHDAY,ST.STUDENT_PHOTO,ST.CLASS_ID,ST.PLACE_IDFROM STUDENT_TBL STWHEREST.STUDENT_NAME LIKE CONCAT(CONCAT('%', #{studentName, jdbcType=VARCHAR}),'%') AND ST.STUDENT_SEX = #{studentSex, jdbcType=INTEGER} AND ST.STUDENT_BIRTHDAY = #{studentBirthday, jdbcType=DATE} AND ST.CLASS_ID = #{classId, jdbcType=VARCHAR} AND ST.CLASS_ID = #{classEntity.classId, jdbcType=VARCHAR} AND ST.PLACE_ID = #{placeId, jdbcType=VARCHAR} AND ST.PLACE_ID = #{placeEntity.placeId, jdbcType=VARCHAR} AND ST.STUDENT_ID = #{studentId, jdbcType=VARCHAR}
2.choose (when otherwise)
SELECT *FROM User uu.username LIKE CONCAT(CONCAT('%', #{username, jdbcType=VARCHAR}),'%') AND u.sex = #{sex, jdbcType=INTEGER} AND u.birthday = #{birthday, jdbcType=DATE}
select * from t_blog where 1 = 1and title = #{title} and content = #{content} and owner = "owner1"
4.in的用法
SELECTFROM tb_problemWHERE id IN #{id}
还可以这样
SELECT*FROMproduct_db.product pWHEREp.isvalid = 1//查询condition类Public OpenProductQueryCondition{private Integer productId; private List #{item} list; }
5.模糊查询
selectfrom users name like "%"#{name}"%" and phone like concat(concat("%",#{phone}),"%") and email like #{pattern}
【使用Mybatis如何实现多个控制条件查询】以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
推荐阅读
- 远程Service使用的几个坑
- 详解Vue3中setup函数的使用教程
- 阿里云态势感知服务使用教程
- MyBatis|Springboot整合Mybatis-plus
- 如何准备科目一考试?报名的学员、没考的学员都看看
- python|python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
- 正确使用|正确使用 iOS 开发中的六大操作手势
- 软件设计-DAO层如何设计(长文-转)
- 电气元件的使用|降压模块的使用
- STM32的使用|STM32F4软件IIC的使用