如何在Windows XP中使用Java远程连接ODBC?
我的远程数据库是Mysql数据库,我想检索一些记录并放入 Microsoft Access数据库,它是一个本地主机数据库 我还想为远程数据库创建DSN如何在Windows XP中使用Java远程连接ODBC?,java,odbc,Java,Odbc,我的远程数据库是Mysql数据库,我想检索一些记录并放入 Microsoft Access数据库,它是一个本地主机数据库 我还想为远程数据库创建DSN 请帮助我您想使用连接到ODBC数据库。我刚刚在MATLAB中得到了一个类似的设置,它使用java连接到MySQL和Access数据库。 我用以下方法创建了一个java类 /** * Open a connection to a MySQL database * @param userName registered user on t
请帮助我您想使用连接到ODBC数据库。我刚刚在MATLAB中得到了一个类似的设置,它使用java连接到MySQL和Access数据库。 我用以下方法创建了一个java类
/**
* Open a connection to a MySQL database
* @param userName registered user on the MySQL database.
* @param userPassword MySQL database password for the named user.
* @param databaseUrl database name eg. 'jdbc:mysql://glnd2818898.network.net/matlab'
*/
public void openMySQLConnection(String userName, String userPassword, String databaseUrl){
try {
Class.forName ("com.mysql.jdbc.Driver").newInstance ();
conn = DriverManager.getConnection (databaseUrl, userName, userPassword);
}catch (SQLException e) {System.err.println ("Cannot connect to database server");}
}
这通过内部网络运行,因此根据定义数据库URL的注释,glnd2818898.network.net是MySQL服务器,它连接到数据库“matlab”
访问接口类似
private static final String accessDBURLPrefix = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
private static final String accessDBURLSuffix = ";READONLY=true}";
/**
* Open a connection to a Access database
* @param userName registered user on the Access database.
* @param userPassword Access database password for the named user.
* @param databaseUrl database name eg. 'pathname/accessName.mdb'
*/
public void openConnAccess(String userName, String userPassword, String databaseUrl){
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String dbUrl = accessDBURLPrefix + databaseUrl + accessDBURLSuffix;
conn = DriverManager.getConnection (dbUrl, userName, userPassword);
}catch (SQLException e) {System.err.println ("Cannot connect to database server :" + e.getMessage());}
}
这可能不是最整洁的java编码,因为从MATLAB用户的角度来看,这是我的第一次尝试,但它对我很有效。问题是什么?我如何为远程数据库创建DSN?为什么需要使用ODBC与MySQL对话?为什么不把JDBC连接到MySQL,把JDBC-ODBC桥连接到Access?这可能就是他想要的答案,斯卡夫曼。