Linux+;Java+;Odbc+;进步
嗨,我需要将Linux服务器上的Java应用程序连接到Progress数据库。我用来连接Linux服务器上配置的odbc,它工作正常,从命令行我可以查询。问题是,当我试图从Java应用程序获取连接时,我得到了一个空指针 Java版本1.6.0_45 操作系统:CentOS 6.5版 ODBC进程:工作正常 这是一个方法的主体,用于在进程中测试de InsertLinux+;Java+;Odbc+;进步,java,linux,odbc,openedge,progress-db,Java,Linux,Odbc,Openedge,Progress Db,嗨,我需要将Linux服务器上的Java应用程序连接到Progress数据库。我用来连接Linux服务器上配置的odbc,它工作正常,从命令行我可以查询。问题是,当我试图从Java应用程序获取连接时,我得到了一个空指针 Java版本1.6.0_45 操作系统:CentOS 6.5版 ODBC进程:工作正常 这是一个方法的主体,用于在进程中测试de Insert try { String bd = "dbToWrite"; String url = "jdbc:od
try {
String bd = "dbToWrite";
String url = "jdbc:odbc:" + bd;
String user = "root";
String psw = "root";
Connection con;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection(url, user, psw);
PreparedStatement ps1 = con.prepareStatement("INSERT INTO PUB.\"mo-chsu\" "
+ "(\"c-expt\", \"c-tisu\", \"i-cheq\","
+ " \"c-a#o\", nombre, apellido, "
+ "\"n-tarj\", \"c-cat\", varios, "
+ "\"s-sac\", embar, otros, "
+ "jubi, \"ti-doc\", \"num-doc\", "
+ "\"co-min\", \"n-liq\", fonavi,"
+ " club,\"n-mes\", anioe)"
+ "VALUES (9999,999,9999.99,"
+ "2014,'XXXX','XXXX',"
+ "999,5,888.88,"
+ "1.0,2.0,3.0,"
+ "4.44,9,99999999,"
+ "1,9,3000,"
+ "30.0,9,2014)");
ps1.execute();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
例外情况是,不要说太多:
java.lang.NullPointerException
at sun.jdbc.odbc.JdbcOdbcDriver.initialize(JdbcOdbcDriver.java:436)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:153)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at Main.conexionProgress(Main.java:23)
at Main.main(Main.java:10)
我认为问题在于Java上的库。。。但我能找到一个
请帮我一把!谢谢
对不起,我的英语:)这里有一个你可以试试的。顺便说一下,您也可以尝试将驱动程序jar更改为另一个版本。我认为ODBC网桥仅在Windows系统上可用。谢谢您的帮助。关于驱动程序,我尝试了3个版本,但正在进行的文档表明使用他们提供的版本。关于odbc网桥,从linux commnad行可以完美地工作,问题在于java的某些方面,在windows中配置了相同的测试和odbc网桥,可以完美地工作,这就是为什么我说问题在linux、odbc和java之间。