use of org.sagacity.sqltoy.plugins.id.macro.impl.SqlLoop in project sagacity-sqltoy by chenrenfei.
the class SqlLoopTest method testSqlLoopStr.
@Test
public void testSqlLoopStr() {
List<String> staffInfos = new ArrayList<String>();
for (int i = 0; i < 5; i++) {
staffInfos.add("S000" + (i + 1));
}
SqlLoop sqlLoop = new SqlLoop();
String[] params = { "staffInfos", " and staffId=':staffInfos[i]'" };
IgnoreKeyCaseMap<String, Object> keyValues = new IgnoreKeyCaseMap<String, Object>();
keyValues.put("staffInfos", staffInfos);
String result = sqlLoop.execute(params, keyValues);
System.err.print(result);
}
use of org.sagacity.sqltoy.plugins.id.macro.impl.SqlLoop in project sagacity-sqltoy by chenrenfei.
the class SqlLoopTest method testSqlLoop.
@Test
public void testSqlLoop() {
List<StaffInfoVO> staffInfos = new ArrayList<StaffInfoVO>();
for (int i = 0; i < 5; i++) {
StaffInfoVO staff = new StaffInfoVO();
staff.setStaffId("S000" + (i + 1));
staff.setBirthday(LocalDate.now());
staffInfos.add(staff);
}
SqlLoop sqlLoop = new SqlLoop();
String[] params = { "staffInfos", "(staffId=':staffInfos[i].staffId' and birthDay=':staffInfos[i].birthday')", "or" };
IgnoreKeyCaseMap<String, Object> keyValues = new IgnoreKeyCaseMap<String, Object>();
keyValues.put("staffInfos", staffInfos);
String result = sqlLoop.execute(params, keyValues);
System.err.print(result);
}
use of org.sagacity.sqltoy.plugins.id.macro.impl.SqlLoop in project sagacity-sqltoy by chenrenfei.
the class SqlLoopTest method testSqlLoopLike.
@Test
public void testSqlLoopLike() {
List<String> staffInfos = new ArrayList<String>();
for (int i = 0; i < 5; i++) {
staffInfos.add("S000" + (i + 1));
}
SqlLoop sqlLoop = new SqlLoop();
String[] params = { "staffInfos", " and staffId like '%:staffInfos[i]%'" };
IgnoreKeyCaseMap<String, Object> keyValues = new IgnoreKeyCaseMap<String, Object>();
keyValues.put("staffInfos", staffInfos);
String result = sqlLoop.execute(params, keyValues);
System.err.print(result);
}
use of org.sagacity.sqltoy.plugins.id.macro.impl.SqlLoop in project sagacity-sqltoy by chenrenfei.
the class MacroUtilsTest method testReplaceMacros1.
@Test
public void testReplaceMacros1() {
Map<String, AbstractMacro> macros = new HashMap<String, AbstractMacro>();
macros.put("@loop", new SqlLoop());
String sql = "select * from table where 1=1 @loop(:startDates,' (bizDate between str_to_date(':startDates[i]','%Y-%m-%d') and str_to_date(':endDates[i]','%Y-%m-%d')','or')";
String[] paramsNamed = { "startDates", "endDates" };
String[][] paramsValue = { { "2020-10-01", "2020-11-01", "2020-12-01" }, { "2020-10-30", "2020-11-30", "2020-12-30" } };
IgnoreKeyCaseMap<String, Object> keyValues = new IgnoreKeyCaseMap<String, Object>();
for (int i = 0; i < paramsNamed.length; i++) {
keyValues.put(paramsNamed[i], paramsValue[i]);
}
String result = MacroUtils.replaceMacros(sql, keyValues, false, macros);
System.err.println(result);
}
use of org.sagacity.sqltoy.plugins.id.macro.impl.SqlLoop in project sagacity-sqltoy by chenrenfei.
the class MacroUtilsTest method testReplaceMacros.
@Test
public void testReplaceMacros() {
Map<String, AbstractMacro> macros = new HashMap<String, AbstractMacro>();
macros.put("@loop", new SqlLoop());
String sql = "select * from table where 1=1 @loop(:startDates,'(bizDate between :startDates[i] and :endDates[i])',or)";
String[] paramsNamed = { "startDates", "endDates" };
String[][] paramsValue = { { "2020-10-01", "2020-11-01", "2020-12-01" }, { "2020-10-30", "2020-11-30", "2020-12-30" } };
IgnoreKeyCaseMap<String, Object> keyValues = new IgnoreKeyCaseMap<String, Object>();
for (int i = 0; i < paramsNamed.length; i++) {
keyValues.put(paramsNamed[i], paramsValue[i]);
}
String result = MacroUtils.replaceMacros(sql, keyValues, false, macros);
System.err.println(result);
}
Aggregations