您的位置:首页 > 编程语言 > Java开发

struts2+dao实现增删查改

2013-10-24 18:16 295 查看
[align=center]Struts2.1+Dao实现增删查改[/align]一、数据库设计:/*NavicatMySQLDataTransferSourceServer:localhostSourceServerVersion:50611SourceHost:localhost:3306SourceDatabase:mldnTargetServerType:MYSQLTargetServerVersion:50611FileEncoding:65001Date:2013-09-1621:03:49*/SETFOREIGN_KEY_CHECKS=0;--------------------------------Tablestructurefor`person`------------------------------DROPTABLEIFEXISTS`person`;CREATETABLE`person`(`id`int(4)NOTNULLAUTO_INCREMENT,`name`varchar(20)NOTNULL,`password`varchar(20)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=25DEFAULTCHARSET=utf8;--------------------------------Recordsofperson------------------------------INSERTINTO`person`VALUES('1','aa','aa');INSERTINTO`person`VALUES('2','user','user12');INSERTINTO`person`VALUES('4','mldn','mldn');INSERTINTO`person`VALUES('14','cc','aa');INSERTINTO`person`VALUES('15','cc','aa');INSERTINTO`person`VALUES('19','xiaoqun','aa');INSERTINTO`person`VALUES('21','cc','cc');INSERTINTO`person`VALUES('22','cc','dd');INSERTINTO`person`VALUES('23','bb','cc');二、DAO设计1、DataBaseConnection.java//本类只用于数据库连接及关闭操作packageorg.lxh.dbc;importjava.sql.*;publicclassDataBaseConnection{//属性//定义数据库操作的常量、对象//数据库驱动程序privatefinalStringDBDRIVER="com.mysql.jdbc.Driver";//数据库连接地址privatefinalStringDBURL="jdbc:mysql://localhost:3306/mldn";//数据库用户名privatefinalStringDBUSER="root";//数据库连接密码privatefinalStringDBPASSWORD="root";//声明一个数据库连接对象privateConnectionconn=null;//在构造方法之中连接数据库publicDataBaseConnection(){try{//加载驱动程序Class.forName(DBDRIVER);//连接数据库conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);}catch(Exceptione){System.out.println(e);}}//返回一个数据库连接publicConnectiongetConnection(){///返回连接对象returnthis.conn;}//关闭数据库连接publicvoidclose(){try{this.conn.close();}catch(Exceptione){}}};2、PersonVo.java//只包含setter和getter方法的类packageorg.lxh.vo;publicclassPersonVo{privateintid;privateStringname;privateStringpassword;publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicStringgetPassword(){returnpassword;}publicvoidsetPassword(Stringpassword){this.password=password;}};3、PersonDAO.java//本接口定义本项目中所操作person表的全部方法packageorg.lxh.dao;//使用PersonVo类importorg.lxh.vo.*;importjava.util.List;//登录验证的接口publicinterfacePersonDAO{//需要一个登陆验证的方法publicbooleanisLogin(PersonVopv);publicvoidinsert(PersonVopv)throwsException;publicvoiddelete(intid)throwsException;publicvoidupdate(PersonVopv)throwsException;publicListqueryById(intid)throwsException;publicListqueryAll()throwsException;publicListqueryByLike(Stringcond)throwsException;}4、PersonDAOIpml.java//具体实现DAO接口的类packageorg.lxh.daoimpl;//需要连接数据库//需要对VO的内容进行具体的验证importjava.sql.*;importjava.util.List;importorg.lxh.dao.*;importorg.lxh.dbc.*;importorg.lxh.factory.DAOFactory;importorg.lxh.vo.*;importjava.util.List;importjava.util.ArrayList;publicclassPersonDAOImplimplementsPersonDAO{//验证登录,已实现publicbooleanisLogin(PersonVopv){booleanflag=false;//在此处成具体的数据库验证//声明一个数据库操作对象PreparedStatementpstmt=null;//声明一个结果集对象ResultSetrs=null;//声明一个SQL变量,用于保存SQL语句Stringsql=null;//DataBaseConnection为具体的数据库连接及关闭操作类DataBaseConnectiondbc=null;//连接数据库dbc=newDataBaseConnection();//编写SQL语句sql="SELECT*FROMpersonWHEREname=?andpassword=?";try{//实例化数据库操作对象pstmt=dbc.getConnection().prepareStatement(sql);//设置pstmt的内容,是按ID和密码验证pstmt.setString(1,pv.getName());//设置pstmt第一个?号的值pstmt.setString(2,pv.getPassword());//设置pstmt第二个?号的值//查询记录rs=pstmt.executeQuery();//判断是否有记录if(rs.next()){//如果有记录,则执行此段代码//用户是合法的,可以登陆flag=true;}//依次关闭rs.close();pstmt.close();}catch(Exceptione){System.out.println(e);}finally{//最后一定要保证数据库已被关闭dbc.close();}returnflag;}//插入数据publicvoidinsert(PersonVopv)throwsException{//TODOAuto-generatedmethodstubStringsql="INSERTINTOperson(name,password)VALUES(?,?)";PreparedStatementpstmt=null;DataBaseConnectiondbc=null;dbc=newDataBaseConnection();try{pstmt=dbc.getConnection().prepareStatement(sql);pstmt.setString(1,pv.getName());pstmt.setString(2,pv.getPassword());pstmt.executeUpdate();pstmt.close();}catch(Exceptione){//System.out.println(e);thrownewException("操作中出现错误!!!");}finally{dbc.close();}}publicvoiddelete(intid)throwsException{//TODOAuto-generatedmethodstubStringsql="DELETEFROMpersonWHEREid=?";PreparedStatementpstmt=null;DataBaseConnectiondbc=null;dbc=newDataBaseConnection();try{pstmt=dbc.getConnection().prepareStatement(sql);pstmt.setInt(1,id);pstmt.executeUpdate();pstmt.close();}catch(Exceptione){thrownewException("操作中出现错误!!!");}finally{dbc.close();}}//更新publicvoidupdate(PersonVopv)throwsException{//TODOAuto-generatedmethodstubStringsql="updatepersonsetname=?,password=?whereid=?";PreparedStatementpstmt=null;DataBaseConnectiondbc=null;dbc=newDataBaseConnection();try{pstmt=dbc.getConnection().prepareStatement(sql);pstmt.setString(1,pv.getName());pstmt.setString(2,pv.getPassword());pstmt.setInt(3,pv.getId());pstmt.executeUpdate();pstmt.close();}catch(Exceptione){//System.out.println(e);thrownewException("操作中出现错误!!!");}finally{dbc.close();}}//根据id根据,用于更新publicListqueryById(intid)throwsException{Listlist=newArrayList();PersonVopv=null;Stringsql="selectid,name,passwordfrompersonwhereid=?";PreparedStatementpstmt=null;DataBaseConnectiondbc=null;dbc=newDataBaseConnection();try{pstmt=dbc.getConnection().prepareStatement(sql);//预编译sqlpstmt.setInt(1,id);ResultSetrs=pstmt.executeQuery();//执行操作,返回结果集while(rs.next())//循环读取结果{pv=newPersonVo();//实例化PersonVopv.setId(rs.getInt(1));pv.setName(rs.getString(2));pv.setPassword(rs.getString(3));list.add(pv);//将user对象中加入到list集合中}}catch(Exceptione){thrownewException("操作错误!");}finally{dbc.close();}returnlist;}//查询全部,已实现publicListqueryAll()throwsException{//TODOAuto-generatedmethodstubListall=newArrayList();PersonVopv=null;Stringsql="selectid,name,passwordfromperson";PreparedStatementpstmt=null;DataBaseConnectiondbc=null;dbc=newDataBaseConnection();try{pstmt=dbc.getConnection().prepareStatement(sql);//预编译sqlResultSetrs=pstmt.executeQuery();//执行操作,返回结果集while(rs.next())//循环读取结果{pv=newPersonVo();//实例化PersonVopv.setId(rs.getInt(1));pv.setName(rs.getString(2));pv.setPassword(rs.getString(3));all.add(pv);//将user对象中加入到list集合中}}catch(Exceptione){thrownewException("操作错误!");}finally{dbc.close();}returnall;}//模糊查询publicListqueryByLike(Stringcond)throwsException{//TODOAuto-generatedmethodstubListall=newArrayList();PersonVopv=null;Stringsql="selectid,name,pwdfrompersonwherenamelike?orpasswordlike?";PreparedStatementpstmt=null;DataBaseConnectiondbc=null;dbc=newDataBaseConnection();try{pstmt=dbc.getConnection().prepareStatement(sql);//预编译sqlpstmt.setString(1,"%"+cond+"%");pstmt.setString(2,"%"+cond+"%");ResultSetrs=pstmt.executeQuery();//执行操作,返回结果集while(rs.next())//循环读取结果{pv=newPersonVo();pv.setId(rs.getInt(1));pv.setName(rs.getString(2));pv.setPassword(rs.getString(3));all.add(pv);//将user对象中加入到list集合中}}catch(Exceptione){thrownewException("操作错误!");}finally{dbc.close();}returnall;}};5、DAOFactory.java//取得DAO实例的工厂类packageorg.lxh.factory;importorg.lxh.dao.*;importorg.lxh.daoimpl.*;publicclassDAOFactory{publicstaticPersonDAOgetPersonDAOInstance(){returnnewPersonDAOImpl();}};二、struts2.1的ActionUserAction.javapackageorg.lxh.action;importjava.util.ArrayList;importjava.util.List;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpSession;importorg.apache.struts2.ServletActionContext;importorg.apache.struts2.interceptor.ServletRequestAware;importorg.apache.struts2.ServletActionContext;importorg.lxh.dao.*;importorg.lxh.factory.DAOFactory;importorg.lxh.vo.*;importcom.opensymphony.xwork2.ActionSupport;publicclassUserActionextendsActionSupport{privatestaticfinallongserialVersionUID=1L;//name与password与登录表单中的控件名称一致privateStringname;privateStringpassword;privateStringmsg;privateStringinfo;//测试用例publicStringgetMsg(){returnmsg;}publicvoidsetMsg(Stringmsg){this.msg=msg;}publicStringgetInfo(){returninfo;}publicvoidsetInfo(Stringinfo){this.info=info;}publicvoidsetName(Stringname){this.name=name;System.out.print("name:"+name);}publicStringgetPassword(){returnpassword;}publicvoidsetPassword(Stringpassword){this.password=password;System.out.print("password:"+password);}//查询所有publicStringqueryAll()throwsException{try{HttpSessionsession=ServletActionContext.getRequest().getSession();session.setAttribute("listAll",DAOFactory.getPersonDAOInstance().queryAll());}catch(Exceptione){e.printStackTrace();}return"queryAll";}//添加publicStringadd()throwsException{try{PersonVopv=newPersonVo();Stringname=ServletActionContext.getRequest().getParameter("name");Stringpassword=ServletActionContext.getRequest().getParameter("password");pv.setName(name);pv.setPassword(password);DAOFactory.getPersonDAOInstance().insert(pv);queryAll();}catch(Exceptione){e.printStackTrace();}returnqueryAll();}//删除用户--已实现publicStringdelete()throwsException{try{//获取传送过来的idIntegerid=Integer.parseInt(ServletActionContext.getRequest().getParameter("id"));DAOFactory.getPersonDAOInstance().delete(id);}catch(Exceptione){e.printStackTrace();}returnqueryAll();}//通过id查询publicStringqueryById()throwsException{Integerid=Integer.parseInt(ServletActionContext.getRequest().getParameter("id"));try{HttpSessionsession=ServletActionContext.getRequest().getSession();session.setAttribute("query",DAOFactory.getPersonDAOInstance().queryById(id));}catch(Exceptione){e.printStackTrace();}return"update";}//验证登录publicStringlogin()throwsException{booleanflag=false;PersonVopv=newPersonVo();if(name==null||"".equals(name)){msg="用户名不能为空";return"err";}if(password==null||"".equals(password)){msg="密码不能为空";return"err";}pv.setName(name);pv.setPassword(password);if(DAOFactory.getPersonDAOInstance().isLogin(pv)==true){//声明sessionHttpSessionsession_user=ServletActionContext.getRequest().getSession();//把登录的用户名保存到session中session_user.setAttribute("name",name);flag=true;returnqueryAll();}else{msg="用户名或密码不正确";return"err";}}//更新publicStringupdate()throwsException{try{PersonVopv=null;pv=newPersonVo();Integeridstr=Integer.parseInt(ServletActionContext.getRequest().getParameter("id"));Stringnames=ServletActionContext.getRequest().getParameter("name");Stringpasswords=ServletActionContext.getRequest().getParameter("password");pv.setId(idstr);//info=idstr.toString();测试用例pv.setName(name);pv.setPassword(password);DAOFactory.getPersonDAOInstance().update(pv);}catch(Exceptione){e.printStackTrace();}//return"err";测试用例returnqueryAll();}/*publicstaticvoidmain(String[]args){PersonVopv=newPersonVo();Stringname="aa";Stringpassword="aa";pv.setPassword(password);pv.setName(name);if(DAOFactory.getPersonDAOInstance().isLogin(pv)){System.out.println("执行成功");System.out.print("存在此条记录!!!!");}}*/}四、Struts.xml配置<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.1//EN""http://struts.apache.org/dtds/struts-2.1.dtd"><struts><packagename="Mypackage"extends="struts-default"namespace="/"><actionname="test"class="org.lxh.action.UserAction"><resultname="queryAll">queryAll.jsp</result><resultname="update">update.jsp</result><resultname="err">login.jsp</result><resultname="error">error.jsp</result><resultname="add_success">add_success.jsp</result></action></package></struts>五、web.xml配置<?xmlversion="1.0"encoding="UTF-8"?><web-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee;http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID"version="2.5"><display-name>struts_2</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><!--Struts2过滤器--><filter><!--过滤器名称--><filter-name>struts2</filter-name><!--过滤器类--><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><!--Struts2过滤器映射--><filter-mapping><!--过滤器名称--><filter-name>struts2</filter-name><!--过滤器映射,这是重点--><url-pattern>/*</url-pattern></filter-mapping></web-app>六、页面设计1、Login.jsp<%@pagelanguage="java"import="java.util.*"pageEncoding="gbk"%><%@taglibprefix="s"uri="/struts-tags"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><title>登陆界面</title></head><body><center><h2><fontcolor=red><s:propertyvalue="msg"/></font></h2></center><s:formaction="test!login.action"><tablewidth="250"align="center"><tr><tdcolspan="2"align="center"><h1>登陆界面</h1></td></tr><tr><td><s:textfieldlabel="用户名"name="name"cssStyle="width:160px;height:20"></s:textfield></td></tr><tr><td><s:passwordlabel="密码:"name="password"cssStyle="width:160px;height:20"></s:password></td></tr><tr><tdcolspan="2"align="center"valign="middle"><s:submitvalue="提交"align="left"theme="simple"></s:submit><c:resetvalue="重置"align="left"theme="simple"></c:reset></td></tr></table></s:form></body></html>2、queryAll.jsp<%@pagelanguage="java"pageEncoding="UTF-8"%><%@tagliburi="http://java.sun.com/jstl/core_rt"prefix="c"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><title>查询所以信息界面</title></head><%if(session.getAttribute("name")==null){response.setHeader("refresh","2;URL=login.jsp");%>您还未登陆,请先登陆!!!<br>两秒后自动跳转到登陆窗口!!!<br>如果没有跳转,请按<ahref="login.jsp">这里</a>!!!<br><%}%><body><h1><%=session.getAttribute("name")%>,你好,欢迎你!</h1><center><tableborder="1"align="center"><tr><tdcolspan="5"align="center">用户信息列表</td></tr><tr><tdcolspan="5"align="center"><ahref="add.jsp">添加用户信息</a></td></tr><tr><td>id</td><tdalign="center">name</td><tdalign="center">password</td><tdalign="center"colspan="2">操作</td></tr><c:forEachitems="${session.listAll}"var="list"><tr><tdalign="center">${list.id}</td><!--输出id--><td>${list.name}</td><!--输出name--><td>${list.password}</td><!--输出password--><tdalign="center"><ahref="test!queryById?id=${list.id}">修改</a></td><tdalign="center"><ahref="test!delete?id=${list.id}">删除</a></td></tr></c:forEach></tr></table></center></body></html>3.Update.jsp<%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"%><%@tagliburi="http://java.sun.com/jstl/core_rt"prefix="c"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><title>修改用户</title></head><%if(session.getAttribute("name")==null){response.setHeader("refresh","2;URL=login.jsp");%>您还未登陆,请先登陆!!!<br>两秒后自动跳转到登陆窗口!!!<br>如果没有跳转,请按<ahref="login.jsp">这里</a>!!!<br><%}%><body><center><c:forEachitems="${session.query}"var="list"><formname="myForm"action="test!update.action"method="post"><tableborder="1"cellpadding="1"cellspacing="1"width="480"><tr><tdcolspan="2"align="center">修改</td></tr><tr><td>用户名:</td><td><inputtype="text"value="${list.name}"name="name"><inputtype="hidden"value="${list.id}"name="id"></td></tr><tr><td>密码:</td><td><inputtype="text"value="${list.password}"name="password"></td></tr><tr><tdalign="center"colspan="2"><inputvalue="提交"type="submit"><inputvalue="重置"type="reset"></td></tr></form></c:forEach></center></body></html>4、Add.jsp<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%><%@taglibprefix="s"uri="/struts-tags"%><%Stringpath=request.getContextPath();StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><basehref="<%=basePath%>"><title>MyJSP'save.jsp'startingpage</title><metahttp-equiv="pragma"content="no-cache"><metahttp-equiv="cache-control"content="no-cache"><metahttp-equiv="expires"content="0"><metahttp-equiv="keywords"content="keyword1,keyword2,keyword3"><metahttp-equiv="description"content="Thisismypage"><!--<linkrel="stylesheet"type="text/css"href="styles.css">--></head><%if(session.getAttribute("name")==null){response.setHeader("refresh","2;URL=login.jsp");%>您还未登陆,请先登陆!!!<br>两秒后自动跳转到登陆窗口!!!<br>如果没有跳转,请按<ahref="login.jsp">这里</a>!!!<br><%}%><body><center><s:formname="myForm"action="test!add.action"method="post"><tableborder="1"cellpadding="1"cellspacing="1"width="480"><tr><tdcolspan="2"align="center">增加用户</td></tr><tr><tdalign="center">用户名:</td><td><inputtype="text"name="name"></td></tr><tr><tdalign="center">密码:</td><td><inputtype="password"name="password"></td></tr><tr><tdalign="center"colspan="2"><inputvalue="提交"type="submit"><inputvalue="重置"type="reset"></td></tr></s:form></center></body></html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struts2 dao 增删查改