MyBatisSqlUtils
大约 2 分钟
MyBatis SQL 工具类,快速生成 sql 语句。
appendInSql 方法
拼接 in sql 到 sqlConText
中。
参数
参数名 | 类型 | 描述 |
---|---|---|
sqlConText | sqlContext | sql 语句上下文,会将新的 sql 语句拼接在 sqlConText 后面 |
valueListSize | int | in 查询的值集合的长度,要确保这个集合是一个有序的集合或者数组。这个值不能 小于 1,否则会抛出异常 |
paramName | String | 参数的名字,也就是 @Param 注解的值。切记这个字段不要接受外部值,防止出现 SQL 注入。 |
示例:
MyBatisSqlUtils.appendInSql(sqlContext, 2, "ids");
// 拼接出的 SQL:
// IN (#{ids[0]}, #{ids[1]})
getInSql 方法
获取一个 in sql
参数
参数名 | 类型 | 描述 |
---|---|---|
valueListSize | int | in 查询的值集合的长度,要确保这个集合是一个有序的集合或者数组。这个值不能 小于 1,否则会抛出异常 |
paramName | String | 参数的名字,也就是 @Param 注解的值。切记这个字段不要接受外部值,防止出现 SQL 注入。 |
返回值
一个 IN SQL,例如:IN (#{ids[0]}, #{ids[1]})
示例:
String sql = MyBatisSqlUtils.getInSql(2, "ids");
// 拼接出的 SQL:
// IN (#{ids[0]}, #{ids[1]})
appendInSqlXml
方法
拼接 IN
子句的 XML 格式到给定的 sqlConText
中。支持 SET
集合。
参数
参数名 | 类型 | 描述 |
---|---|---|
sqlContext | StringBuilder | SQL 语句上下文,会将新的 SQL 语句拼接在此对象后面。 |
paramName | String | 参数的名字,也就是 @Param 注解的值。切记这个字段不要接受外部值,防止出现 SQL 注入。 |
返回值
一个 IN
子句的 XML 格式字符串。
示例:
MyBatisSqlUtils.appendInSqlXml(sqlContext, "ids");
// 拼接出的 SQL:
// IN
// <foreach collection="ids" item="item" open="(" separator="," close=")">
// #{item}
// </foreach>
getInSqlXml
方法
描述
获取 IN
子句的 XML 格式。支持 SET
集合。
参数
参数名 | 类型 | 描述 |
---|---|---|
paramName | String | 参数的名字,也就是 @Param 注解的值。切记这个字段不要接受外部值,防止出现 SQL 注入。 |
返回值
一个 IN
子句的 XML 格式字符串。
示例:
String sql = MyBatisSqlUtils.getInSqlXml("ids");
// 拼接出的 SQL:
// IN
// <foreach collection="ids" item="item" open="(" separator="," close=")">
// #{item}
// </foreach>
wrapScript
方法
描述
将 SQL 包裹在 <script>
和 </script>
标签中,适用于 MyBatis 动态 SQL。
参数
参数名 | 类型 | 描述 |
---|---|---|
sqlContext | StringBuilder | SQL 语句上下文,会将新的 SQL 语句拼接在此对象前后加入 <script> 和 </script> 标签。 |
示例
StringBuilder sqlContext = new StringBuilder("SELECT * FROM table WHERE id IN (1, 2)");
MyBatisSqlUtils.wrapScript(sqlContext);
// 拼接出的 SQL:
// <script>SELECT * FROM table WHERE id IN (1, 2)</script>
wrapScript
方法
描述
将 SQL 包裹在 <script>
和 </script>
标签中,适用于 MyBatis 动态 SQL。
参数
参数名 | 类型 | 描述 |
---|---|---|
sql | String | SQL 语句上下文,会将新的 SQL 语句拼接在此对象前后加入 <script> 和 </script> 标签。 |
示例
String sql = MyBatisSqlUtils.wrapScript("SELECT * FROM table WHERE id IN (1, 2)");
// 拼接出的 SQL:
// <script>SELECT * FROM table WHERE id IN (1, 2)</script>