У меня есть три текстовых поля, одно для имени, второе - для идентификатора класса, а другое - для номера ролла класса.
Здесь я помещаю некоторую справочную работу:
Метод получения геттера (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 строки будут созданы из одной записи.