Mysql:重点且常用的 SQL 标签整理

目录

1   标签

2  标签

3  标签

4  标签

5   标签

6  标签

7  标签


标签

比如以下代码:

    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    

上述是   标签来映射查询结果到 SysCollege 对象的示例,该代码定义了一个名为 SysCollegeResult 的结果映射,用于将查询结果中的列与 SysCollege 对象的属性进行映射,这样定义了结果映射之后,当执行查询语句时,MyBatis 将会根据该映射将查询结果中的列值赋给 SysCollege 对象的对应属性。


使用定义好的 标签:

Mysql:重点且常用的 SQL 标签整理_第1张图片

2 标签

比如以下代码:

    
        select major_id, major_code, major_name, major_type, major_degree, major_career from sys_major
    

这个就是定义好的sql代码块,可以在其它操作中直接使用,可以减少重复代码的编写,是非常方便的。


使用定义好的 标签:

Mysql:重点且常用的 SQL 标签整理_第2张图片

3 标签

大多数情况下使用在,根据条件动态生成查询条件,生成 WHERE 子句

比如以下代码:

    

比如:如果 majorCode 不为空,则生成 and major_code = #{majorCode} 的查询条件,其它也是一样。


where和标签有什么区别:

WHERE 关键字是静态的,需要手动编写每个查询条件,并使用连接符(例如 "AND" 或 "OR")来拼接条件。而 标签是动态的,可以根据条件的存在与否来动态生成 WHERE 子句,并自动处理条件之间的连接符(比如上述代码中的and).

4 标签

标签通常用于在动态 SQL 中根据条件判断是否包含某部分 SQL 片段

比如跟上述标签配合使用

标签

元素的作用是根据条件动态生成 SQL 语句的部分内容

比如以下代码:

    
        insert into sys_major
        
            major_code,
            major_name,
            major_type,
            major_degree,
            major_career,
         
        
            #{majorCode},
            #{majorName},
            #{majorType},
            #{majorDegree},
            #{majorCareer},
         
    

prefix="SET":指定生成的 SET 子句的前缀为 "SET"。

suffixOverrides=",":指定如果 SET 子句的最后一个字符是逗号(,),则将其移除。

prefix="(" 指定了插入语句的列名部分的前缀为左括号 (suffix=")" 则指定了该部分的后缀为右括号 ),即 () 之间就是列名列表


当上述的值都不为空,生成的sql语句是:

insert into sys_major
(major_code, major_name, major_type, major_degree, major_career)
values
(#{majorCode}, #{majorName}, #{majorType}, #{majorDegree}, #{majorCareer})

在这段代码中,useGeneratedKeys="true" 表示要从数据库中获取自动生成的主键值,keyProperty="majorId" 则指定了自动生成的主键值将赋给 SysMajor 对象中的 majorId 属性。

如果执行插入操作成功,并且数据库返回了自动生成的主键值,MyBatis 会将该值赋给 majorId 属性,作为插入操作的返回值。因此,如果程序需要获取插入操作生成的主键值,则可以通过 majorId 属性来获取。如果插入操作失败或者没有生成主键值,则 majorId 属性的值不会改变。

6 标签

标签,用于遍历传入的数组

比如以下代码:实现批量删除!

    
        delete from sys_major where major_id in 
        
            #{majorId}
        
    

item="majorId":指定遍历过程中当前元素的别名为 majorId

collection="array":指定要遍历的集合为 array,即传入的 majorId 数组。

open="(":指定循环开始时的字符为 (

separator=",":指定每个元素之间的分隔符为 ,

close=")":指定循环结束时的字符为 )

#{majorId}:表示当前遍历到的 majorId 元素,会被替换为对应的值。

7 标签

 标签用于定义一个包含更新字段内容的 SQL 片段

比如以下代码:

 	
 		update sys_dict_type
 		
 			dict_name = #{dictName},
 			dict_type = #{dictType},
 			status = #{status},
 			remark = #{remark},
 			update_by = #{updateBy},
 			update_time = sysdate()
 		
 		where dict_id = #{dictId}
	

update_time = sysdate() 表示更新 update_time 字段为当前时间

你可能感兴趣的:(MySql,sql,mysql,mybatis)