diff --git a/src/main/java/com/alexfu/sqlitequerybuilder/builder/SelectAndBuilder.java b/src/main/java/com/alexfu/sqlitequerybuilder/builder/SelectAndBuilder.java index 5543617..408f878 100644 --- a/src/main/java/com/alexfu/sqlitequerybuilder/builder/SelectAndBuilder.java +++ b/src/main/java/com/alexfu/sqlitequerybuilder/builder/SelectAndBuilder.java @@ -1,17 +1,22 @@ package com.alexfu.sqlitequerybuilder.builder; +import com.alexfu.sqlitequerybuilder.api.Builder; import com.alexfu.sqlitequerybuilder.utils.StringUtils; public class SelectAndBuilder extends SegmentBuilder { - private SelectWhereBuilder prefix; + private Builder prefix; private String condition; - public SelectAndBuilder(SelectWhereBuilder prefix, String condition) { + public SelectAndBuilder(Builder prefix, String condition) { this.prefix = prefix; this.condition = condition; } + public SelectAndBuilder and(String condition) { + return new SelectAndBuilder(this, condition); + } + @Override public String build() { return StringUtils.join(" ", prefix.build(), "AND", condition); diff --git a/src/test/java/com/alexfu/sqlitequerybuilder/SelectTest.java b/src/test/java/com/alexfu/sqlitequerybuilder/SelectTest.java index d922fdd..c162157 100644 --- a/src/test/java/com/alexfu/sqlitequerybuilder/SelectTest.java +++ b/src/test/java/com/alexfu/sqlitequerybuilder/SelectTest.java @@ -139,6 +139,20 @@ public void selectAndTest() { assertThat(query).isEqualTo("SELECT * FROM mytable WHERE id = 1 AND color = 'red'"); } + @Test + public void selectAndAndTest() { + String query = SQLiteQueryBuilder + .select("*") + .from("mytable") + .where("id = 1") + .and("color = 'red'") + .and("color = 'blue'") + .build(); + + assertThat(query).isEqualTo("SELECT * FROM mytable WHERE id = 1 AND color = 'red' " + + "AND color = 'blue'"); + } + @Test public void selectWhereLimitTest() { String query = SQLiteQueryBuilder