以下是一般搜索的代码:
int row = jTable_accounts.getSelectedRow();
String Table = (jTable_accounts.getModel().getValueAt(row, 0).toString());
String sql ="select c.customer_id as 'Customer No.', customer_name as 'Name',a.account_id as 'Account No.',DIA,a.balance as 'Current Balance',a.outstanding_amt as'Outstanding Amt.' from customer c inner join customer_details cd on cd.customer_id=c.customer_id inner join account a on a.customer_id=c.customer_id where a.account_id= '"+Table+"' ";
因此,结果将显示在jtable中,但是,我想添加4或5个文本框,这些文本框应根据客户名称,未付金额等过滤结果。这些文本框应该是可选条目,如果是用户不会向应用程序显示常规输出(上述代码)的任何文本框输入任何值。
我假设应该在select语句中添加一些where子句但我不确定它应该是可选的。
以下是三个表格以获取更多信息:
客户:
customer_id DIA customer_name birth_date
-------------- ------ ------------------------ -------------
1 32 Ahmad mohammad bin afif (null)
2 10 mohammad ahmad bin afif (null)
customer_details:
customer_id phone_no1 phone_no2 address_line1 address_line2
-------------- ------------ ------------ ---------------- ----------------
1 0111231415 019123443 bukit (null)
2 01345532 (null) kl serdang
帐户:
account_id balance outstanding_amt customer_id
------------- ---------- ------------------ --------------
1 12530.23 1821.3 1
2 2040.13 125.3 1
3 213455 1234.3 2
答案 0 :(得分:0)
您应该检查文本框修剪后的值是否为空,然后,如果没有,您可以在查询中构建额外的过滤器。
e.g。
if (textField1.getValue().trim().length > 0) {
query += " and COLUMN1 = " + textField1.getValue().trim() + " ";
}
if (textField2.getValue().trim().length > 0) {
query += " and COLUMN2 = " + textField2.getValue().trim() + " ";
}
。 。
因为您有一个基本查询,其中您声明了“where”语句,您只需要检查文本字段是否为空以添加“和”语句。