[英]Netbeans java application - executing query on MySql database
在我正在從事的項目中,我需要執行Searching SQL查詢,即Java Netbeans中的通配符。 我能夠執行像
String driver = "jdbc:mysql://localhost/techo";
String un = "root";
String pw = "root";
String empid = id.getText();
try{
Connection con = DriverManager.getConnection(driver,un,pw);
Statement stm = con.createStatement();
ResultSet rs = stm.executeQuery("select*from employees where empid ="+empid+"");
while(rs.next())
{
String name = rs.getString("name");
String salary = rs.getString("salary");
name1.setText(name);
salary1.setText(salary);
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,e);
}
這完全正常。 但是現在我想使用這個MySql查詢
Mysql>select * from employes where empid like "123%";
代替這個
Mysql>select * from employes where empid =123;
在Java Netbeans中。
我試圖做到這一點
String driver = "jdbc:mysql://localhost/techo";
String un = "root";
String pw = "root";
String empid = id.getText();
try{
Connection con = DriverManager.getConnection(driver,un,pw);
Statement stm = con.createStatement();
ResultSet rs = stm.executeQuery("select*from employees where empid like "+empid%+"");
while(rs.next())
{
String id = rs.getString("EmpId");
String name = rs.getString("name");
String salary = rs.getString("salary");
area.setText(id +" "+name+" "+salary+" "+ "\n");
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,e);
}
如您所見,在第8行中,我插入了通配符(%),但這不起作用。 我該如何解決?
您的通配符放錯了位置。 它應該是:
ResultSet rs = stm.executeQuery("select*from employees where empid like "+empid+"%");
在這種情況下,%char將被視為通配符。
如果要搜索%char本身,則必須按照mysql轉義規則對其進行轉義:
ResultSet rs = stm.executeQuery("select*from employees where empid like \""+empid+"%%\"");
特別注意報價
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.