【问题标题】:join SQL command not properly ended加入 SQL 命令未正确结束
【发布时间】:2015-01-04 14:38:41
【问题描述】:

我的连接语句有问题

 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();}

我该如何解决这个问题?! ..................................................... ..................................................... ..................................................... ..................................................... .....................

【问题讨论】:

  • 到底是什么问题?
  • employee_id 的类型是什么?
  • 可爱的sql injection attack。高枕无忧。很快有人会 pwn 你的服务器,让你的问题没有实际意义。
  • 如果遇到异常,能否发布堆栈跟踪信息?

标签: java javascript sql command spring-jdbc


【解决方案1】:

您确实应该使用准备好的语句来避免 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 作为employee_id,因此您在 where 子句中缺少 e.employee_id 字段的引号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-21
    • 1970-01-01
    • 2021-06-19
    相关资源
    最近更新 更多