/** * 根据表名,列名,取下一个数。 * <br> * simple<br> * getNextIndexBySchemaName("mysql","userTable","user_id"); * <br> * @param dbName * @param schemaName * @param fieldName * @return */ public static Integer getNextIndexBySchemaName(String dbName, String schemaName, String fieldName) { PreparedStatement stmt = null; PreparedStatement stmt2 = null; ResultSet rs = null; String nextIndex = null; Integer localInteger = null; Connection localConnection = null; try { localConnection = DBConnectionUtil.getInstance().getConnection( dbName); String str2 = "select next_index from field_index where schema_name = ? and field_name=?"; stmt = localConnection.prepareStatement(str2); stmt.setString(1, schemaName); stmt.setString(2, fieldName); rs = stmt.executeQuery(); if (rs.next()) { nextIndex = rs.getString("next_index"); String str3 = "update field_index set next_index = next_index+1 where schema_name =? and field_name=? "; stmt2 = localConnection .prepareStatement(str3); stmt2.setString(1, schemaName); stmt2.setString(2, fieldName); stmt2.executeUpdate(); } else { int i = CommonContents.DBUTIL_INIT_INDEX; nextIndex = String.valueOf(i); ++i; String str4 = "insert into field_index(schema_name,field_name,next_index) values(?,?,?) "; stmt2 = localConnection .prepareStatement(str4); stmt2.setString(1, schemaName); stmt2.setString(2, fieldName); stmt2.setString(3, String.valueOf(i)); stmt2.executeUpdate(); } if ((nextIndex != null) && (nextIndex.length() > 0)) localInteger = Integer.valueOf(nextIndex); else localInteger = new Integer(1); } catch (Exception localException) { log.error("next index error!"); } finally { stmtRsClose(stmt2, null); stmtRsClose(stmt, rs); DBConnectionUtil.getInstance().freeConnection(dbName, localConnection); } return localInteger; } public static void main(String[] args) { System.out.println(DBUtil.getNextIndexBySchemaName("mysql", "user", "user_id")); }