‘壹’ java怎么连接access数据库
1 先建立一个access文件a1.mdb,并放在D:/下;
2 在数据库文件a1.mdb中建立一个表Table1;
3 为Table1添加一列,并插入至少一条记录;
4 一个完整的类,直接拿去运行就可以。
import java.sql.*;
public class ConnectAccess {
public static void main(String args[]) throws Exception {
ConnectAccess ca=new ConnectAccess();
ca.ConnectAccessFile();
ca.ConnectAccessDataSource();
}
public void ConnectAccessFile() throws Exception
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
/**
* 直接连接access文件。
*/
String dbur1 = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=d://a1.mdb";
Connection conn = DriverManager.getConnection(dbur1, "username", "password");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from Table1");
while (rs.next()) {
System.out.println(rs.getString(1));
}
rs.close();
stmt.close();
conn.close();
}
public void ConnectAccessDataSource()throws Exception {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String dbur1 = "jdbc:odbc:dataS1";// 此为ODBC连接方式
Connection conn = DriverManager.getConnection(dbur1, "username", "password");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from Table1");
while (rs.next()) {
System.out.println(rs.getString(1));
}
rs.close();
stmt.close();
conn.close();
}
}
‘贰’ java操作其它机器共享的access数据库,做插入操作的时候 报错:“操作必须使用一个可更新的查询”
有几个主要的错误原因:
这个错误发生在当你的程序试图执行更新数据库或其它类似操作时。这是因为
ADO由于以下的几个原因而不能够写数据库造成的。
1。最普遍的原因是匿名用户帐号(IUSR_MACHINE)对该数据库文件没有写权限。
要解决这个问题,在管理器中调整数据库文件的属性,让匿名用户有正确的权限。
当使用ACCESS数据库时,不仅要给文件写的权限,还要给该目录写 的权限,因为
Jet需要在该目录建立一个.ldb文件。
2。第二个原因是数据库没有使用正确的模式打开。应该使用下面的方法打开。
SQL = "UPDATE Procts Set UnitPrice = 2;"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Mode = 3 '3 = adModeReadWrite
Conn.Open "myDSN"
Conn.Execute(SQL)
Conn.Close
注意默认的Mode是设置0(adModeUnknown),它是允许更新的。
3。还有可能是在ODBC管理器中将该DSN的只读选项选中。
4。你是在同时更新两个表中的字段,也会出现这个错误信息,解决办法是分开来更新
这两个表中各自字段。
5。当你使用了一个从低版本中(如ACCESS2.0,ACCESS7.0)载入到高版本(ACCESS 2000)
中的查询时,在执行这个查询是会出现该错误。
解决办法
1、win2k win2003 系统
问题应该是服务器数据库目录的写入权限没有设置好。
数据库目录 属性 安全 EVERYONE ……给他写入权限就OK了。
2、winXP系统
XP操作系统安装好,文件夹选项里面默认使用简单共享(推荐),把这个选项去掉,
再在文件夹上右键点击,就会出现安全这个选项卡,
原来默认的没有,然后在安全选项卡里面可以设置用户的写入权限了
右击数据库>安全>everyone>将需要的勾上
意思就是系统不让更新数据库了,就是对数据库没有写入的权限了。
在2000或XP下的NTFS格式的文件,都有权限设置的,用鼠标右键点文件或文件夹选属性,架设你的网站是在webroot的文件夹里,再点安全,你可以看看允许项有没有打钩。
上面的Everyone就是所有人的意思,你可以上这个用户组可以完全控制
那样就不会再有那个错误了。
‘叁’ Java 连接access 数据库成功 能够读取数据 为什么插入数据总报错 但是打开
经多方查询,找到解决方案:在连接字符串后面加参数lockType=ACCESS。
相关代码:
Class.forName("com.hxtt.sql.access.AccessDriver");
String strurl="jdbc:Access:///d:/mydata.accdb?lockType=ACCESS";
Connection conn=DriverManager.getConnection(strurl);
参看链接:网页链接