Как исправить ошибку подключения к базе данных в JSP? - PullRequest
0 голосов
/ 13 сентября 2011

Я написал код JSP для хранения сведений о сотруднике в базе данных.я создал базу данных под названием employee и table empdetails в этой базе данных сотрудников.Я развернул код на сервере Tomcat.но данные, которые передаются в соответствующих полях, не сохраняются в таблице базы данных empdetails.

может кто-нибудь мне помочь.

код выглядит следующим образом

<%@ page language="java" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd" >
<%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%>
<HTML>
    <HEAD>
        <TITLE>welcome to City Solutions </TITLE>
    </HEAD>
    <BODY bgcolor="#ffffcc">
        <font size="+3" color="green"><br>Welcome to City Solutions !</font>
        <br>
        Employee Registration..
        <FORM action="prepared_statement_query.jsp" method="get">
            <TABLE style="background-color: #ECE5B6;" WIDTH="30%">
                <TR>
                    <TH width="50%">
                        Name
                    </TH>
                    <TD width="50%">
                        <INPUT TYPE="text" NAME="name">
                    </TD>
                </tr>
                <TR>
                    <TH width="50%">
                        City
                    </TH>
                    <TD width="50%">
                        <INPUT TYPE="text" NAME="city">
                    </TD>
                </tr>
                <TR>
                    <TH width="50%">
                        Phone
                    </TH>
                    <TD width="50%">
                        <INPUT TYPE="text" NAME="phone">
                    </TD>
                </tr>
                <TR>
                    <TH width="50%">
                        Qualification
                    </TH>
                    <TD width="50%">
                        <INPUT TYPE="text" NAME="Qualification">
                    </TD>
                </tr>
                <TR>
                    <TH width="50%">
                        Year
                    </TH>
                    <TD width="50%">
                        <select name="year">
                            <option value="select">
                                select
                            </option>
                            <option value="2011">
                                2011
                            </option>
                            <option value="2010">
                                2010
                            </option>
                            <option value="2009">
                                2009
                            </option>
                            <option value="2008">
                                2008
                            </option>
                            <option value="2007">
                                2007
                            </option>
                            <option value="2006">
                                2006
                            </option>
                        </select>
                    </TD>
                </tr>
                <TR>
                    <TH width="50%">
                        Experience
                    </TH>
                    <TD width="50%">
                        <INPUT size="4" TYPE="text" NAME="Experience">
                    </TD>
                </tr>
                <TR>
                    <TH width="50%">
                        Position
                    </TH>
                    <TD width="50%">
                        <select name="Position">
                            <option value="select">
                                select
                            </option>
                            <option value="Java">
                                JAVA
                            </option>
                            <option value="Testing">
                                TESTING
                            </option>
                            <option value="ETL">
                                ETL
                            </option>
                            <option value="BA">
                                BA
                            </option>
                        </select>
                    </TD>
                </tr>


                <TR>
                    <TH></TH>
                    <TD width="50%">
                        <INPUT TYPE="submit" VALUE="submit">
                    </TD>
                </tr>

            </TABLE>
            <%
                String name = request.getParameter("name");
                String city = request.getParameter("city");
                String phone = request.getParameter("phone");
                String qualification = request.getParameter("qualification");
                String year = request.getParameter("year");

                System.out.println("year" + year);
                String experience = request.getParameter("experience");
                String position = request.getParameter("position");
                 /* Create string of connection url within specified 
   format with machine name, 
    port number and database name. Here machine name id 
    localhost and database name is student. */
    String connectionURL = "jdbc:mysql://localhost:3306/employee";
          // declare a connection by using Connection interface 
    Connection connection = null;
        // declare object of Statement interface that uses for 
   // executing sql statements.
     PreparedStatement pstatement = null;
         // Load JBBC driver "com.mysql.jdbc.Driver"
     Class.forName("com.mysql.jdbc.Driver").newInstance();
          int updateQuery = 0;

         // check if the text box is empty
         //if(name!=null && city!=null && phone!=null){

                    // check if the text box having only blank spaces
                    if (name != "" && city != "" && phone != ""
                            && qualification != "" && year != ""
                            && experience != "" && position != "") {
                        try {
                            /* Create a connection by using getConnection()
                            method that takes parameters of string type 
                            connection url, user name and password to connect 
                              to database. */
                            connection = DriverManager.getConnection(connectionURL,
                                    "root", "root");
                            // sql query to insert values in the specified table.
                            String queryString = "INSERT INTO empdetails(Name,City,Phone,Qualification,Year,Experience,Position) VALUES (?, ?, ?, ?, ?, ?, ?)";
                            /* createStatement() is used for create statement
                            object that is used for 
                            sending sql statements to the specified database. */
                            pstatement = connection.prepareStatement(queryString);
                            pstatement.setString(1, name);
                            pstatement.setString(2, city);
                            pstatement.setString(3, phone);
                            pstatement.setString(4, qualification);
                            pstatement.setString(5, year);
                            pstatement.setString(6, experience);
                            pstatement.setString(7, position);
                            updateQuery = pstatement.executeUpdate();
                            if (updateQuery != 0) {
            %>
            <br>
            <TABLE style="background-color: #E3E4FA;" WIDTH="50%" border="1">
                <tr>
                    <th>
                        Your Information Has to be Stored
                    </th>
                </tr>
            </table>
            <%
                }
                        } catch (Exception ex) {
                            out.println("Unable to connect to Database.");

                        } finally {
                            // close all the connections.
                            //pstatement.close();
                            //connection.close();
                        }
                    }

            %>
        </FORM>
    </body>
</html> 

1 Ответ

3 голосов
/ 13 сентября 2011

Заменить

} catch (Exception ex) {
    out.println("Unable to connect to Database.");
}

от

} catch (Exception ex) {
    throw new ServletException("Unable to connect to Database.", ex);
}

И огромное количество информации (сведения об исключениях и трассировка стека) появятся в журналах сервера (и, если вам повезет, также в ответе JSP). Тип исключения, сообщение и трассировка стека подробно рассказывают о причине проблемы. Если вы сможете интерпретировать исключение, вы сможете понять причину проблемы, и, следовательно, решение является не более чем очевидным. Если вы не можете понять исключение, просто передайте тип / сообщение и при необходимости 1-ю строку через Google. Если вы все еще застряли, просто задайте его здесь (не забудьте указать исключение / трассировку в своем вопросе!).


Не связано с конкретной проблемой, размещение Java-кода (для уверенного кода взаимодействия с базой данных) внутри файла JSP является плохой практикой . Исправьте это соответствующим образом, основываясь на Как избежать использования кода Java в файлах JSP?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...