Hi Folks, I am trying to recast the JDBC Statement object that is given to me from a Connection object that I get out of Tomcat's datasource connection pool. If I recast the generic java.sql.Statement to a com.mysql.jdbc.Statment, I can use the non JDBC compliant methods such as getLastInsertID. When I do this in a test class using standard JDBC, it works perfectly. But when I try to do this from a connection object that is retrived from tomcat's connection pool, I get a ClassCastException. Does the datasource mechanism alter the connection somehow so that it would no longer give me com.mysql.jdbc.Statment objects, but some other kind?
Here's the code that works... Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection(:mysql://jedi.x:3306/vegas?autoReconnect=true, username, password); Statement stmt = con.createStatement(); stmt.executeUpdate("INSERT INTO role VALUES (null, 'test', '123')"); com.mysql.jdbc.Statement m = (com.mysql.jdbc.Statement) stmt; long id = m.getLastInsertID(); Here's the code that doesn't work: Context ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/vegas"); Connection con = ds.getConnection(); Statement stmt = con.createStatement(); stmt.executeUpdate("INSERT INTO role VALUES (null, 'test', '123')"); com.mysql.jdbc.Statement m = (com.mysql.jdbc.Statement) stmt; long id = m.getLastInsertID(); I should note that other than this, everything works fine with the datasource. Its configured properly (I think) and I can fully access the database in all respects. I am using: Tomcat 4.1.24 Linux 2.4.20 Mysql 4.0.13 Java 1.4.1.03 Mysql Connector/J 3.0.8 Thanks For the help! Joe Krause