最近在写一个Jave的小程序,使用的是Sybase15,但是在程序中获取连接时抛出了如下异常:
java.sql.SQLWarning: Language name in login record 'chinese' is not an official name on this ASE. Using default 'us_english' from syslogins instead.
at com.sybase.jdbc3.jdbc.SybConnection.convertToWarnings(Unknown Source)
at com.sybase.jdbc3.jdbc.SybConnection.chainWarnings(Unknown Source)
at com.sybase.jdbc3.tds.Tds.for(Unknown Source)
at com.sybase.jdbc3.tds.Tds.a(Unknown Source)
at com.sybase.jdbc3.tds.Tds.login(Unknown Source)
at com.sybase.jdbc3.jdbc.SybConnection.a(Unknown Source)
at com.sybase.jdbc3.jdbc.SybConnection.a(Unknown Source)
at com.sybase.jdbc3.jdbc.SybConnection.<init>(Unknown Source)
at com.sybase.jdbc3.jdbc.SybConnection.<init>(Unknown Source)
at com.sybase.jdbc3.jdbc.SybDriver.connect(Unknown Source)
at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
我度娘谷狗了好多,确搜索到了好多关于sybase查询中文乱码的问题,后来无意在一个不太相关的文件中得到一些线索,通过修改JDBC举动属性解决了此问题,修改如下:
报错的JDBC_URL: jdbc:sybase:Tds:1.1.1.1:0000/db
解决的JDBC)URL: jdbc:sybase:Tds:10.121.111.22:4300/db_cus2?language=us_english
希望可以帮助一些发生和我一样问题的朋友们,谢谢O(∩_∩)O~