经多方查询,找到解决方案:在连接字符串后面加参数lockType=ACCESS。
相关代码:
ClassforName("comhxttsqlaccessAccessDriver");
String strurl="jdbc:Access:///d:/mydataaccdblockType=ACCESS";
Connection conn=DriverManagergetConnection(strurl);
参看链接:网页链接
你的程序没有大问题,只是在创建表时写错了:
String createString = "create table student"+"(ID INTEGER,NAME char(8),grade NUMBER,class char(10))";
“NUMBER”,你写成了“NUMGER”
把这一句改了就可以了。我测试过了。
完整的Java程序:
import javasqlDriverManager;
import javasqlConnection;
import javasqlStatement;
import javasqlSQLException;
public class CreateTable {
//网桥JDBC/ODBC驱动程序
private static String DBDRIVER="sunjdbcodbcJdbcOdbcDriver";
//数据库URL
private static String DBURL = "jdbc:odbc:driver={Microsoft Access Driver (mdb)};DBQ=e:\\SMSmdb";
public static void main(String[] args) {
Connection con = null;
Statement stmt = null;
String createString = "create table student"+"(ID INTEGER,NAME char(8),grade NUMBER,class char(10))";
try {
ClassforName(DBDRIVER);//加载驱动程序
//建立与数据库的连接
con=DriverManagergetConnection(DBURL);
}
catch (ClassNotFoundException e) {
Systemoutprintln("ClassNotFoundException:" + egetMessage());
Systemexit(1);//终止应用程序
}
catch (SQLException ex) {
Systemoutprintln("SQLException:" + exgetMessage());
Systemexit(1);//终止应用程序
}
try {
stmt=concreateStatement();//创建SQL语句对象
stmtexecuteUpdate(createString);//执行SQL语句
Systemoutprintln("在SMS数据库创建表student成功");
}
catch (SQLException ex){
Systemoutprintln("SQLExcepion:" + exgetMessage());
}
finally {
if (stmt != null) {
try {
stmtclose();//关闭语句
}
catch (SQLException e) {}
}
if (con != null) {
try {
conclose();//关闭与数据库的连接
}
catch (SQLException e) {}
}
}//try/catch/finally块结束
}//main方法结束
}
运行测试:
在SMS数据库创建表student成功
封装一个数据库连接类 类中有使用 驱动名称 数据库地址 数据库用户名 数据库密码 作为参数 返回连接的方法 在连接不同的数据库时传入不同的参数 获得指定的连接 简单写了个
public static Connection getConnection(String db_driver,String db_url,String db_userName,String db_passWord) {Connection connection = null;
//1加载oracle驱动
try {
ClassforName(db_driver);
} catch (ClassNotFoundException e) {
eprintStackTrace();
return null;
}
//2获得数据库连接
try {
connection = DriverManagergetConnection(db_url, db_userName, db_passWord);
} catch (SQLException e) {
eprintStackTrace();;
return null;
}
return connection;
}
1 jdbc:odbc:driver={Microsoft Access Driver (mdb)};
2使用ODBC建立WINDOW数据源的方法:
开始
>>控制面板
>>管理工具
>>数据源(ODBC)
>>用户DSN或系统DSN
>>点添加
>>找到"Microsoft Access Driver (mdb)",选中,再点完成>>自定义数据源名称,可创建一个新的或选择已经有的Access数据库(mdb)其它可以不选
>>确定>>确定
到此数据源已经建立成功
最后使用jdbc的方法进行连接。
以上就是关于Java 连接access 数据库成功 能够读取数据 为什么插入数据总报错 但是打开全部的内容,包括:Java 连接access 数据库成功 能够读取数据 为什么插入数据总报错 但是打开、java 连接 access SQLExcepion:[Microsoft][ODBC Microsoft Access 驱动程序] 字段定义语法错误、一个java项目如何分别连接两个数据库(mysql 和 access)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)