如何解决如何将Java连接到Ms Access 2010?
| 是否有人对将Access 2010连接到Java jdbc有任何想法。我使用此方法,但是当我调用它时,它不起作用:public void loadDb(){
try{
Class.forName(\"sun.jdbc.JdbcOdbcDriver\");
File f = new File(System.getProperty(\"user.dir\"))
con = DriverManager.getConnection(\"jdbc:odbc:Driver={Microsoft Acess Driver (*.mdb,*.accdb)}; DBQ=\"+ f.getPath() + \"//db//JavaAccess.accd\",\"\",\"\");
st = con. createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
}catch(ClassNotFoundException e){e.printStackTrace();
}catch(SQLException e){e.printStackTrace();}
}
//con and st are already defined
解决方法
根据msdn,它应为should1ѭ。因此,替换以下代码行:
Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");
, 拼写错误?也许这行:
con = DriverManager.getConnection(\"jdbc:odbc:Driver={Microsoft Acess Driver (*.mdb,*.accdb)}; DBQ=\"+ f.getPath() + \"//db//JavaAccess.accd\",\"\",\"\");
应该
con = DriverManager.getConnection(\"jdbc:odbc:Driver={Microsoft Access Driver (*.mdb,\"\");
访问有2个C
, 建立连接
public static Connection getConnection() {
String driver = \"sun.jdbc.odbc.JdbcOdbcDriver\";
String url = \"jdbc:odbc:anime\"; //anime is the database
String username = \"ipieluser\"; //leave blank if none
String password = \"ipielpassword\"; //leave blank if none
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
return DriverManager.getConnection(url,username,password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
通话方式:
public static void main(String args[]) {
try {
Connection conn = getConnection();
Statement st = conn.createStatement();
st = conn.createStatement();
ResultSet rs = st.executeQuery(\"SELECT * FROM localTable\");
//get and displays the number of columns
ResultSetMetaData rsMetaData = rs.getMetaData();
int numberOfColumns = rsMetaData.getColumnCount();
System.out.println(\"resultSet MetaData column Count=\" + numberOfColumns);
st.close();
conn.close();
} catch(Exception e) {
System.out.println(e.getMessage());
}
}
, 使用UCanAccess JDBC驱动程序:
Class.forName(\"net.ucanaccess.jdbc.UcanaccessDriver\"); // can be omitted in most cases
Connection conn=DriverManager.getConnection(\"jdbc:ucanaccess://<mdb or accdb file path>\",user,password);
例如。:
Connection conn=DriverManager.getConnection(\"jdbc:ucanaccess://c:/pippo.mdb\");
因此,以您的示例为例
con = DriverManager.getConnection(\"jdbc:ucanaccess://\"+f.getPath()+\"/db/JavaAccess.accd\")
, Rishab的回复帮助我连接到访问数据库。
我在代码中做了以下更正:
代替
String url = \"jdbc:odbc:anime\"; //anime is the database
我做了
String url = \"jdbc:odbc:Driver={Microsoft Access Driver (*.mdb,*.accdb)}; DBQ=\" + \"d://institute//institutedata.accdb\";
我用路径和扩展名明确定义了驱动程序和完整的数据库名称。
, 直到今天,我们都面临同样的问题,并发现如果您
Java版本如果Java版本高于7,则将不支持sun.jdbc.odbc.JdbcOdbcDriver,因此只需检查Java版本即可。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。