mirror of
https://github.com/moparisthebest/JdbcMapper
synced 2024-12-22 07:18:51 -05:00
Clean up SqlBuilder API
This commit is contained in:
parent
a535465a2a
commit
e47ec84325
@ -54,24 +54,40 @@ public class SqlBuilder implements Appendable, CharSequence, Collection<Object>,
|
|||||||
|
|
||||||
// start custom SqlBuilder methods
|
// start custom SqlBuilder methods
|
||||||
|
|
||||||
public SqlBuilder append(final String sql, final Object bindObject) {
|
public SqlBuilder bind(final Object bindObject) {
|
||||||
sb.append(sql);
|
|
||||||
this.bindObjects.add(bindObject);
|
this.bindObjects.add(bindObject);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SqlBuilder append(final String sql, final Object... bindObjects) {
|
public SqlBuilder bind(final Object... bindObjects) {
|
||||||
return this.append(sql, (Object) bindObjects);
|
return this.bind((Object) bindObjects);
|
||||||
|
}
|
||||||
|
|
||||||
|
public SqlBuilder appendBind(final String sql, final Object bindObject) {
|
||||||
|
sb.append(sql);
|
||||||
|
return bind(bindObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
public SqlBuilder appendBind(final String sql, final Object... bindObjects) {
|
||||||
|
return this.appendBind(sql, (Object) bindObjects);
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> SqlBuilder appendInList(final String columnName, final Collection<T> values) throws SQLException {
|
public <T> SqlBuilder appendInList(final String columnName, final Collection<T> values) throws SQLException {
|
||||||
final InList.InListObject inListObject = inList.inList(conn, columnName, values);
|
final InList.InListObject inListObject = inList.inList(conn, columnName, values);
|
||||||
return this.append(inListObject.toString(), inListObject.getBindObject());
|
return this.appendBind(inListObject.toString(), inListObject.getBindObject());
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> SqlBuilder appendNotInList(final String columnName, final Collection<T> values) throws SQLException {
|
public <T> SqlBuilder appendNotInList(final String columnName, final Collection<T> values) throws SQLException {
|
||||||
final InList.InListObject inListObject = inList.notInList(conn, columnName, values);
|
final InList.InListObject inListObject = inList.notInList(conn, columnName, values);
|
||||||
return this.append(inListObject.toString(), inListObject.getBindObject());
|
return this.appendBind(inListObject.toString(), inListObject.getBindObject());
|
||||||
|
}
|
||||||
|
|
||||||
|
public SqlBuilder and() {
|
||||||
|
return append(" AND ");
|
||||||
|
}
|
||||||
|
|
||||||
|
public SqlBuilder or() {
|
||||||
|
return append(" OR ");
|
||||||
}
|
}
|
||||||
|
|
||||||
public StringBuilder getStringBuilder() {
|
public StringBuilder getStringBuilder() {
|
||||||
|
@ -769,12 +769,12 @@ public class QueryMapperTest {
|
|||||||
public void testSelectRandomSqlBuilder() throws Throwable {
|
public void testSelectRandomSqlBuilder() throws Throwable {
|
||||||
final List<Long> arr = Arrays.asList(1L, 2L, 3L);
|
final List<Long> arr = Arrays.asList(1L, 2L, 3L);
|
||||||
assertEquals(arr, qm.selectRandomSqlBuilder(qm.sqlBuilder().appendInList("person_no", arr)));
|
assertEquals(arr, qm.selectRandomSqlBuilder(qm.sqlBuilder().appendInList("person_no", arr)));
|
||||||
assertEquals(arr, qm.selectRandomSqlBuilder(qm.sqlBuilder().append("person_no = ? OR ", 1L).appendInList("person_no", Arrays.asList(2L, 3L))));
|
assertEquals(arr, qm.selectRandomSqlBuilder(qm.sqlBuilder().appendBind("person_no = ? OR ", 1L).appendInList("person_no", Arrays.asList(2L, 3L))));
|
||||||
assertEquals(arr, qm.selectRandomSqlBuilder(qm.sqlBuilder().append("person_no = 1 OR ").appendInList("person_no", Arrays.asList(2L, 3L))));
|
assertEquals(arr, qm.selectRandomSqlBuilder(qm.sqlBuilder().append("person_no = 1 OR ").appendInList("person_no", Arrays.asList(2L, 3L))));
|
||||||
assertEquals(arr, qm.selectRandomSqlBuilder(1L, qm.sqlBuilder().append(" OR person_no in (2,3)"), "NoNameMatch"));
|
assertEquals(arr, qm.selectRandomSqlBuilder(1L, qm.sqlBuilder().append(" OR person_no in (2,3)"), "NoNameMatch"));
|
||||||
assertEquals(Collections.singletonList(2L), qm.selectRandomSqlBuilder(2L, qm.sqlBuilder(), "NoNameMatch"));
|
assertEquals(Collections.singletonList(2L), qm.selectRandomSqlBuilder(2L, qm.sqlBuilder(), "NoNameMatch"));
|
||||||
assertEquals(Collections.singletonList(3L), qm.selectRandomSqlBuilder(3L, Bindable.empty, "NoNameMatch"));
|
assertEquals(Collections.singletonList(3L), qm.selectRandomSqlBuilder(3L, Bindable.empty, "NoNameMatch"));
|
||||||
assertEquals(arr, qm.selectRandomSqlBuilder(2L, qm.sqlBuilder().append("OR person_no = ? OR ", 1L).appendInList("person_no", Collections.singletonList(3L)), "NoNameMatch"));
|
assertEquals(arr, qm.selectRandomSqlBuilder(2L, qm.sqlBuilder().appendBind("OR person_no = ? OR ", 1L).appendInList("person_no", Collections.singletonList(3L)), "NoNameMatch"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Loading…
Reference in New Issue
Block a user