如何解决MySQLSyntaxErrorException(How to solve MySQLSyntaxErrorException)

编程入门 行业动态 更新时间:2024-10-23 07:37:03
如何解决MySQLSyntaxErrorException(How to solve MySQLSyntaxErrorException)

在我的项目中,我做了一些代码来从数据库表中搜索员工姓名并将其加载到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 exist

This 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);

更多推荐

本文发布于:2023-08-02 09:13:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1372299.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:如何解决   MySQLSyntaxErrorException   solve

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!