版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、示例数据库:数据库名:new数据库字段及属性:列名数据类型备注Idint新闻ID,自动增长TitleNamenvarchar(20)新闻标题Creatornvarchar(20)新闻创建者CreateTimenvarchar(20)创建时间示例目录结构:src文件夹下:dao包:(1) BaseDao.java 加载驱动,建立数据库连接,关闭操作对象 (2)表名Dao.java Java处理程序,例如:增删改查这样的方法写在这个类中entity包:表名.java 实体类,一个表是一个实体,把表中的列作为实体的属性、并生成get、set方法及带参数和无参数的构造方法WebRoot文件夹下:JSP
2、页面示例代码:BaseDao.javapackage dao;/要导入Java.sql包,才可以应用Connection、PreparedStatement、ResultSetimport java.sql.*;public class BaseDao /* * 静态块,加载驱动SQL Server 2005 驱动,前提需导入SQL Server 2005 的JAR包 */statictry Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); catch (ClassNotFoundException
3、 e) / TODO Auto-generated catch blocke.printStackTrace();/* * 获得数据库连接 * return conn */public static Connection getConnection()Connection conn = null;连接字符串,必须记住try conn = DriverManager.getConnection("jdbc:sqlserver:/localhost:1433;DatabaseName=new", "sa", "sa");数据库登录的用户名
4、和密码 catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();/返回数据库连接对象return conn;/* * 关闭操作对象,需注意关闭顺序 * param rs ResultSet对象,用来存储查询执行后的结果 * param pStmt PreparedStatement对象,用来执行SQL命令 * param conn Connection对象,用来建立数据库连接 */public static void closeAll(ResultSet rs,PreparedStatement p
5、Stmt,Connection conn)if(rs != null)rs.close();此处需用try-catch包围if(pStmt != null)pStmt.close();if(conn != null)conn.close();FirstTitleDao.java/* 显示列表,查询时使用*/public static List getList()/创建Connection对象Connection conn=null;/定义PreparedStatement对象PreparedStatement stmt=null;/创建ResultSet对象ResultSet rs=null;
6、/创建列表List list=new ArrayList();try /获得数据库连接conn=BaseDao.getConnection();/创建PreparedStatement对象stmt=conn.prepareStatement("select * from FirstTitle");/执行SQL语句,返回ResultSet对象rs=stmt.executeQuery();/操作结果集while(rs.next()entity.FirstTitle title = new FirstTitle();rs.getInt(1)或rs.getInt(“Id”)/将结果
7、集中的数据设置到对象中title.setId(rs.getInt(1);title.setTitleName(rs.getString(2);title.setCreator(rs.getString(3);title.setCreateTime(rs.getString(4);/将对象添加到列表中list.add(title); catch (SQLException e) / TODO 自动生成 catch 块e.printStackTrace();finally/关闭操作对象BaseDao.closeAll(rs, stmt, conn);/返回列表return list;/* 向数据库
8、中插入数据*/public static void add(entity.FirstTitle title)Connection con = null;PreparedStatement pStmt = null;ResultSet rs = null;try con = dao.BaseDao.getConnection();pStmt = con.prepareStatement("insert into FirstTitle(Id,TitleName,Creator,CreateTime) values(?,?,?,?)");pStmt.setInt(1, title
9、.getId();设置参数pStmt.setString(2, title.getTitleName();pStmt.setString(3, title.getCreator();pStmt.setString(4, title.getCreateTime();/执行SQL语句,返回受影响的行数(int类型)pStmt.executeUpdate(); catch (SQLException e) / TODO 自动生成 catch 块e.printStackTrace();/* * 删除 */public static void delete(int id)Connection con =
10、 null;PreparedStatement pStmt = null;ResultSet rs = null;try con = dao.BaseDao.getConnection();pStmt = con.prepareStatement("delete from FirstTitle where id=?");pStmt.setInt(1, id);pStmt.executeUpdate(); catch (SQLException e) / TODO 自动生成 catch 块e.printStackTrace();finallydao.BaseDao.close
11、All(rs, pStmt, con);/* * 修改,根据ID返回实体 */public static entity.FirstTitle getModel(int id)/创建操作对象Connection con = null;PreparedStatement pStmt = null;ResultSet rs = null;try /获得数据库连接con = dao.BaseDao.getConnection();/创建prepareStatement对象pStmt = con.prepareStatement("select * from FirstTitle where
12、id=?");/设置参数pStmt.setInt(1, id);/执行SQL语句返回结果集rs = pStmt.executeQuery();/操作结果集if(rs.next()/创建实体类的对象,并赋值entity.FirstTitle title = new FirstTitle();title.setId(rs.getInt(1);title.setTitleName(rs.getString(2);title.setCreator(rs.getString(3);title.setCreateTime(rs.getString(4); catch (SQLException
13、e) / TODO 自动生成 catch 块e.printStackTrace();finallydao.BaseDao.closeAll(rs, pStmt, con);return title;/* * 修改方法 */public static void update(entity.FirstTitle title)Connection con = null;PreparedStatement pStmt = null;ResultSet rs = null;try con = dao.BaseDao.getConnection();pStmt = con.prepareStatement
14、("update FirstTitle set ID=?,TitleName=?,Creator=?,CreateTime=? where id=?");pStmt.setInt(1, title.getId();pStmt.setString(2, title.getTitleName();pStmt.setString(3, title.getCreator();pStmt.setString(4, title.getCreateTime();pStmt.setInt(5, title.getId();pStmt.executeUpdate(); catch (SQLE
15、xception e) / TODO 自动生成 catch 块e.printStackTrace();finallydao.BaseDao.closeAll(rs, pStmt, con);WebRoot文件夹下的页面:index.jsp中显示列表部分:<% /获得列表List list = FirstTitleDao.getList();/循环列表,并获得列表中的对象。注意数据类型转换 for(int i=0;i<list.size();i+) FirstTitle title = (FirstTitle)list.get(i); %> <tr> <td&
16、gt;<%=title.getId()%></td> <td><%=title.getTitleName() %></td> <td><%=title.getCreator() %></td> <td><%=title.getCreateTime() %></td> <td >删除</td> <td >修改</a></td> </tr> <% %>实现增加功能:add.jsp 增加
17、功能页面如下:request.getParameter("控件名")用来获得页面上元素的值。返回值为String类型,如有其他类型,需要类型转换该界面中,添加为提交按钮:<input type="submit" name="button" id="button" value="添 加">表单提交到增加功能辅助页面:doAdd.jsp<form name="form1" method="post" action="doAdd.js
18、p">doAdd.jsp<%/设置获得结果的数据集request.setCharacterEncoding("gb2312");/获得表单中文本框里的内容int id =Integer.parseInt(request.getParameter("ID") ;String titleName = request.getParameter("titleName");String creator = request.getParameter("creator");String createTime
19、 = request.getParameter("createTime");FirstTitle title = new FirstTitle();/给对象赋值title.setId(id);title.setTitleName(titleName);title.setCreator(creator);title.setCreateTime(createTime);/调用增加方法,向数据库里插入一条记录FirstTitleDao.add(title);/实现页面跳转,跳转回index.jsp页面response.sendRedirect("index.jsp&qu
20、ot;);%>实现删除功能:情况一:用超链接实现删除,如下图:接收删除超链接传递的参数id,注意双引号当中的内容和参数名相同delete.jsp<%String id = request.getParameter("id");/调用删除方法,实现删除操作FirstTitleDao.delete(Integer.parseInt(id);/实现页面跳转response.sendRedirect("index.jsp");%>“删除”的超连接内容为:(连接删除功能界面,并传递参数,参数为:表中Id)<a href="dele
21、te.jsp?id=<%=title.getId() %>">删除</a>情况二:用复选框实现批量删除为要被全选的复选框设置value值<input type="checkbox" name="deleteAll" id="deleteAll" 复选框的value为Id,根据Id进行删除value="<%=title.getId() %>" />实现全选的JavaScript代码:(1)<script language="javascr
22、ipt">function checkAll(boolValue)var checkbox = document.getElementsByName("deleteAll");for(var i=0;i<checkbox.length;i+)if(checkboxi.type = "checkbox")checkboxi.checked = boolValue;</script> (2) 复选框:<input type="checkbox" name="ckDelete" i
23、d="ckDelete" onClick="checkAll(this.checked);">全选获得name为deleteAll的一组复选框的值delete.jsp 需要更改:<%String id = request.getParameterValues("deleteAll");/用循环的方法,实现批量删除for(int i=0;i<id.length;i+)FirstTitleDao.delete(Integer.parseInt(idi);/实现页面跳转response.sendRedirect("
24、;index.jsp");%>实现删除功能的“删除”超链接:提交表单<a href="javascript:myForm.submit();">删除</a>实现修改功能doUpdate.jsp:更新功能的中转页面<%/指定结果集request.setCharacterEncoding("gb2312");/获取页面上的内容int id =Integer.parseInt(request.getParameter("ID") ;String titleName = request.getPa
25、rameter("titleName");String creator = request.getParameter("creator");String createTime = request.getParameter("createTime");/创建对象FirstTitle title = new FirstTitle();/为对象设置值title.setId(id);title.setTitleName(titleName);title.setCreator(creator);title.setCreateTime(creat
26、eTime);/执行更新功能FirstTitleDao.update(title);/实现页面跳转response.sendRedirect("index.jsp");%>Update.jsp界面:将要修改的内容显示在修改界面上<body>提交表单,到doUpdate.jsp <% int id = Integer.parseInt(request.getParameter("id"); FirstTitle title = FirstTitleDao.getModel(id); %> <form name="
27、;form1" method="post" action="doUpdate.jsp"> 用户名: <input type="text" name="ID" id="ID" value=<%=title.getId() %>> <p>新闻标题: <input type="text" name="titleName" id="titleName" value=<%=title
28、.getTitleName() %>> <p>创建者: <input type="text" name="creator" id="creator" value=<%=title.getCreator() %>> </label> <p>创建时间: <input type="text" name="createTime" id="createTime" value=<%=title.getCr
29、eateTime() %>> <input type="submit" name="button" id="button" value="修 改"> <input type="reset" name="button2" id="button2" value="取 消"></form></body>“修改”超链接的内容为:<a href="Update.jsp?i
30、d=<%=title.getId() %>">修改</a>删除时用来弹出确认提示的JavaScript代码:<!-没有选中的复选框返回false 并有提示信息 ->function test3() var checkbox = document.getElementsByName("deleteAll"); var rc = false; for(var i=0;i<checkbox.length;i+) if(checkboxi.checked = true)rc = true;if(rc = false)aler
31、t("请选中需要删除行的复选框!");return rc;<!-全选按钮删除 ->function test() if(test3() = true) if(!confirm("确认删除吗?") return false; else return false;<!-全选超链接删除 ->function test1()if(test3() = true) if(confirm("确认删除吗?") form1.submit(); <!-删除一行 ->function test2(name) if(con
32、firm("确认删除吗?") window.location.href='delete.jsp?id=' + name; 全选情况下的超链接删除和按钮删除:<a href="javascript:test1();">删除</a><input type="submit" value="删除" onClick="return test();">单独记录情况下的超链接删除和按钮删除:<a href="javascript:test2(
33、<%=title.getId() %>);">删除</a><input type="button" value="删 除" onclick="test2(<%=title.getId() %>);"/>delete.jsp<%String id = null;id = request.getParameter("id");if(id != null)FirstTitleDao.delete(Integer.parseInt(id);elseString ids = reques
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 单位管理制度呈现合集员工管理篇
- 单位管理制度呈现大合集人员管理篇
- 工作转正自我鉴定4篇
- 3D打印在计算机维修中的创新应用
- 《用色彩画心情》课件
- 第3单元+中国特色社会主义道路
- 物流行业顾问工作总结
- 乒乓球比赛的作文汇编10篇
- 输液室护士的职责概述
- 游乐园前台服务感悟
- 2024时事政治考试题库附参考答案(黄金题型)
- 2024年新“国九条”及配套政策要点解读分析报告
- 2024-2029年中国大健康行业市场发展现状分析及发展趋势与投资战略规划报告
- 超星尔雅学习通《艺术哲学美是如何诞生的(同济大学)》2024章节测试答案
- 全国医院数量统计
- (2024年)长歌行汉乐府古诗PPT语文课件
- GB/T 43674-2024加氢站通用要求
- 仓库班长年终总结及工作计划
- 部编人教版二年级劳动教育上册期末试卷(带答案)
- 肛门手术的镇痛研课件
- 中山医院报告查询app
评论
0/150
提交评论