mCon.close(); } catch (Exception e) { e.printStackTrace(); } } }运行后报错如下: Java.sql.SQLException : [Microsoft] [ODBC Microsoft Access Driver]字段定义语法错误。 at sun.jdbc.odbc.JdbcOdbc.createSQLExcption<JdbcOdbc.java:6031> at sun.jdbc.odbc.JdbcOdbc.standardError<JdbcOdbc.java:6188> at sun.jdbc.odbc.JdbcOdbc.SQLExeDirect<JdbcOdbc.java:2494> at sun.jdbc.odbc.JdbcOdbcStatement.execute<JdbcOdbcStatement.java:314> at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate<JdbcOdbcStatement.java:264> at mFileNew.main<mFileNew.java:29>字段该怎样定义?为什么?
Connection con=DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=F:\\jsp\\db1.MDB");
try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}
catch(ClassNotFoundException e){}
然后再:
Connection con=DriverManager.getConnection("jdbc:odbc:driver","name","passwd");
sql=con.createStatement();
ResultSet rs=sql.executeQuery("select * from table");
中间加上调试语句就不难找出问题所在了。
数据源名是楼上的jdbc:odbc:driver
中的driver
要和你代码中此处的一样
要选择数据库路径
{
public static void main (String args[])
{
try {
Statement mStmnt;
PreparedStatement mPstmnt;
ResultSet mResultSet;
// add sun jdbc-odbc bridge
Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
// 这里使用peacock_king(孔雀王) 提供的方法
Connection mCon = DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=E:\\Access\\db.MDB");
mStmnt = mCon.createStatement();
mStmnt.executeUpdate ("CREATE TABLE DemoTable(" + "test_id int, test_value, char(15) not null");
mStmnt.executeUpdate ("INSERT INTO DemoTable(" + "test_id, test_value) VALUES (1, 'one')");
mStmnt.executeUpdate ("INSERT INTO DemoTable(" + "test_id, test_value) VALUES (2, 'two')");
mStmnt.executeUpdate ("INSERT INTO DemoTable(" + "test_id, test_value) VALUES (3, 'three')");
mStmnt.executeUpdate ("INSERT INTO DemoTable(" + "test_id, test_value) VALUES (4, 'four')");
mStmnt.executeUpdate ("INSERT INTO DemoTable(" + "test_id, test_value) VALUES (5, 'five')");
// get another statement object
mStmnt = mCon.createStatement();
mResultSet = mStmnt.executeQuery ("SELECT * FROM DemoTable ORDER BY test_id");
System.out.println ("Display all the datas");
while (mResultSet.next()) {
int _int = mResultSet.getInt ("test_id");
String _str = mResultSet.getString ("test_value");
System.out.println ("test_id == " + _int + "test_value == " + _str);
}
mPstmnt = mCon.prepareStatement ("UPDATE DemoTable SET test_value = ? WHERE test_id = ?");
mPstmnt.setString (1, "hello");
mPstmnt.setInt (2, 2);
mPstmnt.executeUpdate();
mStmnt = mCon.createStatement();
mResultSet = mStmnt.executeQuery ("SELECT * FROM DemoTalbe ORDER BY test_id");
if (mResultSet.next() && mResultSet.next()) {
int _int = mResultSet.getInt ("test_id");
String _str = mResultSet.getString ("test_value");
System.out.println ("\t test_id == "+_int + " test_value == "+_str);
}
mCon.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}运行后报错如下:
Java.sql.SQLException : [Microsoft] [ODBC Microsoft Access Driver]字段定义语法错误。
at sun.jdbc.odbc.JdbcOdbc.createSQLExcption<JdbcOdbc.java:6031>
at sun.jdbc.odbc.JdbcOdbc.standardError<JdbcOdbc.java:6188>
at sun.jdbc.odbc.JdbcOdbc.SQLExeDirect<JdbcOdbc.java:2494>
at sun.jdbc.odbc.JdbcOdbcStatement.execute<JdbcOdbcStatement.java:314>
at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate<JdbcOdbcStatement.java:264>
at mFileNew.main<mFileNew.java:29>字段该怎样定义?为什么?