你好我正在爲我的java類做一個項目,簡單地說,我必須做一個程序,讓你手工查詢,就像我把一個文本框的例子「select * from table」,它顯示結果,第二個問題是如果刪除,更新或插入程序應該自動執行選擇句子來顯示結果。在jtable中顯示quer
public class InfoCd extends JFrame {
private JPanel contentPane;
private JTable table;
private JTextField textQuery;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
InfoCd frame = new InfoCd();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
Connection conn=null;
/**
* Create the frame.
*/
public InfoCd() {
conn=sqliteConnection.dbConnector();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 753, 477);
contentPane = new JPanel();
contentPane.setBackground(SystemColor.activeCaption);
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JButton btnHacerConsulta = new JButton("Hacer Consulta");
btnHacerConsulta.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
String query="'?'";
PreparedStatement pst=conn.prepareStatement(query);
pst.setString(1, textQuery.getText());
ResultSet rs=pst.executeQuery();
table.setModel(DbUtils.resultSetToTableModel(rs));
} catch (Exception e2) {
e2.printStackTrace();
}
}
});
btnHacerConsulta.setBounds(112, 388, 169, 39);
contentPane.add(btnHacerConsulta);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(0, 0, 737, 367);
contentPane.add(scrollPane);
table = new JTable();
scrollPane.setViewportView(table);
textQuery = new JTextField();
textQuery.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 11));
textQuery.setHorizontalAlignment(SwingConstants.CENTER);
textQuery.setText("Escribir Consulta Aqui");
textQuery.setToolTipText("");
textQuery.setBounds(422, 388, 270, 39);
contentPane.add(textQuery);
textQuery.setColumns(10);
}
}
問題是什麼? – ravthiru
當我把querry放在文本框上,然後點擊接受程序崩潰,我相信這不起作用 'String query =「'?'」; PreparedStatement pst = conn.prepareStatement(query); pst.setString(1,textQuery.getText()); ResultSet rs = pst.executeQuery(); table.setModel(DbUtils.resultSetToTableModel(rs)); }' – Nycoh
'並點擊接受程序崩潰 - - 這告訴我們什麼都沒有。我想你會得到某種信息。你會如何期待一個由「?」組成的SQL語句會做任何事情?這不是如何使用SQL語句。事實上,如果你期望用戶輸入整個語句,那麼你甚至不應該使用PreparedStatement。用戶可以正確地格式化語句,順便說一下,這不是一個很好的設計。基本上變量「查詢」需要從文本字段中分配文本。 – camickr