电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

mybatis通過if語句實現(xiàn)增刪改查操作

瀏覽:111日期:2023-10-21 12:03:25

有時候為了簡化我們的代碼。

1 舉個例子

Student類:

@Datapublic class Student { private Integer id; private Integer age; private Integer sno;}

有時候我們想通過age這個屬性獲取Student對象

有時候我們也想通過sno這個屬性獲取Student對象

難道我們在DAO層寫兩個接口?

比如這樣子?

Student getStudentByAge(Int age);

Student getStudentBySno(Int sno);

那么在mapper文件中要這樣寫?

<select parameterType='int' resultMap='studentMap'> select * from student where age=#{age} </select> <select parameterType='int' resultMap='studentMap'> select * from student where sno=#{sno} </select>

顯然,這樣子是不高效的

2 上手測試 實驗

實體類 Student:

@Datapublic class Student { @ApiModelProperty(name = 'id',example = '1',position = 1) private Integer id; @ApiModelProperty(name = 'age',value = '年齡',example = '18',position = 2) private Integer age; @ApiModelProperty(name = 'sno',value = '學號',example = '334',position = 3) private Integer sno;}

數(shù)據(jù)庫:

CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `age` int(11) DEFAULT NULL COMMENT ’年齡’, `sno` int(11) NOT NULL COMMENT ’學號’, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

手動添加一些數(shù)據(jù)

mybatis通過if語句實現(xiàn)增刪改查操作

Dao層:

@Mapperpublic interface StudentDao { /** * @description: 通過student中的屬性 查詢到student * @param: student * @author: Yuz * @creat_time: 2019/8/20 * @return: student **/ Student getStudent(Student student); /** * @description: 通過age sno 屬性來刪除 * @param: student * @author: Yuz * @creat_time: 2019/8/20 * @return: void **/ void deleteStudent(Student student);}

Mapper

<?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.dao.StudentDao'> <resultMap type='com.entity.Student'> <id property='id' column='id'/> <result property='age' column='age'/> <result property='sno' column='sno'/> </resultMap> <select parameterType='com.entity.Student' resultMap='studentMap'> select * from student where <if test='age != null'>age=#{age}</if> <if test='sno !=null'>sno=#{sno}</if> </select> <delete parameterType='Student'> delete from student <where> <if test='age != null'> age =#{age} </if> <if test='sno != sno'> sno=#{sno} </if> </where> </delete></mapper>

Service層:

@Servicepublic class StudentService { @Autowired StudentDao studentDao; /** * @description: 通過student中的屬性 查詢到student * @param: student * @author: Yuz * @creat_time: 2019/8/20 * @return: student **/ public Student getStudent(Student student){ return studentDao.getStudent(student); } /** * @description: 通過age sno 屬性來刪除 * @param: student * @author: Yuz * @creat_time: 2019/8/20 * @return: void **/ public void deleteStudent(Student student){ studentDao.deleteStudent(student); }}

Controller:

@RestController@Api('學生接口')@RequestMapping('/student')public class StudentController { @Autowired StudentService studentService; /** * @description: 通過student中的屬性 查詢到student * @param: student * @author: Yuz * @creat_time: 2019/8/20 * @return: student **/ @ApiOperation('通過屬性查詢student') @PostMapping('/getStudent') Student getStudent(@RequestBody Student student){ return studentService.getStudent(student); } /** * @description: 通過age sno 屬性來刪除 * @param: student * @author: Yuz * @creat_time: 2019/8/20 * @return: void **/ @ApiOperation('通過屬性刪除student') @PostMapping('/delete') public void deleteStudent(@RequestBody Student student){ studentService.deleteStudent(student); }}

3 直接測試

通過age屬性查詢student:成功

mybatis通過if語句實現(xiàn)增刪改查操作

通過sno屬性查詢:

mybatis通過if語句實現(xiàn)增刪改查操作

通過屬性age刪除Student:

mybatis通過if語句實現(xiàn)增刪改查操作

mybatis通過if語句實現(xiàn)增刪改查操作

通過sno屬性刪除Student

mybatis通過if語句實現(xiàn)增刪改查操作

mybatis通過if語句實現(xiàn)增刪改查操作

補充知識:mybatis使用if條件判斷,數(shù)字類型不能寫 0 !=‘’,否則會進不到條件拼接里面

1.對于 if條件判斷:數(shù)字類型屬性判斷的時候

注意不可以是這種情況

<if test='delFlag!= null and delFlag!= ’’'> and del_flag = #{delFlag}</if>

參數(shù)一個是0,一個是'',最終debug會走進case 8 里面,0和“”都會被轉(zhuǎn)成double進行比較,都會變成0.0,這就是mybati中if test 0!=''判定為false的原因

以上這篇mybatis通過if語句實現(xiàn)增刪改查操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

相關(guān)文章:
主站蜘蛛池模板: 高清视频编码器,4K音视频编解码器,直播编码器,流媒体服务器,深圳海威视讯技术有限公司 | 辽宁资质代办_辽宁建筑资质办理_辽宁建筑资质延期升级_辽宁中杭资质代办 | 黑龙江「京科脑康」医院-哈尔滨失眠医院_哈尔滨治疗抑郁症医院_哈尔滨精神心理医院 | 浙江工业冷却塔-菱电冷却塔厂家 - 浙江菱电冷却设备有限公司 | 胀套-锁紧盘-风电锁紧盘-蛇形联轴器「厂家」-瑞安市宝德隆机械配件有限公司 | 胶辊硫化罐_胶鞋硫化罐_硫化罐厂家-山东鑫泰鑫智能装备有限公司 意大利Frascold/富士豪压缩机_富士豪半封闭压缩机_富士豪活塞压缩机_富士豪螺杆压缩机 | 常州减速机_减速机厂家_常州市减速机厂有限公司 | 喷码机,激光喷码打码机,鸡蛋打码机,手持打码机,自动喷码机,一物一码防伪溯源-恒欣瑞达有限公司 | 外贮压-柜式-悬挂式-七氟丙烷-灭火器-灭火系统-药剂-价格-厂家-IG541-混合气体-贮压-非贮压-超细干粉-自动-灭火装置-气体灭火设备-探火管灭火厂家-东莞汇建消防科技有限公司 | 电动液压篮球架_圆管地埋式篮球架_移动平箱篮球架-强森体育 | 异噻唑啉酮-均三嗪-三丹油-1227-中北杀菌剂厂家 | 滁州高低温冲击试验箱厂家_安徽高低温试验箱价格|安徽希尔伯特 | NMRV减速机|铝合金减速机|蜗轮蜗杆减速机|NMRV减速机厂家-东莞市台机减速机有限公司 | 数年网路-免费在线工具您的在线工具箱-shuyear.com | 液氮罐_液氮容器_自增压液氮罐-北京君方科仪科技发展有限公司 | 不锈钢水箱厂家,不锈钢保温水箱-山东桑特供水设备 | 精密光学实验平台-红外粉末压片机模具-天津博君| 臭氧老化试验箱,高低温试验箱,恒温恒湿试验箱,防水试验设备-苏州亚诺天下仪器有限公司 | 水质监测站_水质在线分析仪_水质自动监测系统_多参数水质在线监测仪_水质传感器-山东万象环境科技有限公司 | 全自动在线分板机_铣刀式在线分板机_曲线分板机_PCB分板机-东莞市亿协自动化设备有限公司 | 海峰资讯 - 专注装饰公司营销型网站建设和网络营销培训 | ET3000双钳形接地电阻测试仪_ZSR10A直流_SXJS-IV智能_SX-9000全自动油介质损耗测试仪-上海康登 | 水篦子|雨篦子|镀锌格栅雨水篦子|不锈钢排水篦子|地下车库水箅子—安平县云航丝网制品厂 | 手术室净化厂家-成都做医院净化工程的公司-四川华锐-15年特殊科室建设经验 | 聚氨酯催化剂K15,延迟催化剂SA-1,叔胺延迟催化剂,DBU,二甲基哌嗪,催化剂TMR-2,-聚氨酯催化剂生产厂家 | Copeland/谷轮压缩机,谷轮半封闭压缩机,谷轮涡旋压缩机,型号规格,技术参数,尺寸图片,价格经销商 CTP磁天平|小电容测量仪|阴阳极极化_双液系沸点测定仪|dsj电渗实验装置-南京桑力电子设备厂 | 固诺家居-全屋定制十大品牌_整体衣柜木门橱柜招商加盟 | 压片机_高速_单冲_双层_花篮式_多功能旋转压片机-上海天九压片机厂家 | 刺绳_刀片刺网_刺丝滚笼_不锈钢刺绳生产厂家_安平县浩荣金属丝网制品有限公司-安平县浩荣金属丝网制品有限公司 | HEYL硬度计量泵-荧光法在线溶解氧仪-净时测控技术(上海)有限公司 | 沈阳真空机_沈阳真空包装机_沈阳大米真空包装机-沈阳海鹞真空包装机械有限公司 | 北京软件开发_软件开发公司_北京软件公司-北京宜天信达软件开发公司 | 京马网,京马建站,网站定制,营销型网站建设,东莞建站,东莞网站建设-首页-京马网 | 广州展览制作|展台制作工厂|展览设计制作|展览展示制作|搭建制作公司 | 洁净实验室工程-成都手术室净化-无尘车间装修-四川华锐净化公司-洁净室专业厂家 | 照相馆预约系统,微信公众号摄影门店系统,影楼管理软件-盟百网络 | 生物制药洁净车间-GMP车间净化工程-食品净化厂房-杭州波涛净化设备工程有限公司 | 能量回馈_制动单元_电梯节能_能耗制动_深圳市合兴加能科技有限公司 | 中细软知识产权_专业知识产权解决方案提供商| 纸塑分离机-纸塑分离清洗机设备-压力筛-碎浆机厂家金双联环保 | 防腐木批发价格_深圳_惠州_东莞防腐木厂家_森源(深圳)防腐木有限公司 |