首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Unknown column

2012-01-10 
mysql执行异常问题下面是在程序中执行SQL语句时的异常~~~~请问怎么回事啊?非常感谢~~~~~~Java codepublic

mysql执行异常问题
下面是在程序中执行SQL语句时的异常~~~~
请问怎么回事啊?

非常感谢~~~~~~

Java code
public JuriBean searchName(String name)  //name就是下表中的employee{    JuriBean jb=new JuriBean();    Connection conn=null;    Statement stmt=null;    ResultSet rs=null;    try {        conn=getConnection();        stmt=conn.createStatement();        rs=stmt.executeQuery("select id from id_list where name = "+name);  //这里抛出异常,异常如下        int num=rs.getInt("id");    } catch (SQLException e) {                            e.printStackTrace();    }    finally    {        closeConnection(conn); //自己实现的关闭方法,没有问题!        closeStatement(stmt);        closeResultSet(rs);    }    return jb;}



com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Unknown column 'employee' in 'where clause'
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1026)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1383)
at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
at com.db.DBBean.searchName(DBBean.java:186)
at com.juri.JuriFilter.doFilter(JuriFilter.java:43)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.login.LoginFilter.doFilter(LoginFilter.java:113)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)


表id_list:

id name password
01 employee 12345


再次感谢~~~~~

[解决办法]
"select id from id_list where name = "+name;
改为:
"select id from id_list where name = '"+name+"'";
[解决办法]
("select id from id_list where name = '"+name+"'")
[解决办法]
rs=stmt.executeQuery("select id from id_list where name = '"+name+"';"); // ....


[解决办法]
你写的语句最后生成是
...where name = employee
而应该生成的是
...where name = ‘employee’
总之就是少了引号 所以把employee当作列而不是字符串对待了

解决方法见楼上的几个
[解决办法]
int num=rs.getInt("id");
改为
if(rs.next()){

int num=rs.getInt("id");

}


晕死 ,你碰到的问题真多,昨天还解决了问题,......................

热点排行