我想編譯一個名爲FinalQuery的查詢,但其中的一部分必須放在引號內。必須進入引號內的部分是一個字符串變量。在字符串中包含變量的引號
要進入更詳細 -
- 這FinalQuery查詢給JFreeChart的製作餅圖。
- 但是,根據用戶的某些選擇,FinalQuery是在程序中編譯的。
- 用戶的選擇是在JComboBox中進行的。
下面是代碼 -
public class Execute extends JFrame {
private JComboBox comboAccountName = new JComboBox();
public Execute() {
....................
getContentPane().add(comboAccountName);
comboAccountName.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
CompileQuery();
}
});
final String query = CompileQuery(); //variable query is executed in JFreeChart
JButton btnDraw = new JButton("Draw");
btnDraw.setFont(new Font("Segoe UI Symbol", Font.BOLD, 15));
btnDraw.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
JDBCPieDataset hdataset = new JDBCPieDataset(DatabaseConnection.ConnectDB(), query);
JFreeChart chart = ChartFactory.createPieChart("Query",
hdataset, true, true, false);
...............}
String CompileQuery()
{
String getAccountName = (String)comboAccountName.getSelectedItem();
String FinalQuery = "SELECT status, COUNT(status) FROM main WHERE [Account Name] = "+getAccountName+" GROUP BY status";
System.out.println(FinalQuery);
return FinalQuery;
};
public static void main(String[] args) {
Execute frame1 = new Execute();
frame1.setVisible(true);
}
}
但在SQL查詢的WHERE [XYZ] =?必須用引號提供。例如。 WHERE [帳戶名稱] =「John」。
目前我的查詢是一種格式 -
SELECT XYZ FROM PQR其中ABC =變量名
即
SELECT status, count(status)
FROM main
WHERE [Account Name] = getaccountName (variable)
GROUP BY status;
我希望把變量名引號,這樣它看起來像
SELECT xyz FROM pqr WHERE abc =「變量名稱」
SELECT status, count(status)
FROM main
WHERE [Account Name] = "getaccountName" (variable)
GROUP BY status;
請建議我如何讓我的FinalQuery字符串變量在裏面包含另一個變量的引號。
我想'... WHERE [帳戶名稱] = \「」 + getAccountName +「\」 ...「;''應該可以工作 – user2989408
如果你不能使用PreparedStatement,那麼只要轉義引號就可以工作,而且方法和變量名應該以Java中的小寫字母開頭 –