jsp連接oracle數據庫實現簡單的增刪改查(附源碼)

Oracel的期末作業,寫一個簡單的web頁面連接oracle數據庫實現增刪改查

完整源碼鏈接:https://pan.baidu.com/s/1f2TfFt-5NFNspYM43J2muA

提取碼: mfdh 

開發環境:

編譯器:Eclipse

數據庫:Oracle

數據庫管理器:Navicat

效果展示:

 文件目錄:

功能: 

添加:添加新的學生信息,包括學號、姓名、性別、電話

刪除:刪除已有學生信息

更新:更改已有學生信息,包括姓名、性別、電話

查找:通過關鍵字查找相關學生信息

數據庫設計:

 學生表Student

列名 類型 約束 備註
id NUMBER(38,0) 非空、主鍵 學號
name NVARCHAR2(20) 非空 姓名
sex NVARCHAR2(2) 非空 性別
phone NVARCHAR2(25) 非空 電話

代碼部分:

數據庫

-- ----------------------------
-- Table structure for STUDENT
-- ----------------------------
DROP TABLE "SYSTEM"."STUDENT";
CREATE TABLE "SYSTEM"."STUDENT" (
  "ID" NUMBER(38) NOT NULL ,
  "NAME" NVARCHAR2(20) NOT NULL ,
  "SEX" NVARCHAR2(2) ,
  "PHONE" NVARCHAR2(25) ,
  "CLASSSID" NUMBER(38) 
)
TABLESPACE "SYSTEM"
LOGGING
NOCOMPRESS
PCTFREE 10
INITRANS 1
STORAGE (
  INITIAL 65536 
  NEXT 1048576 
  MINEXTENTS 1
  MAXEXTENTS 2147483645
  FREELISTS 1
  FREELIST GROUPS 1
  BUFFER_POOL DEFAULT
)
PARALLEL 1
NOCACHE
DISABLE ROW MOVEMENT
;

-- ----------------------------
-- Records of STUDENT
-- ----------------------------
INSERT INTO "SYSTEM"."STUDENT" VALUES ('10001', '張三', '男', '10086', NULL);
INSERT INTO "SYSTEM"."STUDENT" VALUES ('10002', '李四', '女', '10010', NULL);
INSERT INTO "SYSTEM"."STUDENT" VALUES ('10003', '王五', '男', '10001', NULL);
INSERT INTO "SYSTEM"."STUDENT" VALUES ('10004', '趙四', '男', '10000', NULL);

-- ----------------------------
-- Checks structure for table STUDENT
-- ----------------------------
ALTER TABLE "SYSTEM"."STUDENT" ADD CONSTRAINT "SYS_C0010908" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
ALTER TABLE "SYSTEM"."STUDENT" ADD CONSTRAINT "SYS_C0010909" CHECK ("NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;

信息列表

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.ResultSet"%>


<%
request.setCharacterEncoding("utf-8");

String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

/**
顯示student所有數據
1 從數據庫取出student表所有的數據
2 展示數據
*/

//獲取數據庫連接
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
Connection conn =  DriverManager.getConnection(url,"system","123");

//執行查詢
PreparedStatement pst =  conn.prepareStatement("select * from student");
ResultSet rst = pst.executeQuery();

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>index</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<link rel="stylesheet" type="text/css"  href="${basePath}css/grid.css" />
  </head>
  
  <body>
    <table class="gridtable" style="width: 100%;">
    <tr>
    		<th><a href="<%=basePath%>student/add.jsp">添加</a></th>
    		<th>
    			<form action="${basePath}student/findProcess.jsp" method="post">
    				<input type="text" name="findtext"/>
    				<input type="submit" value="查找" />
    			</form>
    		</th>
    </tr>
    <tr>
    		<th>學號</th>
    		<th>姓名</th>
    		<th>性別</th>
    		<th>電話</th>
    		<th>操作</th>
    	</tr>
    <%
    while(rst.next()) {
    %>
    	<tr align="center">
    		<td><%=rst.getInt("id") %></td>
    		<td><%=rst.getString("name") %></td>
    		<td><%=rst.getString("sex") %></td>
    		<td><%=rst.getLong("phone") %></td>
    		<td>
    			<a href="<%=basePath%>student/update.jsp?id=<%=rst.getInt("id")%>">更新</a>&nbsp;
    			<a href="<%=basePath%>student/delete.jsp?id=<%=rst.getInt("id")%>">刪除</a>
    		</td>
    	</tr>
    <%
    
    }
    rst.close();
    pst.close();
    conn.close();
    %>
    	
    </table>
  </body>
</html>

添加

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.ResultSet"%>


<%

String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

/**
接受用戶輸入
將數據傳遞給 process頁面處理
*/

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<link rel="stylesheet" type="text/css"  href="${basePath}css/grid.css" />
  </head>
  
  <body>
    <form action="${basePath}student/addProcess.jsp" method="post">
			<table id="datagrid" class="gridtable" style="width: 100%;">
				<tr>
					<th>
						學號
					</th>
					<td>
						<input type="text" name="id" value="" />
					</td>
				</tr>
				<tr>
					<th>
						姓名
					</th>
					<td>
						<input type="text" name="name" value="" />
					</td>
				</tr>
				<tr>
					<th>
						性別
					</th>
					<td>
						<input type="text" name="sex" value="" />
					</td>
				</tr>
				<tr>
					<th>
						電話
					</th>
					<td>
						<input type="text" name="phone" value="" />
					</td>
				</tr>
				<tr>
					<td colspan="2">
						<input type="submit" name="sub" value="提交" />
					</td>
				</tr>

				<!-- Data End-->
			</table>
		</form>
		<tr>
    		<th><a href="<%=basePath%>student/list.jsp">返回</a></th>
  	 	</tr>
  </body>
</html>

 處理添加信息

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.ResultSet"%>


<%

String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

/**
1 接收傳遞新增數據需要的參數
2 存入數據庫
*/
request.setCharacterEncoding("utf-8");
int id = Integer.parseInt(request.getParameter("id"));
String name = request.getParameter("name");

String sex = request.getParameter("sex");
long phone = Long.parseLong(request.getParameter("phone"));

//獲取數據庫連接
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
Connection conn =  DriverManager.getConnection(url,"system","123");

//執行查詢
PreparedStatement pst =  conn.prepareStatement("insert into student(id,name,sex,phone) values(?,?,?,?)");
//處理參數
//pst.setInt(1,id);
//pst.setString(2,name);
//pst.setString(3,sex);
//pst.setInt(4,phone);

//setObject 用於做封裝處理
pst.setObject(1,id);
pst.setObject(2,name);
pst.setObject(3,sex);
pst.setObject(4,phone);

int row = pst.executeUpdate();


pst.close();
conn.close();

out.print("<h1>更新行數 :"+row+"</h1>");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<link rel="stylesheet" type="text/css"  href="${basePath}css/grid.css" />
  </head>
  
  <body>
  	<tr>
    	<th><a href="<%=basePath%>student/list.jsp">返回</a></th>
    </tr>
  </body>
</html>

 刪除

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.ResultSet"%>


<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

/**
1 接收傳遞修改數據需要的參數
2 執行刪除
*/

int id = Integer.parseInt(request.getParameter("id"));

//獲取數據庫連接
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
Connection conn =  DriverManager.getConnection(url,"system","123");

//執行查詢
PreparedStatement pst =  conn.prepareStatement("delete from student where id=?");
//處理參數

//setObject 用於做封裝處理
pst.setObject(1,id);

int row = pst.executeUpdate();

pst.close();
conn.close();

out.print("<h1>更新行數 :"+row+"</h1>");
%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<link rel="stylesheet" type="text/css"  href="${basePath}css/grid.css" />
  </head>
  
  <body>
  	<tr>
    	<th><a href="<%=basePath%>student/list.jsp">返回</a></th>
    </tr>
  </body>
</html>

處理查找信息

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="java.sql.*"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.ResultSet"%>


<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

//取得參數
request.setCharacterEncoding("UTF-8");
String find = request.getParameter("findtext");

//查詢數據庫 
//獲取數據庫連接
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
Connection conn =  DriverManager.getConnection(url,"system","123");

Statement stmt = conn.createStatement();               //注意Statement與PreparedStatement的區別
String sql="select * from student where id like '%"+find+"%' or name like '%"+find+"%' or sex like '%"+find+"%' or phone like '%"+find+"%'";
ResultSet rs=stmt.executeQuery(sql);

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    <title>index</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<link rel="stylesheet" type="text/css"  href="${basePath}css/grid.css" />
  </head>
  
  <body>
  	<table class="gridtable" style="width: 100%;">
	    <tr>
	    		<th><a href="<%=basePath%>student/add.jsp">添加</a></th>
	    		<th>
	    			<form action="${basePath}student/findProcess.jsp" method="post">
	    				<input type="text" name="findtext"/>
	    				<input type="submit" value="查找" />
	    			</form>
	    		</th>
	    </tr>
	    <tr>
	    		<th>學號</th>
	    		<th>姓名</th>
	    		<th>性別</th>
	    		<th>電話</th>
	    		<th>操作</th>
	    	</tr>
	    <%
	    while(rs.next()) {
	    %>
	    	<tr align="center">
	    		<td><%=rs.getInt("id") %></td>
	    		<td><%=rs.getString("name") %></td>
	    		<td><%=rs.getString("sex") %></td>
	    		<td><%=rs.getLong("phone") %></td>
	    		<td>
	    			<a href="<%=basePath%>student/update.jsp?id=<%=rs.getInt("id")%>">更新</a>&nbsp;
	    			<a href="<%=basePath%>student/delete.jsp?id=<%=rs.getInt("id")%>">刪除</a>
	    		</td>
	    	</tr>
	    <%
	    
	    }
	    rs.close();
	    stmt.close();
	    conn.close();
	    %>
	    	
	  </table>
  </body>
</html>

 更新

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.ResultSet"%>


<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

/**
0 接收 修改數據的id
1 將原來的數據 顯示(數據庫查詢)
2 接收修改數據
3 將修改後的數據提交給 process頁面
*/

//取得參數
int id = Integer.parseInt(request.getParameter("id"));


//查詢數據庫 (按id查詢)
//獲取數據庫連接
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
Connection conn =  DriverManager.getConnection(url,"system","123");

//執行查詢
PreparedStatement pst =  conn.prepareStatement("select * from student where id=?");
//處理參數
pst.setObject(1,id);
ResultSet rst = pst.executeQuery();
//rst  默認指向MetaData
//next 之後 指向第一行數據
rst.next();
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>index</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<link rel="stylesheet" type="text/css"  href="${basePath}css/grid.css" />
  </head>
  
  <body>
    <form action="${basePath}student/updateProcess.jsp" method="post">
			<table id="datagrid" class="gridtable" style="width: 100%;">
				<input type="hidden" name="id" value="<%=rst.getInt("id")%>" />
				<tr>
					<th>
						name
					</th>
					<td>
						<input type="text" name="name" value="<%=rst.getString("name")%>" />
					</td>
				</tr>
				<tr>
					<th>
						sex
					</th>
					<td>
						<input type="text" name="sex" value="<%=rst.getString("sex")%>" />
					</td>
				</tr>
				<tr>
					<th>
						phone
					</th>
					<td>
						<input type="text" name="phone" value="<%=rst.getLong("phone")%>" />
					</td>
				</tr>
				<tr>
					<td colspan="2">
						<input type="submit" name="sub" value="提交" />
					</td>
				</tr>

				<!-- Data End-->
			</table>
		</form>
  </body>
</html>
<%
rst.close();
pst.close();
conn.close();
%>

 處理更新信息

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.ResultSet"%>


<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

/**
1 接收傳遞修改數據需要的參數
2 執行更新
*/
request.setCharacterEncoding("utf-8");
int id = Integer.parseInt(request.getParameter("id"));
String name = request.getParameter("name");
String sex = request.getParameter("sex");
long phone = Long.parseLong(request.getParameter("phone"));

//獲取數據庫連接
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
Connection conn =  DriverManager.getConnection(url,"system","123");

//執行查詢
PreparedStatement pst =  conn.prepareStatement("update student set name=?,sex=?,phone=? where id=?");
//處理參數

//setObject 用於做封裝處理
pst.setObject(4,id);
pst.setObject(1,name);
pst.setObject(2,sex);
pst.setObject(3,phone);

int row = pst.executeUpdate();

pst.close();
conn.close();

out.print("<h1>更新行數 :"+row+"</h1>");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>index</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<link rel="stylesheet" type="text/css"  href="${basePath}css/grid.css" />
  </head>
  
  <body>
  	<tr>
    	<th><a href="<%=basePath%>student/list.jsp">返回</a></th>
    </tr>
  </body>
</html>

 

發佈了225 篇原創文章 · 獲贊 76 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章