diff --git a/jdbcmapper/pom.xml b/jdbcmapper/pom.xml index b9df45d..b08329b 100644 --- a/jdbcmapper/pom.xml +++ b/jdbcmapper/pom.xml @@ -81,4 +81,20 @@ + + + jdk16 + + [1.6,1.8) + + + + + com.google.code.maven-replacer-plugin + replacer + + + + + diff --git a/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/InListVariableElement.java b/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/InListVariableElement.java index 3fdf53f..cc72e99 100644 --- a/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/InListVariableElement.java +++ b/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/InListVariableElement.java @@ -76,4 +76,13 @@ class InListVariableElement implements VariableElement { public R accept(final ElementVisitor v, final P p) { return delegate.accept(v, p); } + + //IFJAVA8_START + + @Override + public A[] getAnnotationsByType(final Class annotationType) { + return delegate.getAnnotationsByType(annotationType); + } + + //IFJAVA8_END } diff --git a/jdbcmapper/src/test/java/com/moparisthebest/jdbc/codegen/JdbcMapperTest.java b/jdbcmapper/src/test/java/com/moparisthebest/jdbc/codegen/JdbcMapperTest.java index ecb2eb0..d4ccc90 100644 --- a/jdbcmapper/src/test/java/com/moparisthebest/jdbc/codegen/JdbcMapperTest.java +++ b/jdbcmapper/src/test/java/com/moparisthebest/jdbc/codegen/JdbcMapperTest.java @@ -22,7 +22,7 @@ import static org.junit.Assert.assertEquals; */ public class JdbcMapperTest { - private static PersonDAO dao; + public static PersonDAO dao; @BeforeClass public static void setUp() throws Throwable { @@ -35,13 +35,9 @@ public class JdbcMapperTest { tryClose(dao); } - public PersonDAO getDao() { - return dao; - } - @Test public void testName() throws Throwable { - assertEquals(fieldPerson1.getFirstName(), getDao().getFirstName(fieldPerson1.getPersonNo())); + assertEquals(fieldPerson1.getFirstName(), dao.getFirstName(fieldPerson1.getPersonNo())); } @Test diff --git a/pom.xml b/pom.xml index 9943619..36e211a 100644 --- a/pom.xml +++ b/pom.xml @@ -62,15 +62,11 @@ UTF-8 false true + sources + javadoc + pom - - common - runtime-compiler - querymapper - jdbcmapper - presto-sqlparser - @@ -172,4 +168,136 @@ + + + jdk6 + + [1.6,1.8) + + + jdk16-sources + true + jdk16 + + + common + runtime-compiler + querymapper + jdbcmapper + + + + + + com.google.code.maven-replacer-plugin + replacer + 1.5.2 + + + process-sources + + replace + + + + + + */src/main/java/**/* + + + target/** + + + + //IFJAVA8_START + /*IFJAVA8_START + + + //IFJAVA8_END + IFJAVA8_END*/ + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.6 + 1.6 + + **/module-info.java + + + + + + default-testCompile + test-compile + + + **/module-info.java + + + + testCompile + + + + + + + + + + + + jdk8 + + + [1.8,) + + + + common + runtime-compiler + querymapper + jdbcmapper + presto-sqlparser + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.8 + 1.8 + + **/module-info.java + + + + + + default-testCompile + test-compile + + + **/module-info.java + + + + testCompile + + + + + + + + + diff --git a/presto-sqlparser/src/test/java/com/moparisthebest/jdbc/codegen/PrestoPersonDAO.java b/presto-sqlparser/src/test/java/com/moparisthebest/jdbc/codegen/PrestoPersonDAO.java index 37deee1..07ecb70 100644 --- a/presto-sqlparser/src/test/java/com/moparisthebest/jdbc/codegen/PrestoPersonDAO.java +++ b/presto-sqlparser/src/test/java/com/moparisthebest/jdbc/codegen/PrestoPersonDAO.java @@ -1,12 +1,14 @@ package com.moparisthebest.jdbc.codegen; +import com.moparisthebest.jdbc.Cleaner; import com.moparisthebest.jdbc.dto.FieldPerson; +import com.moparisthebest.jdbc.dto.Person; +import com.moparisthebest.jdbc.util.ResultSetIterable; import java.sql.SQLException; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; -import java.util.Map; +import java.sql.Time; +import java.sql.Timestamp; +import java.util.*; /** * Created by mopar on 5/24/17. @@ -18,39 +20,128 @@ import java.util.Map; ) public interface PrestoPersonDAO extends PersonDAO { - @JdbcMapper.SQL("UPDATE person SET first_name = {firstName} WHERE last_name = {lastName}") - int setFirstName(String firstName, String lastName); - @JdbcMapper.SQL("UPDATE person SET first_name = {firstName} WHERE person_no = {personNo}") - void setFirstName(String firstName, long personNo) throws SQLException; + @JdbcMapper.SQL("UPDATE person SET first_name = {firstName} WHERE last_name = {lastName}") + int setFirstName(String firstName, String lastName); - @JdbcMapper.SQL("UPDATE person SET first_name = {firstName} WHERE person_no = {personNo}") - void setFirstNameBlob(byte[] firstName, long personNo) throws SQLException; + @JdbcMapper.SQL("UPDATE person SET first_name = {firstName} WHERE person_no = {personNo}") + void setFirstName(String firstName, long personNo) throws SQLException; - @JdbcMapper.SQL("SELECT first_name FROM person WHERE person_no = {personNo}") - String getFirstName(long personNo) throws SQLException; + @JdbcMapper.SQL("UPDATE person SET first_name = {firstName} WHERE person_no = {personNo}") + void setFirstNameBlob(byte[] firstName, long personNo) throws SQLException; - @JdbcMapper.SQL("SELECT first_name, last_name FROM person WHERE person_no = {personNo}") - FieldPerson getPerson(long personNo) throws SQLException; + @JdbcMapper.SQL("UPDATE person SET first_name = {firstName} WHERE person_no = {personNo}") + void setFirstNameBlob(@JdbcMapper.Blob String firstName, long personNo) throws SQLException; - @JdbcMapper.SQL("SELECT first_name, last_name FROM person WHERE last_name = {lastName}") - List getPeople(String lastName) throws SQLException; + @JdbcMapper.SQL("SELECT first_name FROM person WHERE person_no = {personNo}") + String getFirstName(long personNo) throws SQLException; - @JdbcMapper.SQL("SELECT first_name, last_name FROM person WHERE last_name = {lastName}") - FieldPerson[] getPeopleArray(String lastName) throws SQLException; + @JdbcMapper.SQL("SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo}") + FieldPerson getPerson(long personNo, Calendar cal) throws SQLException; - @JdbcMapper.SQL("SELECT first_name, last_name FROM person WHERE last_name = {lastName}") - Iterator getPeopleIterator(String lastName) throws SQLException; + @JdbcMapper.SQL("SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo}") + FieldPerson getPerson(long personNo) throws SQLException; - @JdbcMapper.SQL("SELECT first_name, last_name FROM person WHERE last_name = {lastName}") - ListIterator getPeopleListIterator(String lastName) throws SQLException; + @JdbcMapper.SQL("SELECT first_name, last_name FROM person WHERE last_name = {lastName}") + List getPeople(String lastName) throws SQLException; - @JdbcMapper.SQL("SELECT first_name, last_name, person_no FROM person WHERE last_name = {lastName}") - Map getPersonMap(String lastName) throws SQLException; + @JdbcMapper.SQL("SELECT first_name, last_name FROM person WHERE {last_name not in lastName}") + List getPeople(String[] lastName) throws SQLException; - @JdbcMapper.SQL("SELECT first_name, last_name, person_no FROM person WHERE last_name = {lastName}") - Map> getPersonMapList(String lastName) throws SQLException; + @JdbcMapper.SQL("SELECT first_name, last_name FROM person WHERE {last_name in lastName}") + List getPeople(List lastName) throws SQLException; + + @JdbcMapper.SQL("SELECT first_name, last_name FROM person WHERE last_name = {lastName}") + FieldPerson[] getPeopleArray(String lastName) throws SQLException; + + @JdbcMapper.SQL("SELECT first_name, last_name FROM person WHERE last_name = {lastName}") + Iterator getPeopleIterator(String lastName) throws SQLException; + + @JdbcMapper.SQL("SELECT first_name, last_name FROM person WHERE last_name = {lastName}") + ListIterator getPeopleListIterator(String lastName) throws SQLException; + + @JdbcMapper.SQL("SELECT first_name, last_name, person_no FROM person WHERE last_name = {lastName}") + Map getPersonMap(String lastName) throws SQLException; + + @JdbcMapper.SQL("SELECT first_name, last_name, person_no FROM person WHERE last_name = {lastName}") + Map> getPersonMapList(String lastName) throws SQLException; + + @JdbcMapper.SQL("SELECT first_name FROM person WHERE person_no = {personNo} and last_name = {lastName}") + String getFirstName(long personNo, String lastName) throws SQLException; + + // various date checks here + @JdbcMapper.SQL("SELECT birth_date FROM person WHERE person_no = {personNo}") + Calendar getBirthDateCalendar(long personNo) throws SQLException; + @JdbcMapper.SQL("SELECT birth_date FROM person WHERE person_no = {personNo}") + Calendar getBirthDateCalendar(long personNo, Calendar mycal) throws SQLException; + + @JdbcMapper.SQL("SELECT birth_date FROM person WHERE person_no = {personNo}") + Timestamp getBirthDateTimestamp(long personNo) throws SQLException; + @JdbcMapper.SQL("SELECT birth_date FROM person WHERE person_no = {personNo}") + Timestamp getBirthDateTimestamp(long personNo, Calendar mycal) throws SQLException; + + @JdbcMapper.SQL("SELECT birth_date FROM person WHERE person_no = {personNo}") + Time getBirthDateTime(long personNo) throws SQLException; + @JdbcMapper.SQL("SELECT birth_date FROM person WHERE person_no = {personNo}") + Time getBirthDateTime(long personNo, Calendar mycal) throws SQLException; + + @JdbcMapper.SQL("SELECT birth_date FROM person WHERE person_no = {personNo}") + java.sql.Date getBirthDateSqlDate(long personNo) throws SQLException; + @JdbcMapper.SQL("SELECT birth_date FROM person WHERE person_no = {personNo}") + java.sql.Date getBirthDateSqlDate(long personNo, Calendar mycal) throws SQLException; + + @JdbcMapper.SQL("SELECT birth_date FROM person WHERE person_no = {personNo}") + java.util.Date getBirthDateUtilDate(long personNo) throws SQLException; + @JdbcMapper.SQL("SELECT birth_date FROM person WHERE person_no = {personNo}") + java.util.Date getBirthDateUtilDate(long personNo, Calendar mycal) throws SQLException; + + // cleaner checks + @JdbcMapper.SQL("SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo}") + FieldPerson getPersonCleanFieldPerson(long personNo, Cleaner clean) throws SQLException; + @JdbcMapper.SQL("SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo}") + FieldPerson getPersonCleanPerson(long personNo, Cleaner clean) throws SQLException; + @JdbcMapper.SQL("SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo}") + FieldPerson getPersonCleanObject(long personNo, Cleaner clean) throws SQLException; + @JdbcMapper.SQL("SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo}") + List getPersonCleanPersonList(long personNo, Cleaner clean) throws SQLException; + @JdbcMapper.SQL("SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo}") + Map getPersonCleanPersonMap(long personNo, Cleaner clean) throws SQLException; + @JdbcMapper.SQL("SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo}") + Map> getPersonCleanPersonMapList(long personNo, Cleaner clean) throws SQLException; + /* + // this should NOT compile: + @JdbcMapper.SQL("SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo}") + FieldPerson getPersonCleanNumber(long personNo, Cleaner clean) throws SQLException; + */ + + // max row checks + @JdbcMapper.SQL("SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo}") + Map getPersonDynamicLimit(long personNo, byte maxRows) throws SQLException; + @JdbcMapper.SQL("SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo}") + Map getPersonDynamicLimit(long personNo, short arrayMaxLength) throws SQLException; + @JdbcMapper.SQL("SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo}") + List getPersonDynamicLimit(long personNo, int maxRows) throws SQLException; + @JdbcMapper.SQL("SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo}") + Map> getPersonDynamicLimit(long personNo, long rowLimit) throws SQLException; + + + @JdbcMapper.SQL(value = "SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo}", maxRows = Byte.MAX_VALUE) + List getPersonStaticLimitListByte(long personNo) throws SQLException; + @JdbcMapper.SQL(value = "SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo}", maxRows = Short.MAX_VALUE) + List getPersonStaticLimitList(long personNo) throws SQLException; + @JdbcMapper.SQL(value = "SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo}", maxRows = Integer.MAX_VALUE) + Map getPersonStaticLimitMap(long personNo) throws SQLException; + @JdbcMapper.SQL(value = "SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo}", maxRows = Long.MAX_VALUE) + Map> getPersonStaticLimitMapList(long personNo) throws SQLException; + + + @JdbcMapper.SQL("SELECT person_no, birth_date, last_name, first_name from person WHERE person_no IN ({personNo1},{personNo2},{personNo3}) ORDER BY person_no") + List getPeopleList(long personNo1, long personNo2, long personNo3) throws SQLException; + + @JdbcMapper.SQL("SELECT person_no, birth_date, last_name, first_name from person WHERE person_no IN ({personNo1},{personNo2},{personNo3}) ORDER BY person_no") + ResultSetIterable getPeopleResultSetIterable(long personNo1, long personNo2, long personNo3) throws SQLException; + + @JdbcMapper.SQL(value = "SELECT person_no, birth_date, last_name, first_name from person WHERE person_no IN ({personNo1},{personNo2},{personNo3}) ORDER BY person_no", cachePreparedStatement = JdbcMapper.OptionalBool.TRUE) + ResultSetIterable getPeopleResultSetIterableCachedPreparedStatement(long personNo1, long personNo2, long personNo3) throws SQLException; - @JdbcMapper.SQL("SELECT first_name FROM person WHERE person_no = {personNo} and last_name = {lastName}") - String getFirstName(long personNo, String lastName) throws SQLException; } diff --git a/presto-sqlparser/src/test/java/com/moparisthebest/jdbc/codegen/PrestoPersonDAOTest.java b/presto-sqlparser/src/test/java/com/moparisthebest/jdbc/codegen/PrestoPersonDAOTest.java index fcf28b4..ff4641f 100644 --- a/presto-sqlparser/src/test/java/com/moparisthebest/jdbc/codegen/PrestoPersonDAOTest.java +++ b/presto-sqlparser/src/test/java/com/moparisthebest/jdbc/codegen/PrestoPersonDAOTest.java @@ -14,8 +14,6 @@ import static org.junit.Assert.assertEquals; */ public class PrestoPersonDAOTest extends JdbcMapperTest { - private static PersonDAO dao; - @BeforeClass public static void setUp() throws Throwable { dao = JdbcMapperFactory.create(PrestoPersonDAO.class, getConnection()); @@ -24,7 +22,7 @@ public class PrestoPersonDAOTest extends JdbcMapperTest { @AfterClass public static void tearDown() throws Throwable { - //tryClose(dao); + tryClose(dao); } public PersonDAO getDao() {