package com.mtea.mis.builder;
/**
* 父SQL构建器
* 提供常用的构建方法
* @author Macrotea
* @version 0.1
* @date 2011-9-26
* @note
*/
public class BaseSqlBuilder {
/**
* 两边Like(eg: %name%)
* @param columnName
* @param propNames
* @return
*/
public static String LIKE(String columnName, String... propNames) {
if(propNames.length>0)
return columnName+" LIKE CONCAT('%', #{"+propNames[0]+"}, '%')";
else
return columnName+" LIKE CONCAT('%', #{"+columnName+"}, '%')";
}
/**
* 左边Like(eg: %name)
* @param columnName
* @param propNames
* @return
*/
public static String LEFTLIKE(String columnName, String... propNames) {
if(propNames.length>0)
return columnName+" LIKE CONCAT('%', #{"+propNames[0]+"})";
else
return columnName+" LIKE CONCAT('%', #{"+columnName+"})";
}
/**
* 右边Like(eg: name%)
* @param columnName
* @param propNames
* @return
*/
public static String RIGHTLIKE(String columnName, String... propNames) {
if(propNames.length>0)
return columnName+" LIKE CONCAT(#{"+propNames[0]+"}, '%')";
else
return columnName+" LIKE CONCAT(#{"+columnName+"}, '%')";
}
public static void main(String[] args) {
System.out.println(BaseSqlBuilder.LEFTLIKE("typeName"));
}
}
public final class UserTypeSqlBuilder extends BaseSqlBuilder{
public String searchBy(UserType e){
BEGIN();
SELECT("*");
FROM(TABLE);
if (e.getTypeName() != null) {
WHERE(LIKE("typeName"));
}
if (e.getRemark() != null) {
WHERE(LIKE("remark"));
}
return SQL();
}
}
分享到:
相关推荐
本文将针对提供的四种不同的MyBatis LIKE传值方式展开详细分析,并探讨每种方式的特点、适用场景以及可能遇到的问题。 #### 方式一:使用CONCAT函数进行字符串拼接 ```xml != null"> and u.userName like CONCAT...
在Mybatis这个流行的持久层框架中,实现模糊查询功能,特别是`LIKE`操作,可以帮助开发者更灵活地处理数据过滤。本文将详细介绍Mybatis中使用`LIKE`进行模糊查询的几种方法。 1. **参数中直接加入`%`** 在Mybatis...
为了解决这个问题,Mybatis家族中的TkMybatis应运而生,它提供了类似于Mybatis-Plus的便捷功能,帮助开发者提高开发效率,让我们的编码工作更加优雅。 TkMybatis是由国人开发的一款Mybatis增强工具,它在Mybatis的...
标题 "Mybatis破MySql8小时断线问题1" 指的是在使用Mybatis框架与MySQL数据库交互时遇到的一个常见问题,即由于MySQL数据库的连接超时机制导致的8小时断线。描述中提到,当数据库连接闲置时间超过MySQL默认设定的8...
AND name LIKE #{name} != null and age > 0"> AND age <![CDATA[>=]]> #{age} ``` 最后,MyBatis_test可能是指测试相关的内容,通常我们会编写JUnit测试用例来验证MyBatis的查询、插入、更新和删除操作...
MyBatis 目录(?)[-] mybatis实战教程mybatis in action之一开发环境搭建 mybatis实战教程mybatis in ... select * from user where userName like #{userName} 在 IUserOperation 接口中增加方法:public List...
MyBatis like模糊查询方法 MyBatis是一个流行的持久层框架,提供了强大的查询功能。其中,like模糊查询是最常用的查询方式之一。本文将介绍如何使用MyBatis进行不同条件的like模糊查询。 like模糊查询的原理 like...
使用#{paramName}占位符,Mybatis会自动处理参数绑定,避免SQL注入问题。 9、基于注解的SQL语句 Mybatis支持在Mapper接口的方法上直接使用注解@Select、@Insert、@Update和@Delete来写SQL,简化了XML配置,使代码...
例如,我们可以根据传入的参数来决定是否在WHERE子句中添加LIKE条件。这在处理模糊查询时非常有用。在PagingByExampl.java中,可能就演示了如何利用MyBatis的`<if>`标签来动态地构造WHERE子句。 4. **参数值修改**...
3. **条件构造器**:MyBatis-Plus的QueryWrapper和UpdateWrapper是条件构造器,可以通过链式操作轻松构建复杂的查询条件,如eq(等于)、ne(不等于)、like(模糊查询)、gt(大于)、lt(小于)等。 4. **Lambda...
### MyBatis3.2.4完全自学手册 #### 一、快速入门 **1、MyBatis简介** ...总结起来,MyBatis是一个功能强大、易于使用的持久层框架,通过其丰富的特性和灵活的配置选项,可以有效地解决各种数据库访问问题。
在实际项目中,我们还需要注意 SQL 注入的问题。MyBatis 提供了预编译的 SQL 语句和参数绑定机制,能有效防止 SQL 注入攻击。同时,合理使用 MyBatis 的缓存功能,还可以进一步提升应用性能。 总之,MyBatis 的动态...
MyBatis-Plus支持乐观锁机制,通过在实体类中添加version或timestamp字段,可以在更新数据时防止并发问题。 10. **项目文档** 提供的项目文档应该详细介绍了如何搭建环境、配置MyBatis-Plus、使用各种API以及如何...
在上述例子中,如果传入的参数为`%luck%`,MyBatis会自动生成`SELECT * FROM user WHERE name LIKE '%luck%'`这样的SQL语句,从而实现通配符查询。 此外,`<if>`元素可以用来控制通配符的添加与否,例如: ```xml !...
- **模糊查询**:使用LIKE关键字实现模糊匹配查询,例如`%keyword%`。 #### 十四、分页查询 - **分页查询**:通过SQL语句实现分页查询,通常使用LIMIT关键字。 - **动态SQL**:MyBatis支持动态SQL,可以使用`<if>`...
4. **动态SQL**:MyBatis-Plus的条件构造器允许我们构建复杂的查询条件,如Eq(等于)、Ne(不等于)、Like(模糊匹配)等,无需手动编写SQL语句,提高了代码的可读性和可维护性。 5. **代码生成器**:MyBatis-Plus...
= null">name LIKE #{name}% != null">AND age = #{age} ``` 8. **缓存**:MyBatis提供了本地缓存和二级缓存机制,可以提高数据读取效率。默认情况下,每个SqlSession都有自己的本地缓存,关闭SqlSession时...
AND username LIKE #{username} ORDER BY id DESC ``` 然后在`UserMapper`接口中定义对应的方法: ```java public interface UserMapper { List<User> selectUsersByPage(@Param("username") String ...
Mybatis Plus 3.x 版本引入了对 Lambda 表达式的支持,使得条件构造更加简洁优雅,如 `eq()`、`gt()`、`like()` 等方法,使得代码更具有可读性。 10. **通用Mapper与通用Service**: 提供了通用的 Mapper 和 ...
本篇文章对MyBatis进行了27个问题的梳理,深入探讨了该框架的应用场景、优缺点、与Hibernate的区别、动态SQL的用法、缓存机制等多方面内容。 首先,MyBatis是一个半自动化的ORM框架,它内部封装了JDBC操作,开发者...