У меня есть файл в базе данных data_table с именем файла 'a.txt' как:
doc_id filename
321 a.txt
Определение таблицы ('data_table'):
doc_id varchar(100) NOT NULL
filename varchar(100) NOT NULL
Я хочу обновить текущийфайл в базе данных, чтобы «b.txt», когда я нажимаю кнопку загрузки, в противном случае я не хочу, чтобы файл был обновлен, имя файла должно быть «a.txt»
В настоящее время, когда я нажимаю кнопку загрузки, он стираетзагруженное имя файла ('a.txt') и ничего не отображается.
База данных выглядит как:
doc_id filename
321
Мой ожидаемый вывод -
doc_id filename
321 b.txt
updatedetails.jsp
<%
String connectionURL = "jdbc:mysql://localhost:3306/doc_search";
Statement stmt = null;
Connection con = null;
String docId=null;
if(request.getParameter("doc_id")!=null && request.getParameter("doc_id")!="")
{
docId = request.getParameter("doc_id");
}
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection(connectionURL, "root", "root");
stmt = con.createStatement();
String qry = "select doc_id,doc_title,filename from data_table where doc_id='"+docId+"'";
ResultSet rst= stmt.executeQuery(qry);
while(rst.next())
{
%>
<center> <h1 class="header-w3ls" id="h1"> Update Document Details</h1></center>
<form id="form1" class="form-control" name="form1" action="update" enctype="multipart/form-data" method="post" >
<div class="col-md-4 mb-3 form-group">
<input type="hidden" name="doc_id" value="<%=rst.getString(1)%>">
</div>
<div class="col-md-4 mb-3 form-group">
<label for="validationDefault02">Document Title</label>
<input type="text" class="form-control" name="document_title" value="<%=rst.getString(2)%>" id="validationDefaultUsername" placeholder="Document Title " aria-describedby="inputGroupPrepend2" >
</div>
<div class="col-md-4 mb-3 form-group">
<label for="validationDefaultUsername">Upload File </label>
<input type="file" class="form-control" name="my_file_element" aria-describedby="inputGroupPrepend2" >
</div>
<div class="col-md-4 mb-3 form-group">
<div class="col-md-4 mb-3">
<center> <button class="btn btn-primary form-control" type="submit" name="Submit">Submit</button></center>
</div>
</div>
</form>
<%
}
con.close();
%>
update.java
<code> protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String msg=null;
try{
String tYear=null;
HttpSession session=request.getSession();
Class.forName("com.mysql.jdbc.Driver").newInstance();
String staffname = (String) session.getAttribute("username");
MultipartRequest multi =new MultipartRequest(request,"F:\\binsha\\JavaProject\\DOC_Register\\uploaded_files\\",100 1024);
String docId=multi.getParameter("document_id");
String documentTitle=multi.getParameter("document_title");
String author=multi.getParameter("prepared_by");
String tReviewedby=multi.getParameter("reviewed_by");
String documentType=multi.getParameter("doc_type");
String tRemarks=multi.getParameter("remarks");
String tDate=multi.getParameter("theDate2");
tYear = tDate.substring(6);
PreparedStatement ps20= null;
Statement stmt = null;
Connection con = null;
ResultSet rst=null;
con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/doc_search", "root", "root");
stmt = con.createStatement();
Enumeration files = multi.getFileNames();
String name=(String)files.nextElement();
String filename=multi.getFilesystemName(name);
System.out.println(filename);
if(filename.equals(""))
{
String sql2="update data_table set doc_title=?,prepared_by=?,reviewed_by=?,doc_type=?,remarks=?,date=?,year=? where doc_id='"+docId+"'";
ps20=con.prepareStatement(sql2);
ps20.setString(1, documentTitle);
ps20.setString(2, author);
ps20.setString(3,tReviewedby );
ps20.setString(4,documentType );
ps20.setString(5,tRemarks );
ps20.setString(6,tDate );
ps20.setString(7,tYear );
ps20.executeUpdate();
}
else{
String sql1="update data_table set doc_title=?,prepared_by=?,reviewed_by=?,doc_type=?,remarks=?,date=?,year=?,filename=? where doc_id='"+docId+"'";
ps20=con.prepareStatement(sql1);
ps20.setString(1, documentTitle);
ps20.setString(2, author);
ps20.setString(3,tReviewedby );
ps20.setString(4,documentType );
ps20.setString(5,tRemarks );
ps20.setString(6,tDate );
ps20.setString(7,tYear );
ps20.setString(8,filename );
ps20.executeUpdate();
}
con.close();
}
catch(Exception e)
{
out.println("<pre>");
System.out.println(e);
e.printStackTrace(out);
out.println("
");} request.setAttribute (" Message ", msg); // перенаправляет на страницу сообщения getServletContext (). GetRequestDispatcher (" / updatedetails.jsp") .forward (запрос, ответ); out.println (" ");} *1024*
Как обновить текущие данные в базе данных?