Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.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 搜索查询并在jtable中显示结果_Java_Mysql_Swing_Jtable - Fatal编程技术网

Java 搜索查询并在jtable中显示结果

Java 搜索查询并在jtable中显示结果,java,mysql,swing,jtable,Java,Mysql,Swing,Jtable,我想执行一个搜索查询,并在JTable中显示结果。我有一个JComboBox,用户可以在其中选择要搜索的字段,如姓名、年龄或ID 这是我的密码 try { Class.forName("com.mysql.jdbc.Driver"); String connectionUrl = "jdbc:mysql://localhost/db?" + "user=root&password="; con = DriverManager.getConnection(c

我想执行一个搜索查询,并在
JTable
中显示结果。我有一个
JComboBox
,用户可以在其中选择要搜索的字段,如姓名、年龄或ID

这是我的密码

try {
    Class.forName("com.mysql.jdbc.Driver");    
    String connectionUrl = "jdbc:mysql://localhost/db?" + "user=root&password=";
    con = DriverManager.getConnection(connectionUrl);
    Statement state = con.createStatement();

    ResultSet result = state.executeQuery("SELECT * FROM db.atelier where '" + 
        jComboBox1.getSelectedItem().toString() + "'='" +
        jTextField1.getText().toString() + "'");

    ResultSetMetaData resultMeta = result.getMetaData();

    while(result.next()){
        model.addRow(new Object[]{result.getObject(1),result.getObject(2)});      
        model.setDataVector(
            new Object[][]{{result.getObject(1),result.getObject(2)},{}},                           
            new Object[]{resultMeta.getColumnName(1),resultMeta.getColumnName(2)});
        }

    jPanel1.revalidate();
    model.fireTableDataChanged();
    this.repaint();
    state.close();
}
catch (SQLException e){
    System.out.println("SQL Exception: "+ e.toString());
}
catch (ClassNotFoundException cE){
    System.out.println("Class Not Found Exception: "+ cE.toString());
}

con=null;

顺便说一句,构建搜索查询的方式只会将应用程序暴露于SQL注入

顺便说一句,您构建搜索查询的方式只会将您的应用程序暴露于SQL注入

组合框所选项目周围的单引号应删除,以使其成为字段名而不是字符串文本。此外,一个PreparedStatement,其中文本字段作为一个附加参数给出,替换SQL字符串中的
,效果更好。转义在文本字段中输入的单引号(以及反斜杠等)

组合框所选项目周围的单引号应删除,以使其成为字段名而不是字符串文本。此外,一个PreparedStatement,其中文本字段作为一个附加参数给出,替换SQL字符串中的
,效果更好。转义在文本字段中输入的单引号(以及反斜杠等)

请对代码块使用一致的逻辑缩进。另请参阅有关SQL注入的内容。请对代码块使用一致的逻辑缩进。另请参阅有关SQL注入的内容。