Я написал следующий код на странице JSP, который работает хорошо.
<%String email=session.getAttribute("email").toString();%>
<% String payment1 = request.getParameter("payment1"); %>
<% String payment2 = request.getParameter("payment2"); %>
<% String payment3 = request.getParameter("payment3"); %>
<% String payment4 = request.getParameter("payment4"); %>
<% String payment5 = request.getParameter("payment5"); %>
<% String payment6 = request.getParameter("payment6"); %>
<% String payment7 = request.getParameter("payment7"); %>
<% String payment8 = request.getParameter("payment8"); %>
<% String payment9 = request.getParameter("payment9"); %>
<% String payment10 = request.getParameter("payment10"); %>
<% String paymentStatus = request.getParameter("paymentStatus"); %>
<%String add1= "C:\\Users\\pc\\Desktop\\Pictures\\"+request.getParameter("citizen");%>
<%String deg1= "C:\\Users\\pc\\Desktop\\Pictures\\"+request.getParameter("degree");%>
<%BufferedImage citizen = ImageIO.read(new File(add1));%>
<%BufferedImage degree=ImageIO.read(new File(deg1));%>
<%String available=com.Package1.UpdataStudentInfo.useValues(email, payment1, payment2, payment3, payment4, payment5, payment6, payment7, payment8, payment9, payment10, citizen, degree);%>
В файле "UpdataStudentInfo.java" я написал следующий код:
public class UpdataStudentInfo {
static int p;
static int x;
static String info;
public static String useValues(String email, String payment1, String payment2, String payment3, String payment4, String payment5, String payment6, String payment7, String payment8, String payment9, String payment10, BufferedImage citizen, BufferedImage degree) throws IOException{
/*************************************FIND**********************************************************/
System.out.println(payment1);
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection cn=DriverManager.getConnection("jdbc:mysql://localhost:3306/crm","root","");
Statement smt=cn.createStatement();
ResultSet rs=smt.executeQuery("SELECT * FROM student");
if(rs.next()){
do{
if(rs.getString(2).equals(email)){
p=rs.getInt(1);
break;
}
} while(rs.next());
}
cn.close();
}catch (ClassNotFoundException | IllegalAccessException | InstantiationException | SQLException e){
System.out.println("EXCEPTION CAUGHT: "+e);
}
/*************************************UPDATE**********************************************************/
ByteArrayOutputStream os1 = new ByteArrayOutputStream();
ImageIO.write(citizen, "jpg", os1);
InputStream citizen_is = new ByteArrayInputStream(os1.toByteArray());
ByteArrayOutputStream os2 = new ByteArrayOutputStream();
ImageIO.write(degree, "jpg", os2);
InputStream degree_is = new ByteArrayInputStream(os2.toByteArray());
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
try{
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/crm","root","");
PreparedStatement stmt=con.prepareStatement("UPDATE student SET payment1=?, payment2=?, payment3=?,payment4=?,payment5=?,payment6=?,payment7=?,payment8=?,payment9=?,payment10=?, citizenship=?, degree=? WHERE sn=? ");
stmt.setString(1, payment1);
stmt.setString(2, payment2);
stmt.setString(3, payment3);
stmt.setString(4, payment4);
stmt.setString(5, payment5);
stmt.setString(6, payment6);
stmt.setString(7, payment7);
stmt.setString(8, payment8);
stmt.setString(9, payment9);
stmt.setString(10, payment10);
stmt.setBlob(11, citizen_is);
stmt.setBlob(12, degree_is);
stmt.setInt(13, p);
x=stmt.executeUpdate();
con.close();
}catch(Exception e){
System.out.println("caught an exception"+e);
}
}catch(Exception e){
System.out.println("Caught an exception"+e);
}
}
}
Основная концепция в приведенном выше кодировании заключается в том, чтобы найти серийный номер (уникальный идентификатор) конкретного электронного письма и обновить некоторые данные в этом идентификаторе.
Структура базы данных показана на рисунке:
Рисунок базы данных
Но почему данные не сохраняются?