mysql数据库连接在servle中使用有问题Feature not implemented Query

写了一个查询数据库的方法,在测试类中可以查询,在servle中调用就会有报错。

import com.xg.jdbcutil.JDBCDBCPConfigUtils;
import com.xg.pojo.User;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.*;

import java.sql.SQLException;

public class Uaerdata {
    private static QueryRunner qr = JDBCDBCPConfigUtils.getQueryRunner();
    public static int findLogin(User user){
        int row=-1;
        String sql = "SELECT COUNT(*) FROM user WHERE uname=?";
        long count = 0;
        try {
            count = qr.query(sql, new ScalarHandler<Long>(),user.getUname());
        } catch (SQLException throwables) {
            System.out.println("这里出错了o");
            throwables.printStackTrace();
        }
        if(count==1){
            row=0;
            sql = "SELECT COUNT(*) FROM user WHERE uname=? and upassword=?";
            try {
                count = qr.query(sql, new ScalarHandler<Long>(),user.getUname(),user.getUpassword());
            } catch (SQLException throwables) {
                System.out.println("bbbbbbbb");
                throwables.printStackTrace();
            }
            if(count==1)row=1;
        }
        return  row;
    }

    public static void arrayHandler()throws SQLException{
        String sql = "SELECT * FROM question_bank";
        Object[] result = qr.query( sql, new ArrayHandler());
        for(Object obj : result){
            System.out.print(obj);
        }
        System.out.println();
    }
}
//测试代码
public class UaerdataText {
    public static void main(String[] args) throws SQLException {
        User user=new User("cc","123");
        int row = Uaerdata.findLogin(user);
        System.out.println(row);
    }
}
//这里可以成功输出结果,下面就不行了
//因为有报错所以这里就是直接在servlet中写好了方法需要的参数。jsp页面输入不在影响servlet。
public class A_servlet extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String path1="index.jsp";
        //String path2="home.jsp";
        String sin="登陆成功,欢迎使用!";
        User user=new User();
        //new String(req.getParameter("uname").getBytes("iso-8859-1"),"utf-8")
        user.setUname(req.getParameter("uname"));
        user.setUpassword(req.getParameter("upassword"));
        req.setAttribute("user",user);
        System.out.println("wwwww");
        User user2=new User("cc","123");
        int a=0;
        a = Uaerdata.findLogin(user2);
        switch (a){
            case -1:
                sin="不存在该用户!";
                System.out.println("这里出错了1");
                break;
            case 0:
                System.out.println("2222222222");
                sin="密码输入错误!";
                break;
            case 1:
                System.out.println("333333");
                path1="home.jsp";
                break;
            default:
                System.out.println("4444444");
                sin="请联系客服人员进行反馈,或稍后再次登录!";
                System.out.println("数据库查询出现错误");
        }
        /*try {
            switch (Uaerdata.findLogin(user)){
                case -1:
                    sin="不存在该用户!";
                    System.out.println("111111111");
                    break;
                case 0:
                    System.out.println("2222222222");
                    sin="密码输入错误!";
                    break;
                case 1:
                    System.out.println("333333");
                    path1="home.jsp";
                    break;
                default:
                    System.out.println("4444444");
                    sin="请联系客服人员进行反馈,或稍后再次登录!";
                    System.out.println("数据库查询出现错误");
            }
        } catch (SQLException throwables) {
            System.out.println("5555555555");
            throwables.printStackTrace();
        }*/
        req.setAttribute("sin",sin);
        req.getRequestDispatcher(path1).forward(req,resp);
    }
    public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doGet(req,resp);
    }

}

jsp页面

index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
    <div align="center" style="border-top:5px solid #f35d34;width:100%;margin: 0px;">
      <form action="\a_servlet" method="post">
        账户:<input type="text" name="uname"><br/>
        密码:<input type="password" name="upassword"><br/>
        <br/><input type="submit" value="登录">
        <input type="reset">
      </form>
      <br/>
      ${requestScope.sin}
    </div>
  </body>
</html>


home.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isELIgnored="false" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
账户:${requestScope.user.uname}
密码:${requestScope.user.upassword}
<br/>
${requestScope.sin}
</body>
</html>


问题相关代码,请勿粘贴截图
运行结果及报错内容

jsp

img

控制台输出:
wwwww
java.sql.SQLException: Feature not implemented Query: SELECT COUNT(*) FROM user WHERE uname=? Parameters: [cc]
at org.apache.commons.dbutils.AbstractQueryRunner.rethrow(AbstractQueryRunner.java:392)
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:351)
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:289)
at com.xg.data.Uaerdata.findLogin(Uaerdata.java:18)
at com.xg.servlet.A_servlet.doGet(A_servlet.java:27)
at com.xg.servlet.A_servlet.doPost(A_servlet.java:73)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1468)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
这里出错了o
这里出错了1

我的解答思路和尝试过的方法
我想要达到的结果

第一次提问,把三个类的代码写在一起了,影响阅读不好意思

测试类可以成功运行

img

首先,在测试类中查询没问题,说明不是驱动的问题
另一个,报错提示 查询功能未实现,可能在传入参数的时候出现了一些问题,你可以在

count = qr.query(sql, new ScalarHandler<Long>(),user.getUname())

打上断点debug一下,看传入了那些参数,然后检查query方法

mysql驱动包问题,用的是什么版本的驱动,换新一点版本试试。