版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、使用JSP+SERVLET+JDBC实现对数据库的增删改查首先,打开sql*plus,输入用户名(我用的 scott)密码(我设置的是 tiger)。先建个表student. Create table stude nt ( id nu mber(30) not n ull primary key, n ame varchar(50), age nu mber(30), gen der varchar(30), major varchar(50);1,打开 myeclipse (我用的是 myeclipse8.5 )新建一个 web projectlili Edit Itcltm曲*"
2、tlrip>Uu販雨卜Upwi耐Lnitrpnav AfipicrtEn PrajK:Ckuad+w护血昭ETCirl+Ehofr+VV出 Wrh也 Am PraiKtOrl+S母 HiarE Wtb咼 Srin- 4=ft RrfipHt.Sui.r Al出Rm/匕声& Chrs寸 liWtriX#Rmarm-154u>1 亡iNviTiihrs-L3 FotivrUw 饭时|郁ToF Fi»W+P卜话 HI丘 l?irK*d TrmpJrin;应 AP iAdAiiuiid T«rTliii«| XMTM-!Krf TfimpUlKl注 I
3、nsert.皿 IjqpMT.-耳 EJB1 SiitutiK HimPenp«ni««Aic+rwLK EJB3 Enti Bet»EJB3 Mosagr &Ekwnl 附m网i|述 XML i AdaiTK«d rMTidaivL'i过 XML iSMir Tempi占 rT|diia+ErmiBai.5 SMk4 TiwnflihhJUtian.Ji"申申3呼"GJ旦 MabLu Aorm鼻 LNL1 Mnd«ljrLlJ1111-1 JII HR 13鬥理s-。亨譽广 a, u£i
4、 fl» s * ae? _± ta i I响却10 Tepiweiciiod扑点号1-1Cgi ChrfH 曰 ,E h*DpCIFd L-lj 口7匡|鄭遇鶯口 丹击MHlAtlurilAz 1 E l& £B 舉 B1 eS Bl 已曰iXpaa-ul亠r/pfl.nQ-|b2,在project name中输入合法名字,比如normal3,新建的normal工程4, 在 src目录下建一个包,右击 src选择 new 在选择 package5,输入合法名字比如bean6, 在 bean目录下建一个 class,右击 bean选择 new 再选择 cl
5、ass7,输入名字Page完整的Page.java代码如下package bea n;public class Page private int totalPage;private int curre ntPage;private int totalRecord;private int curre ntRecord;private int pageSize=8;/获得和设置当前页public int getCurre ntPage()retur n curre ntPage;public void setCurre ntPage(i nt curre ntRecord,i nt pageSiz
6、e) if(curre ntRecord%pageSize=0)curre ntPage=curre ntRecord/pageSize;elsecurre ntPage=curre ntRecord/pageSize+1;/获得和设置当前记录public int getCurre ntRecord()retur n curre ntRecord;public void setCurre ntRecord(i nt curre ntRecord)this.curre ntRecord=curre ntRecord;/获得和设置每页记录数量public int getPageSize()retu
7、rn pageSize;public void setPageSize(int pageSize)this.pageSize=pageSize;/获得和设置总页数public int getTotalPage()return totalPage;public void setTotalPage(int totalRecord,int pageSize)if(totalRecord%pageSize=0)totalPage=totalRecord/pageSize;else totalPage=totalRecord/pageSize+1;/获得和设置总记录public int getTotal
8、Record()return totalRecord;public void setTotalRecord(int totalRecord) this.totalRecord=totalRecord;8,用相同的方法建一个 StudentInfo 类 完整的 StudentInfo.java 代码如下 package bean;public class StudentInfo private int id;/学号private String name;/姓名private int age;/年龄private String gender;/性别private String major;/专业p
9、ublic StudentInfo()public StudentInfo(int id,String name,int age,String gender,String major)this.id=id;=name;this.age=age;this.gender=gender;this.major=major;public int getId()return id;public void setId(int id)this.id=id;public String getName()return name;public void setName(String name)th
10、=name;public int getAge()return age;public void setAge(int age)this.age=age;public String getGender()return gender;public void setGender(String gender)this.gender=gender;public String getMajor()return major;public void setMajor(String major)this.major=major;AllServlet 类9,在 src 目录下添加另一个包 dbser
11、vlet 在该包中建立一个 完整的 AllServlet.java 代码如下package dbservlet;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;import javax.servlet.ServletEx
12、ception;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import bean.Page;import bean.StudentInfo;public class AllServlet extends HttpServlet /*/private static final long serialVersionUID = 1L;/doPost 方法public void doPos
13、t(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8");String methodName=request.getParameter("methodName");int method=Integer.parseInt(methodName);tr
14、y switch(method)case 0:insert(request,response);case 1:difpage(request,response);break;case 2:delete(request,response);break;case 3:update(request,response);break;case 4:update1(request,response); break;case 5: dispatch(request,response); break; catch (ClassNotFoundException e) / TODO Auto-generated
15、 catch blocke.printStackTrace(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace();/doGet 方法public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException doPost(request,response);/数据库连接方法public Connection connect() throws
16、ClassNotFoundException, SQLException Connection conn=null;Class.forName("oracle.jdbc.driver.OracleDriver");String url="jdbc:oracle:thin:localhost:1521:orcl"String user="scott"String password="tiger"conn=DriverManager.getConnection(url,user,password);return con
17、n;/关闭数据库资源public void close(Statement stat,Connection conn) throws SQLException if(stat!=null)stat.close();if(conn!=null)conn.close();/插入方法throwspublic void insert(HttpServletRequest request, HttpServletResponse response) ClassNotFoundException, SQLExceptionConnection conn=null;Statement stat=null;S
18、tring id=request.getParameter("id");String name=request.getParameter("name");String age=request.getParameter("age");String gender=request.getParameter("gender");String major=request.getParameter("major"); conn=connect();stat=conn.createStatement();st
19、at.execute("insert into student(id,name,age,gender,major) values("+id+",'"+name+"',"+age+",'"+gender+"','"+major+"')");close(stat,conn);/查询方法public ArrayList<StudentInfo> select(String id,String name) throws Cl
20、assNotFoundException, SQLExceptionConnection conn=null;Statement stat=null;ResultSet rs=null;conn=connect();stat=conn.createStatement();ArrayList<StudentInfo> result=new ArrayList<StudentInfo>(); if(id=""&&name="")rs=stat.executeQuery("select * from stude
21、nt");if(id!=""&&name="") rs=stat.executeQuery("select * from student where id="+id+"");if(id=""&&name!="")rs=stat.executeQuery("select * from student where name='"+name+"'"); if(id!="&qu
22、ot;&&name!="")rs=stat.executeQuery("select * from student where id="+id+" and name='"+name+"'");while(rs.next()StudentInfo st=new StudentInfo();st.setId(rs.getInt("id");st.setName(rs.getString("name");st.setAge(rs.getInt(&qu
23、ot;age");st.setGender(rs.getString("gender");st.setMajor(rs.getString("major");result.add(st); if(rs!=null) rs.close();close(stat,conn); return result;/条件查询跳转public void dispatch(HttpServletRequest request, HttpServletResponse response) throws ClassNotFoundException, SQLExce
24、ption, ServletException, IOExceptionString id5=request.getParameter("id");String name5=request.getParameter("name"); if(select(id5,name5).isEmpty() request.getRequestDispatcher("selectnothing.jsp").forward(request, response); else request.setAttribute("result"
25、, select(id5,name5); request.getRequestDispatcher("idnameselect.jsp").forward(request, response);/设置分页相关参数方法public Page setpage(HttpServletRequest request, HttpServletResponse response) throws ClassNotFoundException, SQLExceptionString crd=request.getParameter("currentRecord");/S
26、tring id=request.getParameter("id");/ String name=request.getParameter("name");ArrayList<StudentInfo> result=select("","");Page pager=new Page(); pager.setTotalRecord(result.size(); pager.setTotalPage(result.size(),pager.getPageSize(); if(crd!=null)int c
27、urrentRecord=Integer.parseInt(crd); pager.setCurrentRecord(currentRecord); pager.setCurrentPage(currentRecord,pager.getPageSize();return pager;/获得分页显示的子集public void difpage(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, ClassNotFoundException, SQLExce
28、ption/ String id=request.getParameter("id");/ String name=request.getParameter("name");ArrayList<StudentInfo> result=select("","");Page pager=new Page(); pager=setpage(request,response); List<StudentInfo> subResult=null;int currentRecord=pager.getC
29、urrentRecord(); if(currentRecord=0)if(pager.getTotalRecord()<8) subResult=(List<StudentInfo>) result.subList(0,pager.getTotalRecord(); elsesubResult=(List<StudentInfo>) result.subList(0,pager.getPageSize();else if(pager.getCurrentRecord()+pager.getPageSize()<result.size() subResult
30、=(List<StudentInfo>) result.subList(pager.getCurrentRecord(),pager.getCurrentRecord()+pager.getPageSize(); else subResult=(List<StudentInfo>) result.subList(pager.getCurrentRecord(),result.size(); request.setAttribute("pager", pager); request.setAttribute("subResult",
31、 subResult); request.getRequestDispatcher("layout.jsp").forward(request, response); /信息删除方法 public void delete(HttpServletRequest request, HttpServletResponse response) throws ClassNotFoundException, SQLException, ServletException, IOExceptionConnection conn=null;Statement stat=null; conn=
32、connect(); stat=conn.createStatement();String id2=request.getParameter("id"); stat.execute("delete from student where id="+id2+""); request.getRequestDispatcher("delete.jsp").forward(request, response);/信息修改方法public void update1(HttpServletRequest request, Htt
33、pServletResponse response) throws ClassNotFoundException, SQLException, ServletException, IOExceptionString id4=request.getParameter("id"); request.setAttribute("result", select(id4,""); request.getRequestDispatcher("update1.jsp").forward(request, response);th
34、rowsset wherepublic void update(HttpServletRequest request, HttpServletResponse response) ClassNotFoundException, SQLException, ServletException, IOExceptionConnection conn=null;Statement stat=null;String id3=request.getParameter("id");String name3=request.getParameter("name");St
35、ring age3=request.getParameter("age");String gender3=request.getParameter("gender");String major3=request.getParameter("major");conn=connect();stat=conn.createStatement();stat.execute("update student id="+id3+",name='"+name3+"',age="
36、;+age3+",gender='"+gender3+"',major='"+major3+"' id="+id3+"");request.setAttribute("result", select(id3,""); request.getRequestDispatcher("update.jsp").forward(request, response);10,在 webRoot 目录下添加以下 .jsp 文件10.1 pu
37、tin.jsp<% page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%String path = request.getContextPath();String basePath request.getScheme()+":/"+request.getServerName()+":"+request.getServerPort()+path+"/" %><!DOC
38、TYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN"><html><head><base href="<%=basePath%>"><title> 学生信息输入 </title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content
39、="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&
40、quot; type="text/css" href="styles.css">-><script type="text/javascript"">function validate()var id=document.forms0.id.value;var name=.value;var age=document.forms0.age.value;var major=document.forms0.major.value;if(id<=0)alert(&q
41、uot; 学号不能为空,请输入学号! ");return false;else if(name.length<=0)alert(" 姓名不能为空,请输入姓名! ");return false;else if(age<=0)alert(" 请输入合法年龄! ");return false;else if(major.length<=0)alert(" 专业不能为空,请输入所学专业!");return false;elsereturn true;/document.getElementById("fo
42、rm").submit();</script></head><body><br><center><h2> 学生信息输入 </h2><hr><form action="AllServlet" method="post" id="form" onSubmit="return validate()" ><input type="hidden" name="methodN
43、ame" value="0"/><h4> 学号: <input type="text" name="id" class="required:true" title=" 学号必须为数字 "></input><br></h4><h4> 姓名: <input type="text" name="name"title=" 姓名不能为空 "><
44、;/input><br></h4> <h4> 年龄: <input type="text" name="age"title=" 年龄必须为数字 "></input><br></h4> <h4> 性别: <input type="radio" name="gender" value=" 男"> 男<input type="radio" na
45、me="gender" value=" 女"> 女 <br></h4><h4> 专业: <input type="text" name="major"title=" 专业不能为空 "></input><br></h4><input type="submit" value=" 提交 "/></form><br><a href=&
46、quot;AllServlet?methodName=<%=1 %>&id=<%="" %>&name=<%="" %>"> 查看已输 入信息 </a></center></body></html>10.2 layout.jsp<% page language="java" import="java.util.*" pageEncoding="UTF-8"%><%
47、 page import="bean.StudentInfo" %><% page import="bean.Page" %><%String path = request.getContextPath();String basePath request.getScheme()+":/"+request.getServerName()+":"+request.getServerPort()+path+"/" %><!DOCTYPE HTML PUBLIC &q
48、uot;-/W3C/DTD HTML 4.01 Transitional/EN"><html><head><base href="<%=basePath%>"><title> 学生信息 </title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"
49、><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
50、/css" href="styles.css">-><script type="text/javascript">function confirmdialog()if(window.confirm(" 您确定要删除此条信息? ")return true;else/ alert(" 取消删除! ");return false; </script> </head><body><br><h1> 学生信息 </h1>
51、<br> <hr><br><h3> 全部学生信息如下 </h3><table width="510" border="100" cellSpacing=1 style="border: 1pt dashed ; font-size: 15pt;" height="31"><tr><td> 学号 </td><td>姓名 </td><td> 年龄 </td><
52、td> 性别 </td><td> 专业 </td></tr><%response.setCharacterEncoding("UTF-8"); request.setCharacterEncoding("UTF-8"); Page pager=(Page)request.getAttribute("pager");List<StudentInfo> subResult=(List<StudentInfo>)request.getAttribute(&q
53、uot;subResult"); if(!subResult.isEmpty() for(int i=0;i<subResult.size();i+)StudentInfo st=subResult.get(i);out.print("<tr>");out.print("<td>"+st.getId()+"</td>"); out.print("<td>"+st.getName()+"</td>"); out.print
54、("<td>"+st.getAge()+"</td>"); out.print("<td>"+st.getGender()+"</td>"); out.print("<td>"+st.getMajor()+"</td>");%><td><a href="AllServlet?id=<%=st.getId() %>&methodName=<%=2
55、%>" onclick="return confirmdialog()"> 删除 </a></td><td><ahref="AllServlet?id=<%=st.getId() %>&name=<%="" %>&methodName=<%=4 %>"> 修 改 </a></td><%out.print("</tr>");%></table&
56、gt;<span><font size="2"> 总 <%=pager.getTotalRecord() %> 条 记 录 | 总 <%=pager.getTotalPage() %> 页|当前 <%=pager.getCurrentPage()+1 %> 页 |每页 <%=pager.getPageSize() %> 条|<%int last=pager.getCurrentRecord()-pager.getPageSize();int next=pager.getCurrentRecord(
57、)+pager.getPageSize();int currentRecord; if(last<0) out.println(" 首页 |");elseout.print("<a href='AllServlet?currentRecord="+last+"&methodName=1'> 上 一 页 </a>|");if(next>=pager.getTotalRecord()out.println(" 尾页 |");elseout.print(&quo
58、t;<a href='AllServlet?currentRecord="+next+"&methodName=1'> 下 一 页 </a>|");%></font></span><br><form action="AllServlet" method="post"><input type="hidden" name="methodName" value="5"
59、;/><h3>按学号姓名查询:</h3>学号: <input type="text" name="id" value="" title=" 学号 必须为数字 " ></input>姓 名 : <input type="text" name="name" value="" title=""></input><input type="submit&
60、quot; value=" 查询 " /></form><br><h3><a href=putin.jsp> 返回信息输入页面 </a></h3><br></body></html>10.3 update1.jsp<% page language="java" import="java.util.*" pageEncoding="UTF-8"%><% page import="
61、;bean.StudentInfo" %><%String path = request.getContextPath();String basePathrequest.getScheme()+":/"+request.getServerName()+":"+request.getServerPort()+path+"/"%><!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN"><html><
62、head><base href="<%=basePath%>"><title> 学生信息修改 </title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0&quo
63、t;><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!-<link rel="stylesheet" type="text/css" href="styles.css">-></head><
64、;body><br><h2> 学生信息 </h2> <hr><br><h3> 要修改的学生信息如下 </h3><table width="496" border="100" cellSpacing=1 style="border: 1pt dashed ; font-size: 15pt;"height="31"><tr><td> 学号 </td><td>姓名 <
65、;/td><td> 年龄 </td><td> 性别 </td><td> 专业 </td></tr><%int id=0;ArrayList<StudentInfo> result=new ArrayList<StudentInfo>();result=(ArrayList<StudentInfo>)request.getAttribute("result");if(!result.isEmpty()for(int i=0;i<result
66、.size();i+)StudentInfo st=result.get(i);id=st.getId();out.print("<tr>");out.print("<td>"+st.getId()+"</td>"); out.print("<td>"+st.getName()+"</td>"); out.print("<td>"+st.getAge()+"</td>");
67、 out.print("<td>"+st.getGender()+"</td>"); out.print("<td>"+st.getMajor()+"</td>");out.print("</tr>");%></table><h3> 将学生信息更改为: </h3><form action="AllServlet" method="post" >
68、<input type="hidden" name="methodName" value="3"/><h4> 学 号 : <input type="text" name="id"value="<%=id %>" title=" 学 号 不 能 改 变 "></input><br></h4><h4> 姓名: <input type="text&qu
69、ot; name="name"title=" 姓名不能为空 "></input><br></h4> <h4> 年龄: <input type="text" name="age"title=" 年龄不能为空 "></input><br></h4> <h4> 性别: <input type="radio" name="gender" valu
70、e=" 男"> 男<input type="radio" name="gender" value=" 女">女 <br></h4><h4> 专业: <input type="text" name="major"title=" 专业不能为空 "></input><br></h4><input type="submit" value=
71、" 修改 "/></form><br><h3><a href=putin.jsp> 返回信息输入页面 </a></h3><h3><a href=AllServlet?methodName=<%=1 %>&id=<%="" %>&name=<%="" %>> 返回信息 查询页面 </a></h3></body></html>10.4 update.jsp<% page language="java" import="java.util.*" pageEncoding="UTF-8"%>
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 灵宝电工考试题库及答案
- 工程项目质量保障责任承诺书模板(9篇)
- 2025年人工智能行业应用场景与未来发展研究报告及未来发展趋势预测
- 2025年环保行业绿色技术创新与应用研究报告及未来发展趋势预测
- 企业安全员知识培训试题及答案解析
- 电气焊安全题库及答案解析
- 2025年人类文明行业全球文化交流与跨文化研究报告及未来发展趋势预测
- 2025年汽车制造行业自动驾驶汽车技术发展路线研究报告及未来发展趋势预测
- 康复护理知识考试题库及答案解析
- 项目管理团队激励方案创意与实效结合版
- 解析:湖南省长沙市湖南师大附中教育集团2024-2025学年九年级上学期期中语文试题(解析版)
- 2024年版-生产作业指导书SOP模板
- OCT技术在神经介入手术中的应用
- DL-T5508-2015燃气分布式供能站设计规范
- 爆炸品、剧毒化学品道路运输装卸管理人员从业资格考试题库
- JJG(交通) 168-2020 水位计检定规程
- 小班数学活动《找相同》课件
- 创伤早期评估
- 《面包加工工艺》课件
- 材料科学基础 课件 第十章 固态相变的应用
- 闲置资产盘活利用方案
评论
0/150
提交评论