我很难让Java写入数据库。为什么我的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文件存在并且是可写的。它没有被其他任何东西使用。
数据库有2场:ID
(其中增量,是指数)和submitter
这是一个文本字段的255
的长度,当它运行或当它编译我没有得到任何错误。但是没有数据出现在数据库中。我是Java的全新,但不是SQL。我错过了什么?
也许问题是在你的驱动程序参数'READONLY = TRUE'? – Howard 2011-06-14 19:48:10
我觉得有一个问题,你调用s.execute()而不是s.executeUpdate()。 [api文档](http://download.oracle.com/javase/6/docs/api/java/sql/Statement.html#executeUpdate(java.lang.String))默认情况下,事务模式是自动提交,所以你不应该关闭连接才能显示数据。你仍然应该关闭自己的连接来清理自己。 – Jim 2011-06-14 20:24:11