Encoding in Connector/J 5.1.7
Niklas Saers <[email protected]> Tue, 14 Jul 2009 14:25:46 +0200
| Newsgroups | gmane.comp.db.mysql.java |
|---|---|
| Message-ID | <[email protected]> |
Hi again, guys,
While cleaning up the code-base I've inherited, I switched from
Connector/J 5.0.5 to Connector/J 5.1.7. In the JDBC declaration I've set
useUnicode=true&characterEncoding=latin1 (the full JDBC config
below)
before updating, but now an INSERT call via a prepared statement fails
because I try to insert a string containing scandinavian letters. When
doing a toString() on my prepared statement I get
INSERT INTO tblLog(headline, comment, ts) VALUES ('Testing rækkehus',
'yet another test', NOW())
Inserting this line manually via the MySQL client goes fine, executing
the prepared statement gives an SQLException (pasted below). This
insert went well with version 5.0.5. What should I do to make it deal
nicely with the table that's in latin1?
Cheers
Nik
<ResourceParams name="jdbc/MyDB">
<parameter><name>driverClassName</
name><value>com.mysql.jdbc.Driver</value></parameter>
<parameter><name>factory</
name><value>org.apache.commons.dbcp.BasicDataSourceFactory</value></
parameter>
<parameter><name>username</name><value>someuser</value></parameter>
<parameter><name>password</name><value>somepass</value></parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost/MyDB?
autoReconnect=true&useUnicode=true&characterEncoding=latin1</
value>
</parameter>
<parameter><name>maxActive</name><value>100</value></parameter>
<parameter><name>maxWait</name><value>10000</value></parameter>
<parameter><name>maxIdle</name><value>30</value></parameter>
<parameter><name>validationQuery</name><value>SELECT 1</value></
parameter>
<parameter><name>testWhileIdle</name><value>true</value></
parameter>
</ResourceParams>
com.mysql.jdbc.SQLError:createSQLException(): Incorrect string value:
'\xE6kkehu...' for column 'headline' at row 1
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)
com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1951)
com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)
com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2554)
com.mysql.jdbc.PreparedStatement.executeInternal
(PreparedStatement.java:1761)
com.mysql.jdbc.PreparedStatement.executeUpdate
(PreparedStatement.java:2046)
com.mysql.jdbc.PreparedStatement.executeUpdate
(PreparedStatement.java:1964)
com.mysql.jdbc.PreparedStatement.executeUpdate
(PreparedStatement.java:1949)
dk.someclient.servlets.TestServlet.insertPS(TestServlet.java:72)
javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:237)
org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:157)
org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:214)
org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104)
org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:520)
org.apache.catalina.core.StandardContextValve.invokeInternal
(StandardContextValve.java:198)
org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:152)
org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104)
org.apache.catalina.authenticator.AuthenticatorBase.invoke
(AuthenticatorBase.java:540)
org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:102)
org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:520)
org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:137)
org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104)
org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:117)
org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:102)
org.apache.catalina.authenticator.SingleSignOn.invoke
(SingleSignOn.java:443)
org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:102)
org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:520)
org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:109)
org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104)
org.apache.catalina.valves.AccessLogValve.invoke
(AccessLogValve.java:535)
org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:102)
org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:520)
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:
929)
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:
160)
org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:790)
org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.processConnection(Http11Protocol.java:709)
org.apache.tomcat.util.net.TcpWorkerThread.runIt
(PoolTcpEndpoint.java:572)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
(ThreadPool.java:644)
java.lang.Thread.run(Thread.java:595)
--
MySQL Java Mailing List
For list archives: http://lists.mysql.com/java
To unsubscribe: http://lists.mysql.com/[email protected]