package com.moparisthebest.jdbc.codegen; import com.moparisthebest.jdbc.Cleaner; import com.moparisthebest.jdbc.dto.EnumPerson; import com.moparisthebest.jdbc.dto.FieldPerson; import com.moparisthebest.jdbc.dto.FirstName; import com.moparisthebest.jdbc.dto.Person; import com.moparisthebest.jdbc.util.ResultSetIterable; import java.io.Closeable; import java.sql.SQLException; import java.sql.Time; import java.sql.Timestamp; import java.util.*; //IFJAVA8_START import java.util.stream.Stream; //IFJAVA8_END /** * Created by mopar on 5/24/17. */ @JdbcMapper.Mapper( // jndiName = "bob", // databaseType = JdbcMapper.DatabaseType.ORACLE cachePreparedStatements = JdbcMapper.OptionalBool.FALSE , sqlParser = PrestoSQLParser.class ) 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 person_no = {personNo}") void setFirstNameBlob(byte[] firstName, 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 FROM person WHERE person_no = {personNo}") String getFirstName(long personNo) 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, 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}") List getPeople(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 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; //IFJAVA8_START @JdbcMapper.SQL("SELECT person_no, birth_date, last_name, first_name from person WHERE person_no IN ({personNo1},{personNo2},{personNo3}) ORDER BY person_no") Stream getPeopleStream(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) Stream getPeopleStreamCachedPreparedStatement(long personNo1, long personNo2, long personNo3) throws SQLException; //IFJAVA8_END @JdbcMapper.SQL("SELECT first_name, last_name FROM person WHERE person_no = {personNo}") EnumPerson getEnumPerson(long personNo) throws SQLException; @JdbcMapper.SQL("SELECT first_name FROM person WHERE person_no = {personNo}") FirstName getFirstNameEnum(long personNo) throws SQLException; }