parent
bcf95966ae
commit
f7c685af46
@ -111,7 +111,7 @@ public class LambdaUpdateWrapper<T> extends AbstractLambdaWrapper<T, LambdaUpdat
|
||||
public LambdaUpdateWrapper<T> setIncrBy(boolean condition, SFunction<T, ?> column, Number val) {
|
||||
return maybeDo(condition, () -> {
|
||||
String realColumn = columnToString(column);
|
||||
sqlSet.add(realColumn + Constants.EQUALS + realColumn + Constants.PLUS + (val instanceof BigDecimal ? ((BigDecimal) val).toPlainString() : val));
|
||||
sqlSet.add(realColumn + Constants.EQUALS + realColumn + Constants.SPACE + Constants.PLUS + Constants.SPACE + (val instanceof BigDecimal ? ((BigDecimal) val).toPlainString() : val));
|
||||
});
|
||||
}
|
||||
|
||||
@ -135,7 +135,7 @@ public class LambdaUpdateWrapper<T> extends AbstractLambdaWrapper<T, LambdaUpdat
|
||||
public LambdaUpdateWrapper<T> setDecrBy(boolean condition, SFunction<T, ?> column, Number val) {
|
||||
return maybeDo(condition, () -> {
|
||||
String realColumn = columnToString(column);
|
||||
sqlSet.add(realColumn + Constants.EQUALS + realColumn + Constants.DASH + (val instanceof BigDecimal ? ((BigDecimal) val).toPlainString() : val));
|
||||
sqlSet.add(realColumn + Constants.EQUALS + realColumn + Constants.SPACE + Constants.DASH + Constants.SPACE + (val instanceof BigDecimal ? ((BigDecimal) val).toPlainString() : val));
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -28,31 +28,31 @@ class LambdaUpdateWrapperTest extends BaseWrapperTest {
|
||||
void testIncrByAndDecrBy() {
|
||||
LambdaUpdateWrapper<User> wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.setIncrBy(true, User::getRoleId, 1).setDecrBy(true, User::getName, 1).eq(User::getId, 1);
|
||||
Assertions.assertEquals("role_id=role_id+1,username=username-1", wrapper.getSqlSet());
|
||||
Assertions.assertEquals("role_id=role_id + 1,username=username - 1", wrapper.getSqlSet());
|
||||
|
||||
wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.setIncrBy(User::getRoleId, 1).setIncrBy(User::getName, 1).eq(User::getId, 1);
|
||||
Assertions.assertEquals("role_id=role_id+1,username=username+1", wrapper.getSqlSet());
|
||||
Assertions.assertEquals("role_id=role_id + 1,username=username + 1", wrapper.getSqlSet());
|
||||
|
||||
wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.setIncrBy(false, User::getRoleId, 1).setIncrBy(User::getName, 1).eq(User::getId, 1);
|
||||
Assertions.assertEquals("username=username+1", wrapper.getSqlSet());
|
||||
Assertions.assertEquals("username=username + 1", wrapper.getSqlSet());
|
||||
|
||||
wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.setDecrBy(User::getRoleId, 1).setDecrBy(User::getName, 1).eq(false, User::getId, 1);
|
||||
Assertions.assertEquals("role_id=role_id-1,username=username-1", wrapper.getSqlSet());
|
||||
Assertions.assertEquals("role_id=role_id - 1,username=username - 1", wrapper.getSqlSet());
|
||||
|
||||
wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.setDecrBy(true, User::getRoleId, 1).setDecrBy(true, User::getName, 1).eq(false, User::getId, 1);
|
||||
Assertions.assertEquals("role_id=role_id-1,username=username-1", wrapper.getSqlSet());
|
||||
Assertions.assertEquals("role_id=role_id - 1,username=username - 1", wrapper.getSqlSet());
|
||||
|
||||
wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.setDecrBy(false, User::getRoleId, 1).setDecrBy(User::getName, 1).eq(User::getId, 1);
|
||||
Assertions.assertEquals("username=username-1", wrapper.getSqlSet());
|
||||
Assertions.assertEquals("username=username - 1", wrapper.getSqlSet());
|
||||
|
||||
wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.setDecrBy(User::getRoleId, 1).setDecrBy(false, User::getName, 1).eq(User::getId, 1);
|
||||
Assertions.assertEquals("role_id=role_id-1", wrapper.getSqlSet());
|
||||
Assertions.assertEquals("role_id=role_id - 1", wrapper.getSqlSet());
|
||||
|
||||
|
||||
}
|
||||
@ -61,60 +61,60 @@ class LambdaUpdateWrapperTest extends BaseWrapperTest {
|
||||
void testIncrByAndDecrByBigDecimal() {
|
||||
var wrapper = new LambdaUpdateWrapper<User>();
|
||||
wrapper.setDecrBy(User::getRoleId, new BigDecimal("1")).eq(User::getId, 1);
|
||||
Assertions.assertEquals("role_id=role_id-1", wrapper.getSqlSet());
|
||||
Assertions.assertEquals("role_id=role_id - 1", wrapper.getSqlSet());
|
||||
|
||||
wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.setDecrBy(User::getRoleId, new BigDecimal(1)).eq(User::getId, 1);
|
||||
Assertions.assertEquals("role_id=role_id-1", wrapper.getSqlSet());
|
||||
Assertions.assertEquals("role_id=role_id - 1", wrapper.getSqlSet());
|
||||
|
||||
wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.setDecrBy(User::getRoleId, new BigDecimal(1.0000)).eq(User::getId, 1);
|
||||
Assertions.assertEquals("role_id=role_id-1", wrapper.getSqlSet());
|
||||
Assertions.assertEquals("role_id=role_id - 1", wrapper.getSqlSet());
|
||||
|
||||
wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.setDecrBy(User::getRoleId, new BigDecimal("1.0000")).eq(User::getId, 1);
|
||||
Assertions.assertEquals("role_id=role_id-1.0000", wrapper.getSqlSet());
|
||||
Assertions.assertEquals("role_id=role_id - 1.0000", wrapper.getSqlSet());
|
||||
|
||||
wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.setDecrBy(User::getRoleId, new BigDecimal(0.01)).eq(User::getId, 1);
|
||||
Assertions.assertEquals("role_id=role_id-" + new BigDecimal(0.01), wrapper.getSqlSet());
|
||||
Assertions.assertEquals("role_id=role_id - " + new BigDecimal(0.01), wrapper.getSqlSet());
|
||||
|
||||
wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.setDecrBy(User::getRoleId, new BigDecimal("0.01")).eq(User::getId, 1);
|
||||
Assertions.assertEquals("role_id=role_id-0.01", wrapper.getSqlSet());
|
||||
Assertions.assertEquals("role_id=role_id - 0.01", wrapper.getSqlSet());
|
||||
|
||||
wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.setDecrBy(User::getRoleId, new BigDecimal("2340").setScale(-1)).eq(User::getId, 1);
|
||||
Assertions.assertEquals("role_id=role_id-2340", wrapper.getSqlSet());
|
||||
Assertions.assertEquals("role_id=role_id - 2340", wrapper.getSqlSet());
|
||||
|
||||
|
||||
wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.setIncrBy(User::getRoleId, new BigDecimal("1")).eq(User::getId, 1);
|
||||
Assertions.assertEquals("role_id=role_id+1", wrapper.getSqlSet());
|
||||
Assertions.assertEquals("role_id=role_id + 1", wrapper.getSqlSet());
|
||||
|
||||
wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.setIncrBy(User::getRoleId, new BigDecimal(1)).eq(User::getId, 1);
|
||||
Assertions.assertEquals("role_id=role_id+1", wrapper.getSqlSet());
|
||||
Assertions.assertEquals("role_id=role_id + 1", wrapper.getSqlSet());
|
||||
|
||||
wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.setIncrBy(User::getRoleId, new BigDecimal(1.0000)).eq(User::getId, 1);
|
||||
Assertions.assertEquals("role_id=role_id+1", wrapper.getSqlSet());
|
||||
Assertions.assertEquals("role_id=role_id + 1", wrapper.getSqlSet());
|
||||
|
||||
wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.setIncrBy(User::getRoleId, new BigDecimal("1.0000")).eq(User::getId, 1);
|
||||
Assertions.assertEquals("role_id=role_id+1.0000", wrapper.getSqlSet());
|
||||
Assertions.assertEquals("role_id=role_id + 1.0000", wrapper.getSqlSet());
|
||||
|
||||
wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.setIncrBy(User::getRoleId, new BigDecimal(0.01)).eq(User::getId, 1);
|
||||
Assertions.assertEquals("role_id=role_id+" + new BigDecimal(0.01), wrapper.getSqlSet());
|
||||
Assertions.assertEquals("role_id=role_id + " + new BigDecimal(0.01), wrapper.getSqlSet());
|
||||
|
||||
wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.setIncrBy(User::getRoleId, new BigDecimal("0.01")).eq(User::getId, 1);
|
||||
Assertions.assertEquals("role_id=role_id+0.01", wrapper.getSqlSet());
|
||||
Assertions.assertEquals("role_id=role_id + 0.01", wrapper.getSqlSet());
|
||||
|
||||
wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.setIncrBy(User::getRoleId, new BigDecimal("2340").setScale(-1)).eq(User::getId, 1);
|
||||
Assertions.assertEquals("role_id=role_id+2340", wrapper.getSqlSet());
|
||||
Assertions.assertEquals("role_id=role_id + 2340", wrapper.getSqlSet());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.baomidou.mybatisplus.test;
|
||||
|
||||
import net.sf.jsqlparser.JSQLParserException;
|
||||
import net.sf.jsqlparser.expression.operators.conditional.AndExpression;
|
||||
import net.sf.jsqlparser.parser.CCJSqlParserUtil;
|
||||
import net.sf.jsqlparser.statement.delete.Delete;
|
||||
@ -29,6 +30,23 @@ class JSqlParserTest {
|
||||
System.out.println(e.getLeftExpression());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testDecr() throws JSQLParserException {
|
||||
// 如果连一起 SqlParser 将无法解析 , 还有种处理方式就自减为负数的时候 转为 自增.
|
||||
var parse1 = CCJSqlParserUtil.parse("UPDATE test SET a = a --110");
|
||||
Assertions.assertEquals("UPDATE test SET a = a", parse1.toString());
|
||||
var parse2 = CCJSqlParserUtil.parse("UPDATE test SET a = a - -110");
|
||||
Assertions.assertEquals("UPDATE test SET a = a - -110", parse2.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testIncr() throws JSQLParserException {
|
||||
var parse1 = CCJSqlParserUtil.parse("UPDATE test SET a = a +-110");
|
||||
Assertions.assertEquals("UPDATE test SET a = a + -110", parse1.toString());
|
||||
var parse2 = CCJSqlParserUtil.parse("UPDATE test SET a = a + -110");
|
||||
Assertions.assertEquals("UPDATE test SET a = a + -110", parse2.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
void notLikeParser() throws Exception {
|
||||
final String targetSql = "SELECT * FROM tableName WHERE id NOT LIKE ?";
|
||||
|
Loading…
x
Reference in New Issue
Block a user