Я выполняю запрос и помещаю результат в JSONObject, чтобы вернуть его на страницу EXTJS. Код работает, но я не уверен, что это лучший или самый эффективный способ сделать это. Я отправлю свой код, пожалуйста, посмотрите, нужно ли мне улучшить его и где. Я свежий программист, поэтому оправдываю очевидные ошибки. Заранее спасибо.Это хороший способ выполнить запрос в java?
public JSONObject execQuery(String invoice, String id){
StringBuffer sb = new StringBuffer();
JSONObject json = new JSONObject();
JSONObject data = new JSONObject();
JSONArray jsArray = new JSONArray();
try{
// get conn
conn = DBConnect.getInstance().dbOracleConnect();
// create query
sb = new StringBuffer("SELECT * FROM table ");
sb.append("WHERE rtrim(invoice) = ? AND ");
sb.append("id = ? ");
ps = conn.prepareStatement(sb.toString());
ps.setString(1, invoice);
ps.setString(2, id);
rs = ps.executeQuery();
while(rs.next()){
json = new JSONObject();
json.put("invoice", rs.getString("invoice"));
json.put("id", rs.getString("id"));
json.put("name", rs.getString("name"));
json.put("gender", rs.getString("gender"));
jsArray.put(json);
// out put will be like [{"invoice":"111", "id":"123", "name":"sam", "gender":"male"}, {...}]
}
data.put("data", jsArray);
// out put will be like {"data":[{"invoice":"111", "id":"123", "name":"sam", "gender":"male"}, {...}]}
}
catch(Exception e){
System.out.println("Error: " + e.toString());
}
finally {
JDBCHelper.close(rs);
JDBCHelper.close(ps);
JDBCHelper.close(conn);
}
return data;
}
Является ли ваше соединение полем? Вы создаете его и закрываете каждый запрос. – Blindy
Если 'DBConnect # dbOracleConnect()' каждый раз создает новое соединение (вместо повторного использования одного из пула), вы накладываете огромное количество накладных расходов на каждый запрос. –
Не относится к самому вопросу, но я бы предпочел объявлять переменные, когда они нужны, а не все наверху. например 'JSONObject json = new JSONObject();' можно удалить. Вы даже создаете экземпляр, чтобы игнорировать его. Этот стиль значительно снижает читаемость по мере роста вашего метода. –