Из одного текстового поля создано несколько строк в БД - PullRequest
0 голосов
/ 29 сентября 2019

У меня есть три текстовых поля, одно для имени, второе - для идентификатора класса, а другое - для номера ролла класса.

Здесь я помещаю некоторую справочную работу:

Метод получения геттера (class1.java):

package beans;
public class class1 {
    private String name;
    private String classid;
    private String rollnum;
    public class1() {}
    public class1(String name,String classid,String rollnum) {
        super();
        this.name=name;
        this.classid=classid;
        this.rollnum=rollnum;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getClassId() {
        return classid;
    }
    public void setClassId(String classid) {
        this.classid = classid;
    }
    public String getRollNum() {
        return rollnum;
    }
    public void setRollNum(String rollnum) {
        this.rollnum = rollnum;
    }
}

dbutils:

package utils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class dbutils {
    public static Connection con = null;
    public static Statement stmt = null;
    public static PreparedStatement pst = null;
    public static ResultSet rs = null;
    public static Connection getConnection(){
        String url = "jdbc:mysql://localhost:3306/temp";
        String username = "root";
        String password = "admin";
        try{
               Class.forName("com.mysql.jdbc.Driver");
                   con=DriverManager.getConnection(url,username,password);
        }catch(SQLException e){
            e.printStackTrace();
        }catch(ClassNotFoundException e){
            e.printStackTrace();
        }
        return con;
    }
    public static Statement getStatement(){
        try {
            stmt = con.createStatement();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return stmt;
    }
    public static PreparedStatement getPreparedStatement(String sql){
        try {
            pst = con.prepareStatement(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return pst;
    }
    public static void closeResources(){
        try{
            if(rs != null)
                rs.close();
            if(pst != null)
                pst.close();
            if(stmt != null)
                stmt.close();
            if(con != null)
                con.close();
        }catch(SQLException e){
            e.printStackTrace();
        }
    }
}

utilsdao.java:

package utils;
import beans.class1;
public interface utilsdao {
    public boolean entryDataClassAll(class1 c);
}

utilsdaoImpl.java:

package utils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import beans.class1;
public class utilsdaoImpl implements utilsdao {

    Connection con=null;
    Statement st=null;
    PreparedStatement pst=null;
    ResultSet rs=null;  
    int rowCount=0;
        public boolean entryDataClassAll(class1 c) {
        boolean cde=false;
        con=dbutils.getConnection();
        String sql="insert into class values(?,?,?)";
            pst=dbutils.getPreparedStatement(sql);
        try{
            pst.setString(1, c.getName());
            pst.setString(2, c.getClassId());
            pst.setString(3, c.getRollNum());
            rowCount=pst.executeUpdate();
            if(rowCount>0){
                cde=true;               
    }       
        dbutils.closeResources();
    }catch(SQLException e){
        e.printStackTrace();
    }
        return cde;
    }
}

Сервлет (dataentryservletclass.java):

package servlet;
import java.io.IOException;
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 beans.class1;
import utils.utilsdao;
import utils.utilsdaoImpl;
@WebServlet("/dataentryservletclass")
public class dataentryservletclass extends HttpServlet {
    private static final long serialVersionUID = 1L;
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String c_name=request.getParameter("c_name");
        String c_classid=request.getParameter("c_classid");
        String c_rollnum=request.getParameter("c_rollnum");
        class1 c1=new class1();
        c1.setName(c_name);
        c1.setClassId(c_classid);
        c1.setRollNum(c_rollnum);
        utilsdao dao=new utilsdaoImpl();
        boolean cde=dao.entryDataClassAll(c1);
        if(cde){
            response.sendRedirect("home.jsp");
        }
    }
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}

JSP-файл (classdataentry.jsp):

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<center>
<form action="dataenteryservletclass" method="post">
Enter Name <input type="text" name="c_name">
<br><br>
Enter Class ID <input type="text" name="c_classid">
<br><br>
Enter Roll No.<input type="text" name="c_rollnum">
<br><br>
<button type="submit" value="submit">Submit</button>
</form>
</center>
</body>
</html>

Теперь я хочу сохранить эти данные в базе данных таким образом, что еслиПредположим, что номер броска - 04, ID класса - 10, а имя - ram. Затем он будет создавать строки, как показано ниже:

+------+-----------+---------+
| name | classid   | rollnum |
+------+-----------+---------+
| ram  |    10     |   01    |
| ram  |    10     |   02    |
| ram  |    10     |   03    |
| ram  |    10     |   04    |
+------+-----------+---------+

Значение 04 будет уменьшаться до 01.

Если кто-то поставит 03 на номер броска класса, то он уменьшится до 01. В этомcase 3 строки будут созданы из одной записи.

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