Description:
I´m configuring a connection with the property jdbcCompliantTruncation=false but the property does not have the expected result.
How to repeat:
import java.sql.Connection;
import java.sql.DataTruncation;
import java.sql.DriverManager;
import java.sql.Statement;
import junit.framework.TestCase;
public class DatabaseTest extends TestCase {
public void setUp() throws Exception {
}
public void tearDown() throws Exception {
}
public void testJdbcDataTruncation() throws Exception {
Class.forName("com.mysql.jdbc.Driver");
String dburl = "jdbc:mysql://server/TEST";
String dburlTrunc = "jdbc:mysql://server/TEST?jdbcCompliantTruncation=false";
String dbuser = "TEST";
String dbpass = "TEST";
Connection connection = DriverManager.getConnection(dburl, dbuser,
dbpass);
Statement stm = connection.createStatement();
stm.execute("DROP TABLE IF EXISTS `test`");
stm.execute("CREATE TEMPORARY TABLE `test` ("
+ " `idTest` int(11) NOT NULL auto_increment,"
+ " `test_1` varchar(5) default NULL,"
+ " `test_2` varchar(5) default NULL,"
+ "PRIMARY KEY (`idTest`))");
try {
stm
.execute("insert into test values (null,'12345','123456789')");
fail();
} catch (Exception e) {
}
stm.close();
connection.close();
connection = DriverManager.getConnection(dburlTrunc, dbuser, dbpass);
stm = connection.createStatement();
stm.execute("DROP TABLE IF EXISTS `test`");
stm.execute("CREATE TEMPORARY TABLE `test` ("
+ " `idTest` int(11) NOT NULL auto_increment,"
+ " `test_1` varchar(5) default NULL,"
+ " `test_2` varchar(5) default NULL,"
+ "PRIMARY KEY (`idTest`))");
try {
stm
.execute("insert into test values (null,'12345','123456789')");
} catch (DataTruncation e) {
fail("Error:" + e.getMessage());
}
}
}
Suggested fix:
No suggestions.