Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java join SQL命令未正确结束_Java_Javascript_Sql_Command_Spring Jdbc - Fatal编程技术网

Java join SQL命令未正确结束

Java join SQL命令未正确结束,java,javascript,sql,command,spring-jdbc,Java,Javascript,Sql,Command,Spring Jdbc,我对join语句有问题 String q1="select e.employee_id,e.manager_id,e.first_name,e.last_name,e.salary,e.commission_pct,d.manager_id,d.employee_id from employees as e ,employees as d where e.manager_id=d.employee_id and e.employee_id="+jComboBox1.getSelectedIt

我对join语句有问题

 String q1="select e.employee_id,e.manager_id,e.first_name,e.last_name,e.salary,e.commission_pct,d.manager_id,d.employee_id from employees as e ,employees as d where  e.manager_id=d.employee_id and e.employee_id="+jComboBox1.getSelectedItem();
    try{
        OracleDataSource ods=new OracleDataSource();
        ods.setURL("jdbc:oracle:thin:hr/hr@localhost:1521/XE");
        Connection con=ods.getConnection();

        Statement s=con.createStatement();
        s.execute(q1);
        ResultSet rs=s.getResultSet();
        String x=(String)jComboBox1.getSelectedItem();
        while(rs.next()){
            if (x.equals(rs.getString("e.employee_id"))){
                jTextField1.setText(rs.getString("e.first_name"));
                jTextField2.setText(rs.getString("e.last_name"));
                jTextField3.setText(rs.getString("e.salary"));
                jTextField4.setText(rs.getString("e.commission_pct"));
                jTextField5.setText(rs.getString("d.first_name"));
            }
        }
        con.close();

    }catch(Exception e){e.printStackTrace();}
我怎样才能解决这个问题?!

您确实应该使用prepared语句来避免SQL注入问题。无论如何,你的问题是:

select e.employee_id,e.manager_id,e.first_name,e.last_name,e.salary,e.commission_pct,d.manager_id,d.employee_id 
from employees as e ,employees as d 
where  e.manager_id=d.employee_id 
and e.employee_id="+jComboBox1.getSelectedItem();

我看到您使用rs.getString作为员工id,因此where子句中缺少e.employee_id字段的引号。

到底是什么问题?员工id的类型是什么?很好。坐下来放松。很快就会有人对你的服务器进行pwn,使你的问题变得毫无意义。如果你遇到异常,你能发布堆栈跟踪吗?