Java UCanAccess读取表的最后一列作为第一列
我的程序总是将Access数据库中的第一列读取为第二列,第二列读取为第三列,依此类推,但最后一列读取为第一列Java UCanAccess读取表的最后一列作为第一列,java,jdbc,ucanaccess,Java,Jdbc,Ucanaccess,我的程序总是将Access数据库中的第一列读取为第二列,第二列读取为第三列,依此类推,但最后一列读取为第一列 public void actionPerformed(ActionEvent e) { try{ String query = "insert into Staff values ('2', 'w', 'w', 'w', 'e', 'w', 'd','d','end')"; stmt.executeUpdate(query); status.setText(
public void actionPerformed(ActionEvent e) {
try{
String query = "insert into Staff values ('2', 'w', 'w', 'w', 'e', 'w', 'd','d','end')";
stmt.executeUpdate(query);
status.setText("1 row of record have been inserted");
}catch(Exception ex){
ex.printStackTrace();
}
}
但是当我指定列名时,它的读取方式是正常的
public void actionPerformed(ActionEvent e) {
try{
String query = "insert into Staff (id, lastName, firstName, mi, address, city, state, telephone, email) "
+ "values ('2', 'w', 'w', 'w', 'e', 'w', 'd','d','end')";
stmt.executeUpdate(query);
status.setText("1 row of record have been inserted");
}catch(Exception ex){
ex.printStackTrace();
}
}
默认情况下,UCanAccess按“数据”顺序处理表中的列。这是在Access元数据中内部定义列的顺序,可以不同于“显示”顺序 如果希望UCanAccess按“显示”顺序处理列,请添加参数
;列顺序=显示
连接URL的结尾,例如
jdbc:ucanaccess://c:/db/cico.mdb;列顺序=显示
但是,您现在还应该意识到,如果在INSERT语句中不指定实际的列名,那么假定列的名称(和顺序)会使代码容易被破坏
正如
SELECT*FROM
不受欢迎一样,INSERT-INTO-tablename VALUES(…
)也不受欢迎。您已经在为每一列指定值,因此您确实应该也指定列的名称。是否有一种标准的编程技术来处理Java中的数据库?我正在使用这本书Y.Daniel的“java编程入门”。这本书只使用sql查询来处理数据库,但我在网上看到了很多方法,比如使用数据类、mvc、dao等。OMG,你真的解决了我的问题!非常感谢!!!