Member 14639038 Ответов: 1

Данные не обновляются


я написал бизнес-логику в сервлете для обновления данных html-таблицы с помощью jsp.
я даю тебе код.:


BOQServlet


package com.mvc.controller;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

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 com.mvc.util.DBConnection;



@WebServlet("/BoqServlet")
public class BoqServlet extends HttpServlet{
	public static Connection connect=null;
	public static Statement stmt=null;
	public ResultSet rst = null;
	int status=0;
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException  {
		// TODO Auto-generated method stub
		PrintWriter out = resp.getWriter();
		try {
		String Id;
		String HSN_CODE,HSNCODE_CONFIRMATION,gst_Rate,GST_RATE_Confirmation,ITEM_DESC,_qty,_Unit,P,_W,V;
		HSN_CODE =req.getParameter("_hsn_Code");
		HSNCODE_CONFIRMATION =req.getParameter("_isHSN_CodeConfirmed");
		gst_Rate =req.getParameter("_gst_RATE");
		GST_RATE_Confirmation =req.getParameter("GST_rate_Confirmation");
		ITEM_DESC=req.getParameter("_ItemDesc");
		_Unit =req.getParameter("_unit_");
		_qty =req.getParameter("_QTy");
		P = req.getParameter("_p");
		 _W = req.getParameter("__w");
		 V =req.getParameter("__V");
		 Id = req.getParameter("_id");
		//this.doGet(req, resp);
		 connect = DBConnection.createConnection();
		
			stmt = connect.createStatement();
		
		
		 String sql = "update boq set hsn_Code='"+HSN_CODE+"', is_hsnConfirmed='"+HSNCODE_CONFIRMATION+"',gst_rate='"+gst_Rate+"',is_gstRate_confirmed='"+GST_RATE_Confirmation+"',item_Description='"+ITEM_DESC+"',Unit="+_Unit+"',Qty='"+_qty+"', p='"+P+"',w='"+_W+"',v='"+V+"'_where id="+Id+"";
		 status = stmt.executeUpdate(sql);
		 if(status>0)
		 {
			 out.println("row has been updated successfully");
			 req.getRequestDispatcher("/jkpddReport.jsp").forward(req, resp);
		 }
		 else
		 {
			 resp.sendRedirect("/Error.jsp");
		 }
	}
		catch (SQLException e) {
			// TODO: handle exception
		}
	

}
	
	
	
	
	
		
		
	
}


сметный расчет-форма.ОСП
<%@page import="java.sql.SQLException"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="com.mvc.util.DBConnection"%>
<%@page import="java.sql.Connection"%>
<%@ 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>Edit BOQ</title>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<title>Update BOQ</title>
</head>
<body>
<%!String ID;
String _HsnCode, _ISHsnCodeConfirmed, GST_RATE, IS_GST_RATECONFIRMED,item_desc,UNIT,_QTY,_P,W,_V;
%>
<%
try ///ye sound band karo yar....bhai ye  _id kya h....form page na
{  //yea
	
	ID = request.getParameter("_id");
	 Connection con = DBConnection.createConnection();
	 Statement stmt = con.createStatement();
	 ResultSet rst = stmt.executeQuery("select * from boq where id="+ID+"");
	 if(rst.next())
	 {
		 _HsnCode = rst.getString("hsn_Code");
		 _ISHsnCodeConfirmed = rst.getString("is_hsnConfirmed");
		 GST_RATE = rst.getString("gst_rate");
		 IS_GST_RATECONFIRMED= rst.getString("is_gstRate_confirmed");
		 item_desc = rst.getString("item_Description");
	     UNIT = rst.getString("Unit");
	     _QTY = rst.getString("Qty");
	     _P = rst.getString("p");
	    W = rst.getString("w");
	    _V = rst.getString("v");
	    ID = rst.getString("id");
	    out.println(rst.getInt("id"));
}
	 
}
catch(SQLException e)
{
	out.println(e);
	response.sendRedirect("/error.jsp");
}

%>
<center>
<div class="container">
<center>
<h2>Update</h2>
</center><hr>


<form action="BoqServlet" method="GET">
<table class="table table-bordered" style="width:60%; ">
<thead>
<tr>
<th colspan="2"><center>BOQ Update form</center></th>
</tr>
</thead>
<tbody>
<input type="hidden" name="_id" value="<%=ID%>"/>
<tr>
<td>Hsn Code</td>
 <td><input type="text" name="_hsn_Code" required="required" class="form-control" value="<%= _HsnCode %>"/></td>
 </tr>
 <tr>
 <td> HSN code confirmation </td>
 <td><input type="text" name="_isHSN_CodeConfirmed" required="required" class="form-control" value="<%=_ISHsnCodeConfirmed %>"/></td>
 </tr>
 <tr>
 <td>GST Rate</td>
 <td><input type="text" name="_gst_RATE" required="required" class="form-control" value="<%=GST_RATE%>"/></td>
 </tr>
  <tr>
 <td>GST Rate Confirmation</td>
 <td><input type="text" name="GST_rate_Confirmation" required="required" class="form-control" value="<%=IS_GST_RATECONFIRMED %>"/></td>
 </tr>
  <tr>
 <td>Item Description</td>
 <td><input type="text" name="_ItemDesc" required="required" class="form-control" value="<%=item_desc %>"/></td>
 </tr>
  <tr>
 <td>Units</td>
 <td><input type="text" name="_unit_" required="required" class="form-control" value="<%=UNIT %>"/></td>
 </tr>
  <tr>
 <td>Quantity</td>
 <td><input type="text" name="_QTy" required="required" class="form-control" value="<%=_QTY%>"/></td>
 </tr>
  <tr>
 <td>P</td>
 <td><input type="text" name="_p" required="required" class="form-control" value="<%=_P%>"/></td>
 </tr>
  <tr>
 <td>W</td>
 <td><input type="text" name="__w" required="required" class="form-control" value=<%=W %> "/></td>
 </tr>
  <tr>
 <td>V</td>
 <td><input type="text" name="__V" required="required" class="form-control" value="<%=_V%>"/></td>
 </tr>
 <tr>
 <td><input type="reset" value="Reset" class="btn btn-info"/></td>
  <td><input type="submit" name="update" value="Update" class="btn btn-primary"/></td>
  </tr>
</tbody>
</table>
</form>
</div>
</center>
<center>
<a href="jkpddReport.jsp">View BOQ</a>
</center>
</body>
</html>

Когда я вставляю данные во все текстовое поле. он показывает только пустую страницу, если данные не обновляются.

Что я уже пробовал:

я отладил приложение, но не могу получить никакой подсказки

1 Ответов

Рейтинг:
1

MadMyche

String sql = "update boq set hsn_Code='"+HSN_CODE+"', is_hsnConfirmed='"+HSNCODE_CONFIRMATION+"',gst_rate='"+gst_Rate+"',is_gstRate_confirmed='"+GST_RATE_Confirmation+"',item_Description='"+ITEM_DESC+"',Unit="+_Unit+"',Qty='"+_qty+"', p='"+P+"',w='"+_W+"',v='"+V+"'_where id="+Id+"";

status = stmt.executeUpdate(sql);
Ваш код завален SQL Injection Vulnerabilities.
никогда если вы соберете SQL-запрос, объединив строки вместе. Самое лучшее, что можно сделать, это использовать Параметры

Это даст вам что-то вроде этого для работы
String sql = "update boq set hsn_Code=?, is_hsnConfirmed=?,gst_rate=?,is_gstRate_confirmed=?,item_Description=?,Unit=?,Qty=?, p=?,w=?
,v=? where id=?";

PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1, HSN_CODE);
ps.setString(2, HSNCODE_CONFIRMATION);
ps.setString(3, gst_Rate);
ps.setString(4, GST_RATE_Confirmation);
ps.setString(5, ITEM_DESC);
ps.setString(6, _Unit);
ps.setString(7, _qty);
ps.setString(8, P);
ps.setString(9, _W);
ps.setString(10, V);
ps.setString(11, Id);
сметный расчет-форма.ОСП также должно быть обновлено аналогичным образом

Ссылка:
Подготовленное заявление (Java Platform SE 7 )[^]


Member 14639038

но это тоже не работает

Member 14639038

используя HIBERNATE , я обнаружил ту же проблему.
НИКАКИХ ОШИБОК,ИСКЛЮЧЕНИЕ .
Я публикую код:

HibernateUtil.java---- - >

пакет com.mvc.util;

импорт org.hibernate.Конфигурации;
импорт org.hibernate.cfg.Configuration;

публичный класс HibernateUtil {
частная статические конфигурации конфигурации=нуль;
статический
{
пробовать
{
sessionfactory = новая конфигурация().configure("/com/mvc/resources/hibernate.cfg.xml").buildSessionFactory();

}
улов (Throwable исключая) {
// Регистрируйте исключение.
System.err.println("первоначальное создание SessionFactory не удалось." + ex);
бросить новый ExceptionInInitializerError(экс);
}
}

открытые статические конфигурации getSessionFactory() {
возврат конфигурации;

}
}



BoqDaoImpl.Ява--------&ГТ;

пакет com.mvc.dao;
импорт org.hibernate.Сессия;
импорт org.hibernate.Операция;

импортировать com.в MVC.в зернах.Сметный расчет;
импортировать com.в MVC.Дао.BoqDao;
импортировать com.в MVC.утиль.HibernateUtil;

публичный класс BoqDaoImpl реализует BoqDao{

@Ручная коррекция
общественного недействительными updateBoqData(hsnCode строку, строку hsnCode_Confirmed, gstRate строку, строку gstRate_Confirmed,
Наименование строки, строки единицы измерения, кол-во строка, строка Р1, строку В1, В1 строку, строку типа id1) {
// Todo автоматически сгенерированные заглушки метода
Сессия сессия = HibernateUtil.getSessionFactory().openSession();
Сделки на языке Transact = сессии.beginTransaction();
Сметный расчет сметный расчет = (сметный расчет)сессии.загрузить(BOQ.class, типа id1);
сметный расчет.(hsnCode setHsn_code);
сметный расчет.setIs_hsnConfirmed(hsnCode_Confirmed);
сметный расчет.setGst_rate(gstRate);
сметный расчет.setIs_gstRate_confirmed(gstRate_Confirmed);
сметный расчет.setItem_Description(наименование);
boq.setUnit(единица измерения);
boq.setQty(кол-во);
сметный расчет.шаг(Р1);
сметный расчет.в разделе setw(В1);
сметный расчет.setV(В1);
сессии.обновление(сметный расчет);
сделки.совершать();
сессии.рядом();
}

}

Бокдао.Ява----------->
пакет com.mvc.dao;

публичный интерфейс BoqDao {
общественного недействительными updateBoqData (строка hsnCode,hsnCode_Confirmed строку,строку gstRate,gstRate_Confirmed строка,строка, наименование, единица строки,строки кол-во,строки Р1, строку В1,В1 строку,строку типа id1);
}


BoqController.java----- - >

пакет com.mvc.controller;

импорт Java.Ио.Исключение IOException;
импорт java.io.PrintWriter;

импорт javax.servlet.Вызов requestdispatcher;
импорт javax.servlet.Исключение ServletException;
импорт javax.servlet.annotation.WebServlet;
импорт пакета javax.сервлет.протоколу HTTP.Он полностью реализует интерфейс;
импорт пакета javax.сервлет.протоколу HTTP.HttpServletRequest;
импорт пакета javax.сервлет.протоколу HTTP.HttpServletResponse;

импортировать com.в MVC.в зернах.Сметный расчет;
импортировать com.в MVC.Дао.BoqDao;
импортировать com.в MVC.Дао.BoqDaoImpl;

@WebServlet("/boqController")
открытый класс BoqController распространяется он полностью реализует интерфейс{
Сметный расчет бо = новый сметный расчет();
BoqDaoImpl boqDaoimpl = новый BoqDaoImpl();
public static BoqDao boqDao=null;
@Ручная коррекция
protected void doPost(HttpServletRequest request, HttpServletResponse response) вызывает исключение ServletException, IOException {
// Todo автоматически сгенерированные заглушки метода
Издания из = ответ.getWriter();
Строка hsn = request.getParameter("HSNCode");
Строка hsnCode_confirmed = request.getParameter("HsnCode_Confirmed");
Строка gst_rate = request.getParameter("GStRate");
Строка gstRate_Confirmed = request.getParameter("GSTRate_Confirmed");
Строка item_description = request.getParameter("item_Description");
String _unit = request.getParameter("единица измерения");
Количество строк = запрос.getParameter("количествах");
Строка P2 = request.getParameter("P1");
Строка W3 = request.getParameter("W2");
Строка V3 = request.getParameter("V2");
Вызов requestdispatcher РД = запрос.getRequestDispatcher("jkpddReport.ОСП");
rd.forward(запрос, ответ);


}
}


EditBoq.в JSP-------&ГТ;

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>




<title>Edit BOQ




Ведомость объемов обновления

Member 14639038

когда я нажимаю на эту кнопку, Я не получаю ответа .