I won't pop the champagne just yet, but it seems as if LocalDate is supported in 11.5.8. I pulled the latest db2 container:
[lejo0004@7540-nya-lejo0004-hemma /]$ docker pull ibmcom/db2
Using default tag: latest
latest: Pulling from ibmcom/db2
docker run -itd --name mydb2 --privileged=true -p 50000:50000 -e LICENSE=accept -e DB2INST1_PASSWORD=nisse12 -e DBNAME=testdb -v /data/db/db2:/database ibmcom/db2
[lejo0004@7540-nya-lejo0004-hemma /]$ docker exec -ti mydb2 bash -c "su - db2inst1"
Last login: Thu Oct 27 07:37:19 UTC 2022
[db2inst1@32096d59ce93 ~]$ db2level
DB21085I This instance or install (instance name, where applicable:
"db2inst1") uses "64" bits and DB2 code release "SQL11058" with level
identifier "0609010F".
Informational tokens are "DB2 v11.5.8.0", "s2209201700", "DYN2209201700AMD64",
and Fix Pack "0".
Product is installed at "/opt/ibm/db2/V11.5".
Then recompiled the testprogram with the db2jcc4.jar shipped with 11.5.8
[lejo0004@7540-nya-lejo0004-hemma tryLocalDate]$ javac -classpath .:db2jcc4.jar tryLocalDate.java
[lejo0004@7540-nya-lejo0004-hemma tryLocalDate]$ java -cp .:db2jcc4.jar Dummy
4
1
2022-10-27
2022-10-27
AFAIK, it is not mentioned under whats new for 11.5.8 and the Aha is still under concideration but it seems to work now.
------------------------------
Lennart Jonsson
ITS Umeå University
------------------------------
Original Message:
Sent: Nov 23, 2020 01:57 PM
From: Lennart Jonsson
Subject: jcc driver shipped with 11.5.5, JDBC 4.1 or 4.3?
From my understanding, the driver shipped with 11.5.5. should support JDBC 4.3 (with an exception for things added in JAVA 9, https://www.ibm.com/support/knowledgecenter/SSEPGG_11.5.0/com.ibm.db2.luw.wn.doc/doc/c_ds_clients_drivers_11-5-5.html ). I'm running on a server where db2version is:]$ db2level
DB21085I This instance or install (instance name, where applicable:
"db2inst1") uses "64" bits and DB2 code release "SQL11055" with level
identifier "0606010F".
Informational tokens are "DB2 v11.5.5.0", "s2011011400", "DYN2011011400AMD64",
and Fix Pack "0".
Product is installed at "/opt/ibm/db2/V11.5".
A small test prog reveals that the driver still thinks it is 4.1 and that localDate is not supported.import java.lang.*;
import java.sql.*;
import java.time.LocalDate;
class Dummy
{
static String user = "*****";
static String pwd = "*****";
public static void main(String argv[])
throws Exception
{
String JDBC_DRIVER = "com.ibm.db2.jcc.DB2Driver";
String DB_URL = "jdbc:db2://localhost:50000/SAMPLE";
Connection conn = null;
Statement stmt = null;
Class.forName(JDBC_DRIVER);
conn = DriverManager.getConnection(DB_URL,user,pwd);
DatabaseMetaData metaData = conn.getMetaData();
int x = metaData.getJDBCMajorVersion();
int y = metaData.getJDBCMinorVersion();
System.out.println(x);
System.out.println(y);
stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("values current_date");
rs.next();
System.out.println(rs.getDate(1));
rs = stmt.executeQuery("values current_date");
rs.next();
System.out.println(rs.getObject(1, LocalDate.class));
}
}
]$ javac -classpath .:/opt/nya/users/db2inst1/sqllib/java/db2jcc4.jar tryLocalDate.java
]$ java -cp .:/opt/nya/users/db2inst1/sqllib/java/db2jcc4.jar Dummy
4
1
2020-11-23
Exception in thread "main" com.ibm.db2.jcc.am.SqlSyntaxErrorException: [jcc][t4][1092][13956][4.28.11] Invalid data conversion: Wrong result column type for requested conversion. ERRORCODE=-4461, SQLSTATE=42815
at com.ibm.db2.jcc.am.b7.a(b7.java:810)
at com.ibm.db2.jcc.am.b7.a(b7.java:66)
at com.ibm.db2.jcc.am.b7.a(b7.java:133)
at com.ibm.db2.jcc.am.ResultSet.getObject(ResultSet.java:1978)
at Dummy.main(tryLocalDate.java:39)
Someone else managed to use functionality from JDBC 4.3 with driver shipped with 11.5.5?
------------------------------
LennartJonsson
ITS Umeå University
------------------------------