0
加入2個表格有一個奇怪的問題。在Java中,查詢不起作用,它只會重複打印一行,但在MySQL查詢中它工作正常。我需要這些數據來寫入一個json文件。我該如何解決這個問題?請幫忙。注:表中查找看到鏈接:Need to join 2 tables but except some rows in another table in MySQL在Java中,查詢不起作用,但在MySQL中它工作正常,我該如何解決這個問題?
這裏是我的代碼:
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONObject;
import org.json.simple.JSONArray;
public class ShowData {
public void Display(){
try{
DBConnect2 dc = new DBConnect2();
PreparedStatement ps = null;
ResultSet rs = null;
Statement st= null;
BufferedWriter wr1 = new BufferedWriter(new FileWriter(new File("E:/workspace/Test/input/display.json")));
String query5 = "SELECT DISTINCT k.source, k.target, k.frequency FROM links k "
+ "LEFT JOIN logs g ON g.id = k.id "
+ "WHERE IFNULL(status, '') != 'Delete Edge' "
+ "AND 'Bush' IN(k.source, k.target)";
ps = dc.getCon().prepareStatement(query5);
rs = ps.executeQuery();
JSONObject obj = new JSONObject();
JSONObject obj1 = new JSONObject();
JSONArray list = new JSONArray();
while(rs.next()){
obj1.put("source", rs.getString("source"));
obj1.put("target", rs.getString("target"));
obj1.put("frequency", rs.getInt("frequency"));
list.add(obj1);
}
obj.put("links", list);
wr1.write(obj.toString() + "\n");
wr1.flush();
System.out.println("Done");
}
catch (Exception e) {
e.printStackTrace();
}
}
public static void main(final String[] args){
ShowData sw = new ShowData();
sw.Display();
}
}
'JSONObject obj1 = new JSONObject();'應該在'while'循環中進入。 – blackSmith 2014-10-11 09:21:33
看到這篇文章http://stackoverflow.com/questions/24826029/what-simple-db-solution-do-i-use-to-extract-my-parsed-variables-from-eclipse-to/24826365#24826365 – Jimmysnn 2014-10-11 09:21:43