栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Mybatis模糊查询和动态sql语句的用法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mybatis模糊查询和动态sql语句的用法

Mybatis 模糊查询和动态sql语句

模糊查询

对数据库最常用的操作就是查询了,但是如何使用Mybatis进行模糊查询呢?下面先看一个简单的模糊查询

  
   SELECT 
   * 
  FROM
   oa_employee 
  WHERe emp_name LIKE #{asd} 
  

这是一条伪模糊查询, 因为没有实现真正的模糊 “%”。参数为字符串,所以#{}中内容不被限制。但是应该如何插入 % 字符呢。 我们首先想到的是传递字符串参数时将%插入到字符串中 “张%”,但是这种方法操作略微繁琐了一些。 下面提供了使用sql方法的策略

 
   SELECT 
   * 
  FROM
   oa_employee 
  WHERe emp_name LIKE '${emp_name}%'
  

#{} 是采用预编译的写法,也就是JDBC中的PerpareStatement,这种写法可以防止sql注入,但${}这种写法是不采用预编译,其中的参数写成类中的属性或者map的key值或者为接口中注解的参数名。

mybatis 提供了bind 标签。下面举个例子

  
SELECT 
* 
FROM 
oa_employee 
WHERe 1=1 
 
and emp_name = #{emp_name } 
 
 
and sex = #{emp_sex} 
 
 

mybatis 中的if标签有些类似于EL表达式的使用,test中可以直接写入类中的属性或者key值。

where标签


   SELECT 
   * 
   FROM
   oa_employee 
   
   
    
and emp_name = #{emp_name }
    
     
and sex = #{emp_sex}
    
    
      emp_id = 50
    
   
   
  

当所有条件不满足时,执行otherwise标签的内容。

trim标签