首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Netbeans java应用程序-在MySql数据库上执行查询

Netbeans java应用程序-在MySql数据库上执行查询
EN

Stack Overflow用户
提问于 2015-09-20 16:56:14
回答 1查看 2.9K关注 0票数 0

在我正在进行的项目中,我需要执行搜索SQL查询,即Java中的通配符。我能够执行简单的查询,比如

代码语言:javascript
运行
复制
    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查询

代码语言:javascript
运行
复制
Mysql>select * from employes where empid like "123%";

而不是这个

代码语言:javascript
运行
复制
Mysql>select * from employes where empid =123;

在java Netbeans中。

我试过这么做

代码语言:javascript
运行
复制
    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行中,我插入了通配符(%),但这是行不通的。我怎么才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-20 17:03:56

你的通配符角色放错位置了。它应该是:

代码语言:javascript
运行
复制
        ResultSet rs = stm.executeQuery("select*from employees where empid like "+empid+"%");

在这种情况下,% char将被视为通配符。

如果要搜索% char本身,则必须按照mysql转义规则转义它:

代码语言:javascript
运行
复制
        ResultSet rs = stm.executeQuery("select*from employees where empid like \""+empid+"%%\"");

特别注意引号

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32681942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档