次の呼び出しについて質問があります。ResultSetが正しく配置されていません
私は、ArrayList内でキーワードが何回発生したかをカウントするコードを書いています。しかし、偶数のループ。それは動作しません!
私はここに多くの解決されたものがあることを知っています。コードからエラーを解決できませんでした。ここ は私のコードです:
public static ResultSet getBins(Connection conn, String tableName){
ResultSet distinctBin = null;
try {
Statement distinctBinsSt = conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
distinctBin = distinctBinsSt.executeQuery("select bin, placedescr from " + tableName + " ORDER BY bin ASC limit 151");
}catch(SQLException e){e.printStackTrace();}
return distinctBin;
}
public static Map <String,Integer> placeDescCounter(ArrayList<String> binDescription){
Map<String, Integer> wordCount = new HashMap<String, Integer>();
FlickrReader tagfileReader = new FlickrReader();
for (String placeTag: binDescription)
{
Integer count = wordCount.get(placeTag);
wordCount.put(placeTag, (count==null) ? 1 : count+1);
}
return wordCount;
}
public static ResultSet getBinInfo(Connection conn, String tableName){
ResultSet binInfo = null;
try {
Statement binInfoSt = conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
binInfo = binInfoSt.executeQuery("select bin, count(bin) from " + tableName + " group by bin order by bin ASC;");
binInfo.last();
binInfo.beforeFirst();
}catch(SQLException e){e.printStackTrace();}
return binInfo;
}
public static void main(String[] args) throws SQLException, ClassNotFoundException{
Connection conn = connectPG();
String tableName= "tagcounterdebug";
ResultSet bins = getBins(conn, tableName);
ResultSet binsInfo = getBinInfo(conn,tableName);
String placeDescriptions;
List<String> placeDescription;
ArrayList<String> binDescriptions = new ArrayList<String>();
int bin =0;
bins.last();bins.beforeFirst();
while(binsInfo.next()){
int defaultBin = binsInfo.getInt("bin");
int binSize = binsInfo.getInt("count");
printDebug("loop conter " + (binSize - 1));
bins.next();
for (int i=0; i < binSize; i++){
bin = bins.getInt("bin");
placeDescriptions = bins.getString("placedescr").toLowerCase();
placeDescriptions = placeDescriptions.substring(placeDescriptions.indexOf("[")+1 , placeDescriptions.indexOf("]"));
placeDescription = Arrays.asList(placeDescriptions.split("\\s*;\\s*"));
HashSet<String> hashSetDescriptions = new HashSet<String>();//create a HashSet for tokens to calculate less
hashSetDescriptions.addAll(placeDescription);
binDescriptions.addAll(hashSetDescriptions);
bins.next();
}
printDebug("****\n defBin: " +defaultBin + " bin: " +bin + "\n****");
Map<String, Integer> tagCount = new HashMap<String, Integer>();
tagCount = placeDescCounter(binDescriptions);
for (String name: tagCount.keySet()){
String key =name.toString();
String value = tagCount.get(name).toString();
System.out.println(key + " " + value);
}
}
}
}
何が問題なのですか?エラーメッセージはありますか? – brso05
ええ、私はおそらくNext()を呼び出す必要があると書かれています。しかし、私はやりました;変更して別の場所に置こうとしました。しかし、それは動作しません! – Raha1986
これにはpostgresqlというタグを付けるべきではありません。 –