ghostvic
发贴: 18
积分: 0
|
于 2008-01-09 23:58
小弟写了一个用java连接mysql的试验程序,在A机器(RH linux)上能正确运行,在B机器(windows)也能正确运行,但是到了我的机器C上( RH linux)却总出异常。
哪位大哥帮忙给解答一下,谢谢。
源代码:
import java.sql.*;
public class OpenDB { String userName = "user";
String userPassword = "pass";
private String driverName = "org.gjt.mm.mysql.Driver";
private String url = "jdbc:mysql://210.29.134.131/USER";
Connection dbConn;
public Connection getConnection() { try { Class.forName(driverName); dbConn = DriverManager.getConnection(url, userName, userPassword); } catch (Exception ex) { ex.printStackTrace(); System.out.println("Cannot connect to Database"; } return dbConn; }
public Statement getState() { Statement stmt = null; try { stmt = this.getConnection().createStatement(); } catch (SQLException e) { e.printStackTrace(); } return stmt; } public int executeInsert(String strSql){ Statement stmt = this.getState(); try { return stmt.executeUpdate(strSql); } catch (SQLException e) { System.out.println("Cannot execute Sql command: "+strSql); } return 0; } public ResultSet executeQuery(String strSql){ Statement stmt = this.getState(); try{ return stmt.executeQuery(strSql); }catch (SQLException e){ System.out.println("Cannot execute Sql command: "+strSql); } return null; } public static void main(String[] args) { OpenDB db = new OpenDB(); ResultSet rs = db.executeQuery("select * from user"; try { while (rs.next()) System.out.println(rs.getString("DNS"); } catch (SQLException ex) { ex.printStackTrace(); } } } =================================================== 异常为: at java.lang.Class.initializeClass (libgcj.so.7) at com.mysql.jdbc.NonRegisteringDriver.parseURL (NonRegisteringDriver.java:436) at com.mysql.jdbc.NonRegisteringDriver.acceptsURL (NonRegisteringDriver.java:210) at java.sql.DriverManager.getDriver (libgcj.so.7) at java.sql.DriverManager.getConnection (libgcj.so.7) at java.sql.DriverManager.getConnection (libgcj.so.7) at OpenDB.getConnection (OpenDB.java:19) at OpenDB.getState (OpenDB.java:30) at OpenDB.executeQuery (OpenDB.java:4 at OpenDB.main (OpenDB.java:61) Caused by: java.io.CharConversionException at gnu.gcj.convert.Input_iconv.read (libgcj.so.7) at java.lang.String.init (libgcj.so.7) at java.lang.String.<init> (libgcj.so.7) at com.mysql.jdbc.StringUtils.<clinit> (StringUtils.java:66) at java.lang.Class.initializeClass (libgcj.so.7) ...9 more
==================================================== 有以下几个条件: 1。A,C 在一个局域网, 2。数据库装在A上 3。A,C两个机器的mysql驱动都一样 4. 用C连接其他数据库也不行,出一样的异常。 5。A,C的classpath均为: /usr/java/jdk1.5.0_04/jre/lib/rt.jar:.:/etc/java/lib/mysql-connector-java-3.1.11-bin.jar 6。C上面跑其他的java程序正常
|