首页 > 解决方案 > 为什么我在带有 JDBC 和 MySQL 的 JSP 中出现连接失败错误

问题描述

我正在尝试连接到 mysql 数据库并执行查询

但是数据库连接在加载时失败。

Pass 和 userID 都是正确的。

我在 netbeans 上没有任何错误。

这是我的代码

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>

<%@ page import="java.sql.*" %>

<% Class.forName("com.mysql.jdbc.Driver"); %>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>Real Time Stock Price Quote</h1>

        <form action="" method="get">

            <p>Search:</p> 
            <input type="text" name="q" placeholder='search here'><br>
            <input type="submit" value="Submit" ><br>

        </form>

        <%
        Connection conn = null;
        Statement st = null;
        ResultSet rs = null;

            try{
                Class.forName("com.mysql.jdbc.Driver");
                conn = (Connection)DriverManager.getConnection("jdbc:mysql://localhost:3306/stocklist","root","");
                st = conn.createStatement();

                String qry = request.getParameter("q");

                String data;


                qry= "SELECT * FROM `stocks` WHERE `name` LIKE '%qry%'";


                rs = st.executeQuery(qry);


                 if(!conn.isClosed()){
                     %>

                     <P>connected DB  </P>
                     <%= qry %> 

                     <%
                 }

                %>

                <p> <% rs.getString("symbol"); %> </p>

                <%
            }catch(Exception e){

                    %>
                    <h2>Error! Database Connection Failed!!</h2>

                    <%

                    }

                    %>
    </body>
</html>


这是我得到的输出:

实时股票报价搜索:

在这里搜索

连接数据库

SELECT * FROM stocksWHERE nameLIKE '%qry%' 错误!数据库连接失败!!

为什么它会连接然后失败?

标签: javamysqljspjdbc

解决方案


异常包含 4 个有用的信息:堆栈跟踪、消息、类型和原因。

你扔掉了所有 4 件事,并用“失败!”替换它。

“不要那样做”的经典案例。

让异常发生;然后,您的日志将包含所有这些信息供您查看。从那里您可能会找出问题所在。

如果没有这些信息,没有完整的开发机器克隆,没有人可以在这里提供帮助。


推荐阅读