вставлять данные в базу данных через модель MVC, используя классы Dao и Bean - PullRequest
0 голосов
/ 26 июня 2018

Пожалуйста, помогите найти мне ошибку. Хотя нет ошибки компиляции, но данные не обрабатываются в базу данных. В этих кодах просто нет синтаксической ошибки. Даже я проверил через несколько сайтов, но ничего другого я не могу заметить.

пакет MVC.

RegisterDao.java

package mvc;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class RegisterDao {

    public static Connection getCon() throws ClassNotFoundException, SQLException
    {
        try{Class.forName("com.mysql.jdbc.Driver");
                }
                catch(Exception e){};
        Connection con=DriverManager.getConnection("jdbc:mysql://localhost/hcs","root","1234");
    return con;
    }
    public int addRecordpatient(User a)
    {
        int i=0;
        Connection con;
        try {
            con = getCon();
        String qr="insert into signin(phone, name, password, gender, bgrp, age) values(?,?,?,?,?,?)";
        PreparedStatement ps=con.prepareStatement(qr);
        ps.setInt(1, a.getPhone());
        ps.setString(2, a.getName());
        ps.setString(3, a.getPassword());
                ps.setString(4, a.getGender());
                ps.setString(5, a.getBgrp());
                ps.setInt(6, a.getAge());
        int j=ps.executeUpdate();

                if (j!=0)  //Just to ensure data has been inserted into the database
                {System.out.println("success"); }


        con.close();
} catch (Exception e) {

            System.out.println(e);
        } 
        //return i;
    return 0;
        }

}

User.java

package mvc;

public class User {
private int phone;
private String name;
private String password;
private String gender;
private String bgrp;
private int age;
public int getPhone() {
    return phone;
}
public void setPhone(int phone) {
    this.phone = phone;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getPassword() {
    return password;
}
public void setPassword(String password) {
    this.password = password;
}

public String getGender() {
    return gender;
}
public void setGender(String gender) {
    this.gender = gender;
}
public String getBgrp() {
    return bgrp;
}
public void setBgrp(String bgrp) {
    this.bgrp = bgrp;
}
public int getAge() {
    return age;
}
public void setAge(int age) {
    this.age = age;
}
}

сервлет -> psignup.java

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import mvc.RegisterDao;
import mvc.User;
@WebServlet("/psignup")
public class psignup extends HttpServlet {
    private static final long serialVersionUID = 1L;
    public psignup() {
        super();
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out=response.getWriter();
        response.setContentType("text/html");
        int phone=Integer.parseInt(request.getParameter("phone"));
                String name=request.getParameter("name");
        String password=request.getParameter("password");
        String gender=request.getParameter("gender");
                String bgrp=request.getParameter("bgrp");
                int age=Integer.parseInt(request.getParameter("age"));
        User b=new User();
                b.setPhone(phone);
        b.setName(name);
        b.setPassword(password);
                b.setGender(gender);
                b.setBgrp(bgrp);
                b.setAge(age);
        try{
    RegisterDao rd= new RegisterDao();
             request.getRequestDispatcher("/index.jsp").forward(request, response);

                }
                catch(Exception e){out.print(e);}
    }
}

страница регистрации jsp ---> index.jsp

<form method="post" action="psignup" class=" form-group">
                    <h1><span class="glyphicon glyphicon-user"></span>Sign Up</h1>
                    <div class="form-group">
                        <label for="no">Contact</label>
                        <input type="tel" class="form-control" id="no" name="phone" placeholder="eg. 9876543210"/>
                    </div>
                    <div class="form-group">
                        <label for="n">Name</label>
                        <input type="text" class="form-control" id="n" name="name" placeholder="eg. abc pqr xyz"/>
                    </div>

                    <div class="form-group">
                        <label for="p">Password</label>
                        <input type="password" class="form-control" id="p" name="password" placeholder="eg. Abc123!"/>
                    </div>

                    <div class="form-group">
                        <label for="n">Gender</label>
                        <input type="text" class="form-control" id="g" name="gender" placeholder="eg. male"/>
                    </div>                    <div class="form-group">
                        <label for="add">blood group</label>
                        <input type="text" class="form-control" id="bgrp" name="bgrp" placeholder="eg. O+"/>
                    </div>
                    <div class="form-group">
                        <label for="no">Age</label>
                        <input type="tel" class="form-control" id="age" name="age" placeholder="eg. 101"/>
                    </div>
                    <div>
                        <input type="submit" value="submit" name="submit" class="btn-block btn-primary" id="submit"/>
                    </div>
                    </form>

база данных (работает правильно). вход --->

Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| phone    | int(11)     | NO   | PRI | NULL    |       |
| name     | varchar(25) | YES  |     | NULL    |       |
| password | varchar(25) | YES  |     | NULL    |       |
| gender   | varchar(10) | YES  |     | NULL    |       |
| bgrp     | varchar(25) | YES  |     | NULL    |       |
| age      | int(11)     | YES  |     | NULL    |       |

1 Ответ

0 голосов
/ 27 июня 2018

У вас есть try-catch для загрузки драйвера базы данных; улов ничего не делает. Вы уверены, что драйвер загружается?

Ваш RegisterDao DAO (объект доступа к данным) имеет метод addRecordpatient, который берет ваш User DTO (объект передачи данных) и помещает его в базу данных путем преобразования его в фактический запрос с вашим подготовленным оператором.

Ваш сервлет не вызывает этот метод, он просто создает экземпляр DAO. Вам нужно добавить

rd.addRecordpatient(user);

после того, как вы создали экземпляр объекта.

Вы пытались отладить это? Также проверка данных нигде не проводится. Вы должны добавить логику проверки к опубликованным данным, прежде чем отправлять их в базу данных.

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