最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybatis通過if語句實現增刪改查操作

 更新時間:2020年11月27日 11:55:06   作者:有個機車夢  
這篇文章主要介紹了mybatis通過if語句實現增刪改查操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

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

1 舉個例子

Student類:

@Data
public 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 id="getStudentByAge" parameterType="int" resultMap="studentMap">
 select * from student where age=#{age}
 </select>
 <select id="getStudentBySno" parameterType="int" resultMap="studentMap">
 select * from student where sno=#{sno}
 </select>

顯然,這樣子是不高效的

2 上手測試 實驗

實體類 Student:

@Data
public 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;
}

數據庫:

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;

手動添加一些數據

Dao層:

@Mapper
public 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 id="studentMap" type="com.entity.Student">
 <id property="id" column="id"/>
 <result property="age" column="age"/>
 <result property="sno" column="sno"/>
 </resultMap>

 <select id="getStudent" 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 id="deleteStudent" parameterType="Student">
 delete from student
 <where>
  <if test="age != null">
  age =#{age}
  </if>
  <if test="sno != sno">
  sno=#{sno}
  </if>
 </where>
 </delete>

</mapper>

Service層:

@Service
public 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:成功

通過sno屬性查詢:

通過屬性age刪除Student:

通過sno屬性刪除Student

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

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

注意不可以是這種情況

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

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

以上這篇mybatis通過if語句實現增刪改查操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Spring MVC過濾器-登錄過濾的代碼實現

    Spring MVC過濾器-登錄過濾的代碼實現

    本篇文章主要介紹了Spring MVC過濾器-登錄過濾,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧。
    2017-01-01
  • Java中List分片方式詳細解析

    Java中List分片方式詳細解析

    這篇文章主要介紹了Java中List分片方式詳細解析,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • Java Json字符串的雙引號(

    Java Json字符串的雙引號("")括號如何去掉

    這篇文章主要介紹了Java Json字符串的雙引號("")括號如何去掉?具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Spring?Boot整合Zookeeper實現分布式鎖的場景分析

    Spring?Boot整合Zookeeper實現分布式鎖的場景分析

    這篇文章主要介紹了Spring?Boot整合Zookeeper實現分布式鎖,zk實現分布式鎖完全是依靠zk節(jié)點類型當中的臨時序號節(jié)點來實現的,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • Java全局異常處理器實現過程解析

    Java全局異常處理器實現過程解析

    這篇文章主要介紹了Java全局異常處理器實現過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • spring?boot?實現一個?禁止重復請求的方法

    spring?boot?實現一個?禁止重復請求的方法

    這篇文章主要介紹了spring?boot?實現一個?禁止重復請求,當重復請求該方法時,會返回"Duplicate?request",避免重復執(zhí)行相同的操作,需要的朋友可以參考下
    2024-03-03
  • MyBatis實現動態(tài)SQL的實現方法

    MyBatis實現動態(tài)SQL的實現方法

    這篇文章主要介紹了MyBatis實現動態(tài)SQL的實現方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • java報錯Cause: java.sql.SQLException問題解決

    java報錯Cause: java.sql.SQLException問題解決

    本文主要介紹了java報錯Cause: java.sql.SQLException問題解決,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-08-08
  • Java擴展Nginx之共享內存

    Java擴展Nginx之共享內存

    這篇文章主要介紹了Java擴展Nginx之共享內存的相關資料,需要的朋友可以參考下
    2023-07-07
  • 基于Spring Boot不同的環(huán)境使用不同的配置方法

    基于Spring Boot不同的環(huán)境使用不同的配置方法

    下面小編就為大家分享一篇基于Spring Boot不同的環(huán)境使用不同的配置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01

最新評論

柯坪县| 抚顺县| 嘉鱼县| 兴城市| 苍南县| 甘德县| 米林县| 恩平市| 洞口县| 酒泉市| 聊城市| 武邑县| 汉中市| 花垣县| 苏尼特右旗| 山东省| 慈溪市| 大城县| 长垣县| 武邑县| 德阳市| 房山区| 大渡口区| 盘锦市| 璧山县| 花莲市| 新化县| 伊金霍洛旗| 于田县| 和平区| 吕梁市| 谷城县| 玛多县| 万全县| 桦南县| 岱山县| 天等县| 阳朔县| 获嘉县| 云霄县| 桂平市|