Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何测试DAO连接_Java_Mysql_Jdbc - Fatal编程技术网

Java 如何测试DAO连接

Java 如何测试DAO连接,java,mysql,jdbc,Java,Mysql,Jdbc,我有一个mySql数据库,正在使用phpMyAdmin来管理它。我已经编写了一个简单的JDBCDAO来测试它,但是它不会返回任何数据 我对DriverManager.getConnection函数使用的字符串进行了双重和三重检查,它们与我通过phpMyAdmin登录时使用的字符串完全相同 有没有一种更简单的方法来检查我的DAO是否能够真正连接,即在DAO内部而不是像我现在这样使用servlet //above this I have my imports, and username and pa

我有一个mySql数据库,正在使用phpMyAdmin来管理它。我已经编写了一个简单的JDBCDAO来测试它,但是它不会返回任何数据

我对DriverManager.getConnection函数使用的字符串进行了双重和三重检查,它们与我通过phpMyAdmin登录时使用的字符串完全相同

有没有一种更简单的方法来检查我的DAO是否能够真正连接,即在DAO内部而不是像我现在这样使用servlet

//above this I have my imports, and username and password string
public Car getCar(int vin){
    Car c = null;
    Connection con = null;
    Statement stmt = null;
    try{
        con = DriverManager.getConnection(DATABASE_URL, USERNAME, PASSWORD);
        stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT * FROM carList WHERE vin=" + vin);
        if(rs.next()){
            c = new Car();
            c.setVin(rs.getInt(1));
            c.setMake(rs.getString(2));
            c.setMake(rs.getString(3));
            c.setYear(rs.getInt(4));
            c.setTransmission(rs.getString(5));
            c.setFuelType(rs.getString(6));
            c.setColour(rs.getString(7));
            c.setDoors(rs.getInt(8));
            c.setPrice(rs.getInt(9));
        }
    } catch (SQLException ex){

    } finally{
        try{
            if (stmt != null)
            {
                stmt.close();
            }
            if (con != null)
            {
                con.close();
            }
        } catch (SQLException ex){
            Logger.getLogger(carDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    return c;
}
简单的servlet返回数据库中特定汽车的一些信息。它将打印行“详细信息”,但不打印其他内容。我也尝试过在Car类中覆盖默认的toString方法

//imports etc above here
public class DAOTester extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    try (PrintWriter out = response.getWriter()) {
        out.println("<!DOCTYPE html>");
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet DAOTester</title>");            
        out.println("</head>");
        out.println("<body>");
        carDAO dao = new carDAO();
        Car c = dao.getCar(35673451);
        out.print("details ");
        out.print(c.toString());
        out.println("</body>");
        out.println("</html>");
    }
}
//此处导入上述内容
公共类DAOTester扩展了HttpServlet{
受保护的void processRequest(HttpServletRequest请求、HttpServletResponse响应)
抛出ServletException、IOException{
setContentType(“text/html;charset=UTF-8”);
尝试(PrintWriter out=response.getWriter()){
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“测试仪”);
out.println(“”);
out.println(“”);
卡道道=新卡道();
carc=dao.getCar(35673451);
打印(“详细信息”);
out.print(c.toString());
out.println(“”);
out.println(“”);
}
}

如果在
catch(SQLException ex)
中添加
Logger.getLogger(CarDAO.class).error(“getCar上的错误”,ex)
您可能知道问题所在。我尝试了这个方法,但编译不正确,“class无法转换为字符串”哦,好的,那么它应该是
Logger.getLogger(CarDAO.class.getName())。error(“getCar上的错误”,ex)在catch中(SQLException ex)