我无法让Java写入数据库。
我有以下代码编译并运行,没有错误。
import java.sql.*;
import java.lang.reflect.*;
import java.lang.reflect.Array;
public class InquireRecord {
private String submitter;
public static void main(String[] args) {
InquireRecord Stub = new InquireRecord();
Stub.sendToDb("insert into inquiries (submitter) values ('Rodger Dunn')");
}
public InquireRecord() {
super();
}
public void sendToDb(String queryString){
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String filename = "C:/Development/inquire.mdb";
String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
database+= filename.trim() + ";DriverID=22;READONLY=true}";
Connection con = DriverManager.getConnection( database ,"","");
Statement s = con.createStatement();
s.execute (queryString);
}
catch (Throwable e) {
System.out.println(e);
}
}
}
文件C:/Development/inquire.mdb存在且可写。它没有被其他任何东西使用。
数据库有两个字段:ID
(增量并且是索引)和submitter
这是一个长度为255的文本字段。
运行时或编译时我没有收到任何错误。但是数据库中没有数据出现。我是Java的新手,但不是SQL。我错过了什么?
答案 0 :(得分:1)
我猜你应该在退出程序之前关闭(con.close())连接。
答案 1 :(得分:0)
修改你的捕获:
try {
Class.forName(....);
} catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
System.exit(1);
}
try {
...your SQL commands...
} catch (SQLException sqe) {
System.out.println(sqe.getMessage();
}
以了解会发生什么。
正如霍华德在上面评论的那样,READONLY可能是个问题......