我很難讓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