Java 在SQL查询中使用组合框的值

Java 在SQL查询中使用组合框的值,java,mysql,Java,Mysql,如何使用Java在SQL查询中使用组合框的值? 我尝试了这个代码,但它不起作用 String sql = " select * from table1 where ? like ?"; try{ pst = conn.prepareStatement(sql); pst.setString(1, (String) jComboBox2.getSelectedItem()); pst.setString(2, txtsearch.getTex

如何使用Java在SQL查询中使用组合框的值? 我尝试了这个代码,但它不起作用

String sql = " select * from table1 where ? like ?";
    try{
        pst = conn.prepareStatement(sql);
        pst.setString(1, (String) jComboBox2.getSelectedItem());
        pst.setString(2, txtsearch.getText() + "%");
        rs = pst.executeQuery();}
如果我使用这个代码,它会工作

String sql = " select * from table1 where Name like ?";
    try{
        pst = conn.prepareStatement(sql);
        pst.setString(1, txtsearch.getText() + "%");
        rs = pst.executeQuery();}

你可以这样做:

try {
    String sql = "select * from table1 where ";
    sql += (String) jComboBox2.getSelectedItem();
    sql += " like ";
    sql += txtsearch.getText() + "%";
    pst = conn.prepareStatement(sql);
    rs = pst.executeQuery();
}
占位符(?)实际上是为列值设计的,而不是为列/表名设计的。使用字符串连接:

String sql = "select * from table1 where "
                                  + jComboBox2.getSelectedItem()
                                  +" like ?";

是的,这是连接到字符串的好方法。。我喜欢这种方法