2014-02-26 2 views
0

FinalQuery라는 쿼리를 컴파일하고 싶지만 일부는 따옴표 안에 있어야합니다. 따옴표 안에 들어가야하는 부분은 문자열 변수입니다.문자열의 변수 주위에 따옴표를 포함하십시오.

  1. 이 FinalQuery 쿼리는 원형 차트를 만들려면 JFreeChart가 주어집니다 -

    더 자세히로 이동합니다.
  2. 그러나 FinalQuery는 특정 사용자 선택에 따라 프로그램 내에서 컴파일됩니다.
  3. 사용자가 선택한 것은 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); 
    } 
    

    }

    그러나 WHERE [XYZ =는 SQL 쿼리

    - 여기

코드인가? 따옴표로 제공되어야합니다. 예 : 어디 [계정 이름] = "존". ABC = 변수 이름

SELECT status, count(status) 
FROM main 
WHERE [Account Name] = getaccountName (variable) 
GROUP BY status; 

내가 그것을 같이 보이도록 큰 따옴표로 변수 이름을 넣을 PQR FROM

SELECT XYZ -

현재 내 쿼리는 형식입니다

내 FinalQuery 문자열 변수에 다른 변수 주위에 따옴표를 두는 방법을 제안하십시오.

+1

나는 ... [계정 이름] = \ ""+ getAccountName + "\"이 (가) ... ";가 작동해야합니다 – user2989408

+0

PreparedStatement를 사용할 수 없다면 따옴표를 이스케이프 처리하면됩니다. 또한 메서드 및 변수 이름은 Java에서 소문자로 시작해야합니다. –

답변

2

그러나 그 일부는 내부 인용 부호 여야합니다. 그리고 따옴표 안에 들어가야하는 부분은 문자열 변수입니다.

PreparedStatment를 사용하십시오. 적절한 구문을 사용하여 SQL을 구현하고 사용할 상수 또는 변수를 쉽게 지정할 수 있습니다.

String sql = "INSERT INTO Page (Name, Title) VALUES (?, ?)"; 

PreparedStatement stmt = connection.prepareStatement(sql); 

stmt.setString(1, nameVariable); 
stmt.setString(2, "Title1"); 
stmt.executeUpdate(); 
+0

PreparedStatement를 사용할 수 없습니다. JFreeChart가 이와 같이 설정되었습니다 (업데이트 된 질문). – satnam

관련 문제