Java 如何测试DAO连接
我有一个mySql数据库,正在使用phpMyAdmin来管理它。我已经编写了一个简单的JDBCDAO来测试它,但是它不会返回任何数据 我对DriverManager.getConnection函数使用的字符串进行了双重和三重检查,它们与我通过phpMyAdmin登录时使用的字符串完全相同 有没有一种更简单的方法来检查我的DAO是否能够真正连接,即在DAO内部而不是像我现在这样使用servletJava 如何测试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
//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)
。