一张Access的表,表名为test,字段a:string 字段b b:int
用executeUpdate执行一条insert语句往表中插记录,数据库连接成功了,也提示执行sql成功,可是打开表来看,仍然没有数据。
不知道为什么。刚开始学,大家帮忙import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.Statement;
public class Test{
public static void main(String[] args) {
Dbtest dbtest = new Dbtest();
}
}class Dbtest {
Statement stmt;
Connection conn; Dbtest() {
conn = getConnection();
String sqlstr;
sqlstr = "insert into test(a,b) values ('1',1)";
try {
stmt.executeUpdate(sqlstr);
conn.commit();
System.out.print("sql语句执行成功"); //执行能后现实该语句,应该实执行成功了。
} catch (SQLException ex) {
System.out.print("sql语句执行出错");
}
} //获取数据库连结
Connection getConnection() {
String dbURL = "jdbc:odbc:go";
String user = "";
String psw = "";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection(dbURL, user, psw);
stmt = conn.createStatement();
} catch (ClassNotFoundException ex) {
System.out.println("数据库连结失败");
} catch (SQLException ex1) {
System.out.println("数据库连结失败");
}
return conn;
}
}
用executeUpdate执行一条insert语句往表中插记录,数据库连接成功了,也提示执行sql成功,可是打开表来看,仍然没有数据。
不知道为什么。刚开始学,大家帮忙import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.Statement;
public class Test{
public static void main(String[] args) {
Dbtest dbtest = new Dbtest();
}
}class Dbtest {
Statement stmt;
Connection conn; Dbtest() {
conn = getConnection();
String sqlstr;
sqlstr = "insert into test(a,b) values ('1',1)";
try {
stmt.executeUpdate(sqlstr);
conn.commit();
System.out.print("sql语句执行成功"); //执行能后现实该语句,应该实执行成功了。
} catch (SQLException ex) {
System.out.print("sql语句执行出错");
}
} //获取数据库连结
Connection getConnection() {
String dbURL = "jdbc:odbc:go";
String user = "";
String psw = "";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection(dbURL, user, psw);
stmt = conn.createStatement();
} catch (ClassNotFoundException ex) {
System.out.println("数据库连结失败");
} catch (SQLException ex1) {
System.out.println("数据库连结失败");
}
return conn;
}
}
在stmt.executeUpdate(sqlstr); 前加上:stmt = conn.createStatement();试试。
autocommit为true时commit似乎不起作用
查了一下文挡,autocommit为true时,commit动作发生在下一个update执行,或者statement结束的时候。