MyBatis动态SQL认真看看,

.html

1数据准备2if标签3choose标签4trim(set、where)5foreach标签6bind标签7代码

MyBatis令人喜欢的一大特性就是动态SQL。在使用JDBC的过程中,根据条件进行SQL的拼接是很麻烦且很容易出错的。MyBatis动态SQL的出现,解决了这个麻烦。

MyBatis通过OGNL来进行动态SQL的使用的。目前,动态SQL支持以下几种标签:

1数据准备

为了后面的演示,创建了一个Maven项目mybatis-dynamic,创建了对应的数据库和表

DROPTABLEIFEXISTS`student`;CREATETABLE`student`(`student_id`int(10)unsignedNOTNULLAUTO_INCREMENTCOMMENT编号,`name`varchar(20)DEFAULTNULLCOMMENT姓名,`phone`varchar(20)DEFAULTNULLCOMMENT电话,`email`varchar(50)DEFAULTNULLCOMMENT邮箱,`sex`tinyint(4)DEFAULTNULLCOMMENT性别,`locked`tinyint(4)DEFAULTNULLCOMMENT状态(0:正常,1:锁定),`gmt_created`datetimeDEFAULTCURRENT_TIMESTAMPCOMMENT存入数据库的时间,`gmt_modified`datetimeDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMPCOMMENT修改的时间,`delete`int(11)DEFAULTNULL,PRIMARYKEY(`student_id`))ENGINE=InnoDBAUTO_INCREMENT=7DEFAULTCHARSET=utf8mb4COLLATE=utf8mb4__ai_ciCOMMENT=学生表;

对应的项目结构

2if标签

if标签是我们最常使用的。在查询、删除、更新的时候很可能会使用到。必须结合test属性联合使用。

2.1在WHERE条件中使用if标签

这是常见的一种现象,我们在进行按条件查询的时候,可能会有多种情况。

2.1.1查询条件

根据输入的学生信息进行条件检索

当只输入用户名时,使用用户名进行模糊检索;当只输入性别时,使用性别进行完全匹配当用户名和性别都存在时,用这两个条件进行查询匹配查询2.1.2动态SQL

接口函数

/***根据输入的学生信息进行条件检索*1.当只输入用户名时,使用用户名进行模糊检索;*2.当只输入邮箱时,使用性别进行完全匹配*3.当用户名和性别都存在时,用这两个条件进行查询匹配的用*

paramstudent*

return*/ListStudentselectByStudentSelective(Studentstudent);

对应的动态SQL

selectid="selectByStudentSelective"resultMap="BaseResultMap"parameterType="


转载请注明:http://www.kelongbinga.com/klbf/7007.html

  • 上一篇文章:
  •   
  • 下一篇文章: