我正在开发一个Web应用程序,其中我有一个带表的jsp页面。该表由数据库的值填充,除了一列可编辑且为空以供用户输入数据。我的问题是,一旦用户将数据输入可编辑单元格并按下提交按钮,我想更新数据库表。谁可以帮我这个事。下面是我的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">
<%@ page import="com.employee.com.LoginDetails" %>
<%@ page import="java.sql.*" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<link rel="stylesheet" href="css/NewFile2.css">
</head>
<body>
<img src="images/Crevavi_Plain.jpg" background-color="white" width="300" height="70" style="float:right; margin-right:200px;"/></br>
<h1 style="margin-left:20px; margin-top:10px;"><font size="8" color="Black"> Notification </font></h1>
<fieldset style="float: center; width:1680px; height:900px; background-color:white; border-color:black; margin-top:10px;"></br></br>
<link rel="stylesheet" href="css/table.css">
<fieldset style="float: center; width:250px; height: 450px; background-color:white; border-color:black; margin-top:10px;margin-left:10px;">
<fieldset style="float: center; width:900px; height:600px; background-color:; border-color:grey; margin-left:275px; margin-top:-450px;"></br>
<link rel="stylesheet" href="css/table.css">
<%
final String UserName,Password;
String name="",employeeid="",projectmanager="";
UserName = LoginDetails.username;
Password = LoginDetails.password;
String employname="",employId="",fromdate="",todate="",reason="";
ResultSet resultset = null;
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Connection connection = null;
try {
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/students","root","root");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Statement statement = null;
try {
statement = connection.createStatement();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
resultset = statement.executeQuery("SELECT * FROM employmanage WHERE Username = '"+UserName+"'");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
while(resultset.next()){
projectmanager = resultset.getString(1);
}
}catch(Exception e){
e.printStackTrace();
}
try {
resultset = statement.executeQuery("SELECT * FROM leavedetails WHERE Projectmanager = '"+projectmanager+"'");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {%>
<TABLE>
<TR>
<TH>Employee Name</TH>
<TH>Employee ID</TH>
<TH>From Date</TH>
<TH>To Date</TH>
<TH>Reason</TH>
<TH>Status</TH>
</TR>
<% while(resultset.next()){ %>
<TR>
<TD> <%= resultset.getString(1) %></TD>
<TD> <%= resultset.getString(2) %></TD>
<TD> <%= resultset.getString(4) %></TD>
<TD> <%= resultset.getString(5) %></TD>
<TD> <%= resultset.getString(6) %></TD>
<TD contenteditable='true' %></TD>
<% }
}catch(Exception e){
e.printStackTrace();
}
%>
</fieldset>
</body></html>
答案 0 :(得分:1)
理想情况下,您应该创建一个文件来处理数据库操作, 因此,从JSP页面中删除所有与数据库相关的代码。
一旦用户点击进入进行ajax调用并将编辑后的值发布到servlet或控制器中,无论你使用哪个。
然后创建服务和DAO文件
您将在控制器中收到更改的值,将该值传递给服务文件并在该文件中创建所需的对象并将该对象传递给DAO层,在该文件中写入代码以处理数据库操作。
编写代码的方式不是理想的方式,不应该遵循。