2017-05-27 23:54:22 -04:00
package com.moparisthebest.jdbc.codegen ;
2017-06-07 21:29:28 -04:00
import com.moparisthebest.jdbc.Cleaner ;
2017-06-13 21:42:32 -04:00
import com.moparisthebest.jdbc.dto.EnumPerson ;
2017-05-27 23:54:22 -04:00
import com.moparisthebest.jdbc.dto.FieldPerson ;
2017-06-13 21:42:32 -04:00
import com.moparisthebest.jdbc.dto.FirstName ;
2017-06-07 21:29:28 -04:00
import com.moparisthebest.jdbc.dto.Person ;
2017-06-09 00:36:41 -04:00
import com.moparisthebest.jdbc.util.ResultSetIterable ;
2017-05-27 23:54:22 -04:00
2017-06-09 00:36:41 -04:00
import java.io.Closeable ;
2017-06-19 23:50:59 -04:00
import java.sql.ResultSet ;
2017-05-27 23:54:22 -04:00
import java.sql.SQLException ;
2017-06-07 20:30:58 -04:00
import java.sql.Time ;
import java.sql.Timestamp ;
import java.util.* ;
2017-06-12 23:48:54 -04:00
//IFJAVA8_START
import java.util.stream.Stream ;
2017-06-13 22:56:00 -04:00
import java.time.* ;
2017-06-12 23:48:54 -04:00
//IFJAVA8_END
2017-05-27 23:54:22 -04:00
/ * *
* Created by mopar on 5 / 24 / 17 .
* /
@JdbcMapper.Mapper (
2017-07-01 02:07:04 -04:00
jndiName = " bob " ,
2017-06-02 00:39:03 -04:00
// databaseType = JdbcMapper.DatabaseType.ORACLE
2017-06-09 00:36:41 -04:00
cachePreparedStatements = JdbcMapper . OptionalBool . FALSE
2017-05-28 22:14:30 -04:00
// , sqlParser = SimpleSQLParser.class
2017-06-19 00:34:23 -04:00
, allowReflection = JdbcMapper . OptionalBool . TRUE
2017-05-27 23:54:22 -04:00
)
2017-07-03 03:05:53 -04:00
public interface PersonDAO extends JdbcMapper {
2017-05-27 23:54:22 -04:00
2017-06-19 23:50:59 -04:00
@JdbcMapper.SQL ( " CREATE TABLE person (person_no NUMERIC, first_name VARCHAR(40), last_name VARCHAR(40), birth_date TIMESTAMP) " )
void createTablePerson ( ) ;
@JdbcMapper.SQL ( " INSERT INTO person (person_no, birth_date, last_name, first_name) VALUES ({personNo}, {birthDate}, {firstName}, {lastName}) " )
int insertPerson ( long personNo , Date birthDate , String firstName , String lastName ) ;
2017-05-27 23:54:22 -04:00
@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 ;
2017-05-29 18:26:11 -04:00
@JdbcMapper.SQL ( " UPDATE person SET first_name = {firstName} WHERE person_no = {personNo} " )
void setFirstNameBlob ( @JdbcMapper.Blob String firstName , long personNo ) throws SQLException ;
2017-06-28 16:00:32 -04:00
@JdbcMapper.SQL ( " SELECT person_no FROM person WHERE last_name = {lastName} " )
long getPersonNo ( String lastName ) throws SQLException ;
2017-06-19 23:50:59 -04:00
@JdbcMapper.SQL ( " SELECT first_name, last_name FROM person WHERE last_name = {lastName} " )
ResultSet getPeopleResultSet ( String lastName ) throws SQLException ;
@JdbcMapper.SQL ( value = " SELECT first_name, last_name FROM person WHERE last_name = {lastName} " , cachePreparedStatement = JdbcMapper . OptionalBool . TRUE )
ResultSet getPeopleResultSetCached ( String lastName ) throws SQLException ;
2017-05-27 23:54:22 -04:00
@JdbcMapper.SQL ( " SELECT first_name FROM person WHERE person_no = {personNo} " )
String getFirstName ( long personNo ) throws SQLException ;
2017-06-19 00:34:23 -04:00
@JdbcMapper.SQL ( value = " SELECT person_no, first_name, last_name, birth_date FROM person WHERE person_no = {personNo} " )
2017-05-27 23:54:22 -04:00
FieldPerson getPerson ( long personNo ) throws SQLException ;
2017-06-19 22:37:44 -04:00
@JdbcMapper.SQL ( " SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo} " )
FieldPerson getPerson ( long personNo , Calendar cal ) throws SQLException ;
2017-05-27 23:54:22 -04:00
@JdbcMapper.SQL ( " SELECT first_name, last_name FROM person WHERE last_name = {lastName} " )
List < FieldPerson > getPeople ( String lastName ) throws SQLException ;
2017-06-02 00:39:03 -04:00
@JdbcMapper.SQL ( " SELECT first_name, last_name FROM person WHERE {last_name not in lastName} " )
List < FieldPerson > getPeople ( String [ ] lastName ) throws SQLException ;
@JdbcMapper.SQL ( " SELECT first_name, last_name FROM person WHERE {last_name in lastName} " )
List < FieldPerson > getPeople ( List < String > lastName ) throws SQLException ;
2017-05-27 23:54:22 -04:00
@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 < FieldPerson > getPeopleIterator ( String lastName ) throws SQLException ;
@JdbcMapper.SQL ( " SELECT first_name, last_name FROM person WHERE last_name = {lastName} " )
ListIterator < FieldPerson > getPeopleListIterator ( String lastName ) throws SQLException ;
@JdbcMapper.SQL ( " SELECT first_name, last_name, person_no FROM person WHERE last_name = {lastName} " )
Map < String , FieldPerson > getPersonMap ( String lastName ) throws SQLException ;
@JdbcMapper.SQL ( " SELECT first_name, last_name, person_no FROM person WHERE last_name = {lastName} " )
Map < String , List < FieldPerson > > 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 ;
2017-06-07 20:30:58 -04:00
// 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 ;
2017-06-07 21:29:28 -04:00
// cleaner checks
@JdbcMapper.SQL ( " SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo} " )
FieldPerson getPersonCleanFieldPerson ( long personNo , Cleaner < FieldPerson > clean ) throws SQLException ;
@JdbcMapper.SQL ( " SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo} " )
FieldPerson getPersonCleanPerson ( long personNo , Cleaner < Person > clean ) throws SQLException ;
@JdbcMapper.SQL ( " SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo} " )
FieldPerson getPersonCleanObject ( long personNo , Cleaner < Object > clean ) throws SQLException ;
@JdbcMapper.SQL ( " SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo} " )
List < FieldPerson > getPersonCleanPersonList ( long personNo , Cleaner < Person > clean ) throws SQLException ;
@JdbcMapper.SQL ( " SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo} " )
Map < String , FieldPerson > getPersonCleanPersonMap ( long personNo , Cleaner < Person > clean ) throws SQLException ;
@JdbcMapper.SQL ( " SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo} " )
Map < String , List < FieldPerson > > getPersonCleanPersonMapList ( long personNo , Cleaner < Person > 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 < Number > clean ) throws SQLException ;
* /
2017-06-08 00:09:00 -04:00
// max row checks
@JdbcMapper.SQL ( " SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo} " )
2017-06-08 01:27:56 -04:00
Map < String , FieldPerson > getPersonDynamicLimit ( long personNo , byte maxRows ) throws SQLException ;
2017-06-08 00:09:00 -04:00
@JdbcMapper.SQL ( " SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo} " )
Map < String , FieldPerson > getPersonDynamicLimit ( long personNo , short arrayMaxLength ) throws SQLException ;
@JdbcMapper.SQL ( " SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo} " )
2017-06-08 01:27:56 -04:00
List < FieldPerson > getPersonDynamicLimit ( long personNo , int maxRows ) throws SQLException ;
@JdbcMapper.SQL ( " SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo} " )
2017-06-08 00:09:00 -04:00
Map < String , List < FieldPerson > > getPersonDynamicLimit ( long personNo , long rowLimit ) throws SQLException ;
2017-06-08 01:27:56 -04:00
@JdbcMapper.SQL ( value = " SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo} " , maxRows = Byte . MAX_VALUE )
List < FieldPerson > 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 )
2017-06-08 00:09:00 -04:00
List < FieldPerson > getPersonStaticLimitList ( long personNo ) throws SQLException ;
2017-06-08 01:27:56 -04:00
@JdbcMapper.SQL ( value = " SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo} " , maxRows = Integer . MAX_VALUE )
2017-06-08 00:09:00 -04:00
Map < String , FieldPerson > getPersonStaticLimitMap ( long personNo ) throws SQLException ;
2017-06-08 01:27:56 -04:00
@JdbcMapper.SQL ( value = " SELECT first_name, last_name, birth_date FROM person WHERE person_no = {personNo} " , maxRows = Long . MAX_VALUE )
2017-06-08 00:09:00 -04:00
Map < String , List < FieldPerson > > getPersonStaticLimitMapList ( long personNo ) throws SQLException ;
2017-06-09 00:36:41 -04:00
@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 < FieldPerson > 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 < FieldPerson > 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 < FieldPerson > getPeopleResultSetIterableCachedPreparedStatement ( long personNo1 , long personNo2 , long personNo3 ) throws SQLException ;
2017-06-12 23:48:54 -04:00
//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 < FieldPerson > 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 < FieldPerson > getPeopleStreamCachedPreparedStatement ( long personNo1 , long personNo2 , long personNo3 ) throws SQLException ;
//IFJAVA8_END
2017-06-13 21:42:32 -04:00
@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 ;
2017-06-13 22:56:00 -04:00
//IFJAVA8_START
@JdbcMapper.SQL ( " SELECT birth_date FROM person WHERE person_no = {personNo} " )
Instant getBirthDateInstant ( long personNo ) ;
@JdbcMapper.SQL ( " SELECT birth_date FROM person WHERE person_no = {personNo} " )
LocalDateTime getBirthDateLocalDateTime ( long personNo ) ;
@JdbcMapper.SQL ( " SELECT birth_date FROM person WHERE person_no = {personNo} " )
LocalDate getBirthDateLocalDate ( long personNo ) ;
@JdbcMapper.SQL ( " SELECT birth_date FROM person WHERE person_no = {personNo} " )
LocalTime getBirthDateLocalTime ( long personNo ) ;
@JdbcMapper.SQL ( " SELECT birth_date FROM person WHERE person_no = {personNo} " )
ZonedDateTime getBirthDateZonedDateTime ( long personNo ) ;
@JdbcMapper.SQL ( " SELECT birth_date FROM person WHERE person_no = {personNo} " )
OffsetDateTime getBirthDateOffsetDateTime ( long personNo ) ;
@JdbcMapper.SQL ( " SELECT birth_date FROM person WHERE person_no = {personNo} " )
OffsetTime getBirthDateZonedOffsetTime ( long personNo ) ;
@JdbcMapper.SQL ( " SELECT num_val FROM val WHERE val_no = {valNo} " )
Year getYearInt ( long valNo ) ;
@JdbcMapper.SQL ( " SELECT str_val FROM val WHERE val_no = {valNo} " )
Year getYearString ( long valNo ) ;
@JdbcMapper.SQL ( " SELECT str_val FROM val WHERE val_no = {valNo} " )
ZoneId getZoneId ( long valNo ) ;
@JdbcMapper.SQL ( " SELECT num_val FROM val WHERE val_no = {valNo} " )
ZoneOffset getZoneOffsetInt ( long valNo ) ;
@JdbcMapper.SQL ( " SELECT str_val FROM val WHERE val_no = {valNo} " )
ZoneOffset getZoneOffsetStr ( long valNo ) ;
//IFJAVA8_END
2017-07-12 22:34:51 -04:00
// test blob
@JdbcMapper.SQL ( " SELECT some_blob FROM val WHERE val_no = {valNo} " )
byte [ ] getBlob ( long valNo ) ;
2017-05-27 23:54:22 -04:00
}