jsp操作MySQL实现查询/插入/删除功能示例

前端技术 2023/09/01 JSP
直接贴代码吧:
首先,index_test.jsp页面的代码如下:
复制代码 代码如下:

<%@ page language=\"java\" pageEncoding=\"utf-8\"%>
<%@ page contentType=\"text/html;charset=utf-8\"%> 
<% 
   request.setCharacterEncoding(\"UTF-8\"); 
   response.setCharacterEncoding(\"UTF-8\"); 
   response.setContentType(\"text/html;charset=utf-8\"); 
%>
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\">
<head>
<title>人员操作</title>
<META http-equiv=Content-Type content=\"text/html; charset=utf-8\">
<style>
#popDivAdd,#popDivDelete {
position: absolute;
visibility: hidden;
overflow: hidden;
border: 2px solid #AEBBCA;
background-color: #EEF1F8;
cursor: move;
padding: 1px;
}

#popTitle {
background: #9DACBF;
height: 20px;
line-height: 20px;
padding: 1px;
}

#popForm {
padding: 2px;
}

.title_left {
font-weight: bold;
padding-left: 5px;
float: left;
}

.title_right {
float: right;
}

#popTitle .title_right a {
color: #000;
text-decoration: none;
}

#popTitle .title_right a:hover {
text-decoration: underline;
color: #FF0000;
}
</style>
<script>
function showPopup(type) {//弹出层
//var objDiv = null;//objDiv是目标div
if(type == \'add\'){
objDiv = document.getElementById(\"popDivAdd\");
}
else
if(type = \'delete\'){
objDiv = document.getElementById(\"popDivDelete\");
}
objDiv.style.top = \"50px\";//设置弹出层距离上边界的距离
objDiv.style.left = \"200px\";//设置弹出层距离左边界的距离
objDiv.style.width = \"300px\";//设置弹出层的宽度
objDiv.style.height = \"220px\";//设置弹出层的高度
//objDiv.style.display = \"block\";
objDiv.style.visibility = \"visible\";
}
function hidePopup(type) {//关闭层
//var objDiv = null;//objDiv是目标div
if(type == \'add\'){
objDiv = document.getElementById(\"popDivAdd\");
}
else 
if(type = \'delete\'){
objDiv = document.getElementById(\"popDivDelete\");
}
objDiv.style.visibility = \"hidden\";
}
</script>
</head>
<body>
<!-- 表单div -->
<form action=\"insert_test.jsp\" method=\"post\">
<p>
 ID :<input type=\"text\" name=\"id\" value=\"0\" /></br> 
姓名:<input type=\"text\" name=\"name\" value=\"\" /></br>
性别:<input type=\"text\" name=\"sex\" value=\"\" /></br>
年龄:<input type=\"text\" name=\"age\" value=\"\" /></br>
</p> 
    <input type=\"submit\" value=\"提交\" />  
   <input type=\"reset\" value=\"重置\" />  
   <input type=\"reset\" value=\"取消\" onclick=\"hidePopup(\'add\')\" />
</form>
</div>
</div>
<div id=\"popDivDelete\"><!-- 删除人员的div -->
<div id=\"popTitle\"><!-- 标题div -->
<span class=\"title_left\">删除人员</span> <span class=\"title_right\">
<a href=\"#\" onclick=\"hidePopup(\'delete\');\">关闭</a> </span>
</div>
<div id=\"popForm\"><!-- 表单div -->
<form action=\"delete_test.jsp\" method=\"post\">
<p>
 ID :<input type=\"text\" name=\"id\" value=\"\" /> </br> 
姓名:<input type=\"text\" name=\"name\" value=\"\" /> </br>
</p> 
    <input type=\"submit\" value=\"提交\" />  
   <input type=\"reset\" value=\"重置\" />  
   <input type=\"reset\" value=\"取消\" onclick=\"hidePopup(\'delete\')\" />
</form>
</div>
</div>
<p>
<input name=\"\" type=\"button\" onclick=\"location.href = \'query_test.jsp\'\" value=\"查询\" />  
<input name=\"\" type=\"button\" onclick=\"showPopup(\'add\')\" value=\"添加\" />  
<input name=\"\" type=\"button\" onclick=\"showPopup(\'delete\')\" value=\"删除\" />
</p>

<script type=\"text/javascript\">
/*-------------------------鼠标左键拖动---------------------*/
/*--------当不需要实现此功能时,可以将这一部分代码删除------------*/
var objDiv = document.getElementById(\"popDiv\");
var isIE = document.all ? true : false;//判断浏览器类型
document.onmousedown = function(evnt) {//当鼠标左键按下后执行此函数
var evnt = evnt ? evnt : event;
if (evnt.button == (document.all ? 1 : 0)) {
mouseD = true;//mouseD为鼠标左键状态标志,为true时表示左键被按下
}
}

objDiv.onmousedown = function(evnt) {
objDrag = this;//objDrag为拖动的对象
var evnt = evnt ? evnt : event;
if (evnt.button == (document.all ? 1 : 0)) {
mx = evnt.clientX;
my = evnt.clientY;
objDiv.style.left = objDiv.offsetLeft + \"px\";
objDiv.style.top = objDiv.offsetTop + \"px\";
if (isIE) {
objDiv.setCapture();
//objDiv.filters.alpha.opacity = 50;//当鼠标按下后透明度改变
} else {
window.captureEvents(Event.MOUSEMOVE);//捕获鼠标拖动事件
//objDiv.style.opacity = 0.5;//当鼠标按下后透明度改变
}
}
}
document.onmouseup = function() {
mouseD = false;//左键松开
objDrag = \"\";
if (isIE) {
objDiv.releaseCapture();
//objDiv.filters.alpha.opacity = 100;//当鼠标左键松开后透明度改变
} else {
window.releaseEvents(objDiv.MOUSEMOVE);//释放鼠标拖动事件
//objDiv.style.opacity = 1;//当鼠标左键松开后透明度改变
}
}

document.onmousemove = function(evnt) {
var evnt = evnt ? evnt : event;
if (mouseD == true && objDrag) {
var mrx = evnt.clientX - mx;
var mry = evnt.clientY - my;
objDiv.style.left = parseInt(objDiv.style.left) + mrx + \"px\";
objDiv.style.top = parseInt(objDiv.style.top) + mry + \"px\";
mx = evnt.clientX;
my = evnt.clientY;
}
}
</script>
</body>
</html>

query_test.jsp页面代码如下:
复制代码 代码如下:

<%@ page language=\"java\" import=\"java.util.*,java.sql.*\" pageEncoding=\"utf-8\"%>
<%@ page contentType=\"text/html;charset=utf-8\"%>
<%
request.setCharacterEncoding(\"UTF-8\");
response.setCharacterEncoding(\"UTF-8\");
response.setContentType(\"text/html; charset=utf-8\");
%>
<html>
<body>
<%
Connection con=null;
String url=\"jdbc:mysql://localhost/html_db?user=root&password=123456\";
//html_db为数据库名
Class.forName(\"org.gjt.mm.mysql.Driver\").newInstance();//新建实例
Connection conn= DriverManager.getConnection(url);//建立连接
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql=\"select * from person_tb\";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
ID:<%=rs.getString(\"id\")%> </br>
姓名:<%=rs.getString(\"name\")%></br>
性别:<%=rs.getString(\"sex\")%></br>
年龄:<%=rs.getString(\"age\")%></br></br>
<%}%>
<%out.print(\"恭喜你!数据库操作成功! \");%>
<%
rs.close();
stmt.close();
conn.close();
%>
</br>
<input name=\"\" type=\"button\" onclick=\"location.href = \'index_test.jsp\'\" value=\"返回\" />
</body>
</html>

insert_test.jsp页面代码如下:

复制代码 代码如下:

<%@ page language=\"java\" import=\"java.util.*,java.sql.*\" pageEncoding=\"utf-8\"%>
<%@ page contentType=\"text/html;charset=utf-8\"%>
<%
request.setCharacterEncoding(\"UTF-8\");
response.setCharacterEncoding(\"UTF-8\");
response.setContentType(\"text/html; charset=utf-8\");
%>
<htnl>
<head>
<title>往数据库插入数据</title>
</head>
<body>
<%
String id=request.getParameter(\"id\"); //从表单获得
String name=request.getParameter(\"name\"); //从表单获得
String sex=request.getParameter(\"sex\"); //从表单获得
String age=request.getParameter(\"age\"); //从表单获得

try
{
/** 连接数据库参数 **/
String driverName = \"com.mysql.jdbc.Driver\"; //驱动名称
String DBUser = \"root\"; //mysql用户名
String DBPasswd = \"123456\"; //mysql密码
String DBName = \"html_db\"; //数据库名

String connUrl = \"jdbc:mysql://localhost/\" + DBName + \"?user=\" + DBUser + \"&password=\" + DBPasswd;
Class.forName(driverName).newInstance();
Connection conn = DriverManager.getConnection(connUrl);
Statement stmt = conn.createStatement();
stmt.executeQuery(\"SET NAMES UTF8\");
String insert_sql = \"insert into person_tb values(\'\" + id + \"\',\'\" + name + \"\',\'\" + sex + \"\',\'\" + age + \"\')\";
String query_sql = \"select * from person_tb\";

try {
stmt.execute(insert_sql);
}catch(Exception e) {
e.printStackTrace();
}
try {
ResultSet rs = stmt.executeQuery(query_sql);
while(rs.next()) {
%>
ID:<%=rs.getString(\"id\")%> </br>
姓名:<%=rs.getString(\"name\")%> </br>
性别:<%=rs.getString(\"sex\")%> </br>
年龄:<%=rs.getString(\"age\")%> </br> </br>
<%
}
}catch(Exception e) {
e.printStackTrace();
}
//rs.close();
stmt.close();
conn.close();
}catch (Exception e) {
e.printStackTrace();
}
%>
</br>
<input name=\"\" type=\"button\" onclick=\"location.href = \'index_test.jsp\'\" value=\"返回\" />  
</body>
</html>

delete_test.jsp页面的代码如下:
复制代码 代码如下:

<%@ page language=\"java\" import=\"java.util.*,java.sql.*\" pageEncoding=\"UTF-8\"%>
<%@ page contentType=\"text/html;charset=UTF-8\"%>
<% 
   request.setCharacterEncoding(\"UTF-8\"); 
   response.setCharacterEncoding(\"UTF-8\"); 
   response.setContentType(\"text/html; charset=UTF-8\"); 
%>
<htnl>
<head>
<title>删除人员</title>
</head>
<body>
<%
String id=request.getParameter(\"id\"); //从表单获得 
String name=request.getParameter(\"name\"); //从表单获得
try 

/** 连接数据库参数 **/
String driverName = \"com.mysql.jdbc.Driver\"; //驱动名称
String DBUser = \"root\"; //mysql用户名
String DBPasswd = \"hel610\"; //mysql密码
String DBName = \"html_db\"; //数据库名
String connUrl = \"jdbc:mysql://localhost/\" + DBName + \"?user=\" + DBUser + \"&password=\" + DBPasswd;
String query_sql = \"select id,name,sex,age from person_tb\";
String delete_sql = \"\";
Class.forName(driverName).newInstance();
Connection conn = DriverManager.getConnection(connUrl);
Statement stmt = conn.createStatement();
try{ 
if(id != null && id != \"\"){
out.println(\"删除了id=\" + id + \"的人。</br></br>\");
delete_sql = \"delete from person_tb where id=\" + id;
}
else if(name != null && name != \"\"){
out.println(\"删除了name=\" + name + \"的人。</br></br>\");
delete_sql = \"delete from person_tb where name=\'\" + name + \"\'\";
}else{
out.println(\"请至少输入ID、姓名中的一个!</br></br>\");
}
}catch(Exception e){
e.printStackTrace();
}   
try { 
stmt.execute(delete_sql); 
}catch(Exception e){
e.printStackTrace();
}
try { 
ResultSet rs = stmt.executeQuery(query_sql);   
while(rs.next()) {
%>
ID:<%=rs.getString(\"id\")%>
</br> 姓名:<%=rs.getString(\"name\")%>
</br> 性别:<%=rs.getString(\"sex\")%>
</br> 年龄:<%=rs.getString(\"age\")%>
</br>
</br>
<%
}    
}catch(Exception e) {
e.printStackTrace();

//rs.close();
stmt.close();
conn.close(); 
}catch (Exception e) {
e.printStackTrace();

%>
</br>
<input name=\"\" type=\"button\" onclick=\"location.href = \'index_test.jsp\'\" value=\"返回\" />
</body>
</html>

在浏览器直接访问index_test.jsp页面,点击删除按钮,填入ID或者姓名之中的任何一个并提交即可进行删除:
 
执行删除前(下左图)、后(下右图)数据库的内容显示为:
 

总的来说,查询、插入与删除的功能都实现了。

现在发现的问题是:本来是实现的是弹出层的位置是可以移动的,但现在移动不了了,具体原因在于鼠标拖动部分的第一句代码:var objDiv = document.getElementById(\"popDiv\");即指定拖动对象时,没有指定好。正在找方法解决。有谁有比较好的方法,请帮下忙吧,多谢了!

本文地址:https://www.stayed.cn/item/2138

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。