Mybatis
本文最后更新于 162 天前,其中的信息可能已经有所发展或是发生改变。

数据库

假设有如下数据库:

是一个简单的学生表(Students)的数据库表结构示例,包括一些基本的字段:

  1. StudentID(学生ID):唯一标识每个学生的编号。
  2. Name(姓名):学生的姓名。
  3. Age(年龄):学生的年龄。
  4. Gender(性别):学生的性别。
  5. Email(电子邮件):学生的电子邮件地址。
  6. PhoneNumber(电话号码):学生的电话号码。
  7. Address(地址):学生的居住地址。
  8. EnrollmentDate(入学日期):学生入学的日期。

sql语句

CREATE TABLE Students (
    StudentID INT PRIMARY KEY,
    Name VARCHAR(100),
    Age INT,
    Gender VARCHAR(10),
    Email VARCHAR(100),
    PhoneNumber VARCHAR(20),
    Address VARCHAR(255),
    EnrollmentDate DATE
);

动态SQL

动态SQL-if

假设有如下需求:

1.通过输入的学生姓名模糊查询同时会根据年龄和性别筛选,然后根据入学日期降序排序

使用<where>标签和<if>标签,<if>标签中的test属性会根据条件来决定是否拼接标签内的sql语句,<where>标签当内部没有任何语句时,不会拼接where,并且会主动去除and,or等。

如下是xml文件示例:

<?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="org.mybatis.example.StudentMapper">
  <select id="SearchStudentList" resultType="Student">
    select * from student 
    <where>
        <if test="name != null">
            name like concat("%",#{name}+,%")
        </if>
        <if test="age != null">
            and age = #{age}
        </if>
        <if test="gender!=null">
            and gender=#{gender}
        </if>
    </where> 
    order by enrollmentdate desc
  </select>
</mapper>

同理用于更新的set也有<set>标签

动态sql-foreach

假设有如下需求:

1.前段发过来一个包含id的列表,根据这个列表批量删除学生信息

<foreach>标签可以遍历可迭代对象(如 List、Set 等)、Map 对象或者数组对象。

属性说明:

  • collection:所要迭代的对象
  • item:是当前迭代的对象
  • index: 是当前迭代的序号
  • separator:分隔符
  • open:起始位置拼接字符
  • close:结束位置拼接字符

xml文件示例:

<?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="org.mybatis.example.StudentMapper">
  <delete id="DeleteByIdList">
    delete from student where studentid in
    <foreach collection="list" item="id" separator="," open="(",close=")">
        #{id}
    </foreach>
  </delete>
</mapper>
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇