protected boolean alreadyin(String tname,String colname, String value) { int result; ResultSet rst=null; try { //执行SQL语句 String query = "select "+colname+" from "+tname+" where "+colname+"='"+value+"'"; Statement statement = connformax.createStatement(); rst = statement.executeQuery( query ); if(rst.next()) { statement.close(); rst.close(); return true; } } catch ( SQLException sqlex ) { sqlex.printStackTrace(); return false; } return false; } protected int getIdfromNumber(String tname,String colname, String value) { int result; ResultSet rst=null; try { Connection conn= DriverManager.getConnection( destPara.getUrl(), destPara.getUsername(),destPara.getPassWord()); String query = "select id,"+colname+" from "+tname+" where "+colname+"='"+value+"'"; System.out.println(query); Statement statement = conn.createStatement(); rst = statement.executeQuery( query ); if(rst.next()) { return rst.getInt("id"); } } catch ( SQLException sqlex ) { sqlex.printStackTrace(); return 0; } return 0; } /** * 得到某个表中的最大的id号 */ protected int getMax(String tname) { int result; ResultSet rst=null; try { //执行SQL语句 String query = "select Max(id) from "+tname; Statement statement = connformax.createStatement(); rst = statement.executeQuery( query ); if(rst.next()) { return rst.getInt(1)+1; } } catch ( SQLException sqlex ) { sqlex.printStackTrace(); return 0; } return 1; } /** * 执行某一段sql语句 */ public static void execute(ConnPara connpara,String stmt) throws SQLException { Connection conn=null; PreparedStatement ps = null; try { conn=DriverManager.getConnection( connpara.getUrl(), connpara.getUsername(), connpara.getPassword()); System.out.println(stmt); ps = conn.prepareStatement(stmt); ps.executeUpdate(); } catch (Exception e) { e.printStackTrace(); System.out.println(e.getMessage()); } finally { if (ps!=null) ps.close(); if (conn!=null)conn.close(); } } public static void main(String argc[]) { DbInput copydb=new DbInput(); copydb.dbInit(); copydb.copyprodUCt(); } } 问题: 1) Access数据库不能直接由jdbc读写,解决办法是先把access配置在ODBC中,然后再通过ODBC来操作access数据库。
|