在我的项目中,我做了一些代码来从数据库表中搜索员工姓名并将其加载到jcombobox中。
表名 : employee
列名 : empid(Primarykey), emp_name, position
通常我会像这样编码我的搜索查询。
public void EmployeeName1(JComboBox comboName) { Vector v = new Vector(); try { ResultSet rs = db.getData("select emp_name from employee"); v.add("--SELECT--"); while (rs.next()) { v.add(rs.getString("emp_name")); comboName.setModel(new DefaultComboBoxModel(v)); } } catch (Exception e) { e.printStackTrace(); } }它工作得很好。
但是现在我在这段代码上做了一些不同的事情。
public void EmployeeName1(JComboBox comboName) { Vector v = new Vector(); try { String columnName = "emp_name"; String tableName = "employee"; ResultSet rs = db.getData("select columnName from tableName"); v.add("--SELECT--"); while (rs.next()) { v.add(rs.getString(columnName)); comboName.setModel(new DefaultComboBoxModel(v)); } } catch (Exception e) { e.printStackTrace(); } }但是当我运行这段代码时,我遇到了这个错误。
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'textile.tablename' doesn't exist这是我的db类代码:
package Model; //import static Model.JDBC.con; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; import javax.swing.JOptionPane; public class JDBC { static String driver = "com.mysql.jdbc.Driver"; static String url = "jdbc:mysql://localhost/textile"; static Connection con; static boolean b; public static void setCon() { try { Class.forName(driver); con = DriverManager.getConnection(url, "root", "access456"); } catch (Exception ex) { JOptionPane.showMessageDialog(null, ex); } } public static Connection getCon() throws Exception { if (con == null) { setCon(); } return con; } public static boolean putData(String sql) { try { PreparedStatement state = getCon().prepareStatement(sql); state.executeUpdate(); b = true; } catch (Exception ex) { b = false; JOptionPane.showMessageDialog(null, ex); } return b; } public static ResultSet getData(String sql) throws Exception { Statement state = JDBC.getCon().createStatement(); ResultSet rset = state.executeQuery(sql); return rset; } }In my project I did some code to search employee name from database table and load it into jcombobox.
Table Name: employee
column names: empid(Primarykey), emp_name, position
Usually I code my searching query like this.
public void EmployeeName1(JComboBox comboName) { Vector v = new Vector(); try { ResultSet rs = db.getData("select emp_name from employee"); v.add("--SELECT--"); while (rs.next()) { v.add(rs.getString("emp_name")); comboName.setModel(new DefaultComboBoxModel(v)); } } catch (Exception e) { e.printStackTrace(); } }It is working very well.
But now I did some diffrent on this code.
public void EmployeeName1(JComboBox comboName) { Vector v = new Vector(); try { String columnName = "emp_name"; String tableName = "employee"; ResultSet rs = db.getData("select columnName from tableName"); v.add("--SELECT--"); while (rs.next()) { v.add(rs.getString(columnName)); comboName.setModel(new DefaultComboBoxModel(v)); } } catch (Exception e) { e.printStackTrace(); } }But when I'm running this code I'm having this error.
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'textile.tablename' doesn't existThis is my db class code:
package Model; //import static Model.JDBC.con; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; import javax.swing.JOptionPane; public class JDBC { static String driver = "com.mysql.jdbc.Driver"; static String url = "jdbc:mysql://localhost/textile"; static Connection con; static boolean b; public static void setCon() { try { Class.forName(driver); con = DriverManager.getConnection(url, "root", "access456"); } catch (Exception ex) { JOptionPane.showMessageDialog(null, ex); } } public static Connection getCon() throws Exception { if (con == null) { setCon(); } return con; } public static boolean putData(String sql) { try { PreparedStatement state = getCon().prepareStatement(sql); state.executeUpdate(); b = true; } catch (Exception ex) { b = false; JOptionPane.showMessageDialog(null, ex); } return b; } public static ResultSet getData(String sql) throws Exception { Statement state = JDBC.getCon().createStatement(); ResultSet rset = state.executeQuery(sql); return rset; } }最满意答案
在我看来,你在两个代码片段之间保持了其他一切。 我唯一能看到你应该改变的是:
ResultSet rs = db.getData("select columnName from tableName");至
ResultSet rs = db.getData("select " + columnName + " from " + tableName);It looks to me like you've kept everything else the same between the two code snippets. The only thing I can see that you should change is:
ResultSet rs = db.getData("select columnName from tableName");to
ResultSet rs = db.getData("select " + columnName + " from " + tableName);更多推荐
发布评论