struts2增删改查.docx
《struts2增删改查.docx》由会员分享,可在线阅读,更多相关《struts2增删改查.docx(24页珍藏版)》请在冰豆网上搜索。
![struts2增删改查.docx](https://file1.bdocx.com/fileroot1/2023-5/15/646e9fed-0139-4ca6-83ab-63cad66f3896/646e9fed-0139-4ca6-83ab-63cad66f38961.gif)
struts2增删改查
2011-06-1913:
31
struts2增删改查功能实现
上一篇讲到数据库验证用户名,这里介绍下,用户登录之后如何查看用户信息,和对用户信息的 增删改查功能实现。
先看下总体项目 有朋友说照着建立项目运行不了,所以就贴出项目的源代码,由于这个项目不知道放到哪里去了,所以自己又写了个,跟这个项目的代码可能会有点不一样,希望大家见谅 地址 如果使用较早的Myeclipse自己要加入struts2的包,要不然会显示有错误。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
这是用户登陆表
这是用户信息表
1.在用户输入用户名和密码登陆之后,我们可以直接调用一个查询所有用户信息的方法,这样就可以查看到所有用户信息了,所要做的就是要写多个方法来执行,然后返回给页面显示(在这里我没有做分页演示),大家要有耐心的看哦,代码有点多。
。
。
------------------------------action类代码--------------------------
packagelaogen.action;
importjava.sql.Connection;
importjava.sql.ResultSet;
importjava.sql.Statement;
importjava.text.SimpleDateFormat;
importjava.util.ArrayList;
importjava.util.List;
importjavax.servlet.http.HttpSession;
importorg.apache.struts2.ServletActionContext;
importmon.DBcon;
importlaogen.dto.depDto;
publicclassaction{
privateStringusername;//注意这里跟index.jspform里面的name属性要对应
privateStringpassword;
privateStringmsg;
publicStringgetMsg(){
returnmsg;
}
publicvoidsetMsg(Stringmsg){
this.msg=msg;
}
//然后生成settinggetting
publicStringgetUsername(){
returnusername;
}
publicvoidsetUsername(Stringusername){
this.username=username;
}
publicStringgetPassword(){
returnpassword;
}
publicvoidsetPassword(Stringpassword){
this.password=password;
}
//自己写个方法来执行登陆
publicStringlogin()throwsException{
Connectionconn=DBcon.getConnection();//这是用来连通数据库,记得,要下载个驱动程序,mysql
Statementstmt=null;
ResultSetrs1=null;
ResultSetrs2=null;
try{
stmt=conn.createStatement();
Stringsql1="select*fromuserinfomationwhereusername='"
+this.username+"'";
rs1=stmt.executeQuery(sql1);
if(!
rs1.next()){
//判断用户名是不是存在,如果不是则输出信息,返回界面
this.msg="用户名不正确!
";
return"Error";
}else{
Stringsql2="select*fromuserinfomationwherepassword='"
+this.password+"'";
rs2=stmt.executeQuery(sql2);
if(!
rs2.next()){
//判断密码是不是存在,如果不是则输出信息,返回界面
this.msg="密码不正确!
";
return"Error";
}
}
rs1.close();
rs2.close();
stmt.close();
conn.close();
}catch(Exceptione){
e.printStackTrace();
}
//当上面验证成功了,调用下面的query方法,查出所有用户信息
returnquery();
}
//这里是用来输出所有用户信息
publicStringquery()throwsException{
Connectionconn=DBcon.getConnection();//这是用来连通数据库,记得,要下载个驱动程序,mysql
Statementstmt=null;
try{
stmt=conn.createStatement();
Stringsql="select*fromdep";//从另一张表查出信息
ResultSetrs=stmt.executeQuery(sql);
Listlist=newArrayList();//new一个list
while(rs.next()){
depDtodt=newdepDto();//引进depDto
dt.setId(rs.getInt("id"));
dt.setName(rs.getString("name"));
dt.setSex(rs.getString("sex"));
dt.setTime(rs.getString("time"));//这里你可以按你需要取出数据库的列的值
list.add(dt);//把值添加到list里面
}
//在这我们可以输出数据库里面有多少条记录
System.out.println("数据库里面有"+list.size()+"条记录");
//把list放到session中,传回给页面,所以页面只需接收listAll就可以了
HttpSessionsession=ServletActionContext.getRequest()
.getSession();
session.setAttribute("listAll",list);
conn.close();
rs.close();
stmt.close();
}catch(Exceptione){
e.printStackTrace();
}
return"query";
}
//这里是添加信息的功能
publicStringadd()throwsException{
//首先要接收页面传过来的值
Stringname=ServletActionContext.getRequest().getParameter("name");
Stringsex=ServletActionContext.getRequest().getParameter("sex");
java.util.Datedate=newjava.util.Date();
Stringtime="";
SimpleDateFormats=newSimpleDateFormat("yyyy年-MM月dd日-HH:
mm:
ss");
time=s.format(date);
//如果输出是乱码的话,就要转码了
System.out.println(name+sex+time);
Connectionconn=DBcon.getConnection();
Statementstmt=null;
try{
stmt=conn.createStatement();
Stringsql="insertintodep(name,sex,time)values('"+name+"','"+sex+"','"+time+"')";
inti=stmt.executeUpdate(sql);
if(i==0){
System.out.println("添加失败");
}else{
System.out.println("添加成功");
}
conn.close();
stmt.close();
}catch(Exceptione){
e.printStackTrace();
}
//return"add"; 如果你是返回这个,那么页面没有跟新到你新增的信息,所以在返回时要在查询一遍,也就是下面的方法
returnquery();
}
//删除用户
publicStringdel()throwsException{
Stringid=ServletActionContext.getRequest().getParameter("id");
System.out.println(id);
inti=Integer.parseInt(id);
Connectionconn=DBcon.getConnection();
Statementstmt=null;
try{
stmt=conn.createStatement();
Stringsql="delete fromdepwhereid="+i;
inta=stmt.executeUpdate(sql);
if(a==0){
System.out.println("删除失败");
}
conn.close();
stmt.close();
}catch(Exceptione){
e.printStackTrace();
}
returnquery();
}
//修改用户信息
publicStringupdate()throwsException{
//修改用户信息,首先要接收到要修改哪个用户的ID,然后返回给页面,给显示出该用户的所有信息
Stringid=ServletActionContext.getRequest().getParameter("id");
System.out.println(id);
inti=Integer.parseInt(id);
Connectionconn=DBcon.getConnection();
Statementstmt=null;
try{
stmt=conn.createStatement();
Stringsql="select* fromdepwhereid="+i;
ResultSetrs=stmt.executeQuery(sql);
Listlist=newArrayList();//new一个list
while(rs.next()){
depDtodt=newdepDto();//引进depDto
dt.setId(rs.getInt("id"));
dt.setName(rs.getString("name"));
dt.setSex(rs.getString("sex"));
dt.setTime(rs.getString("time"));
list.add(dt);//把值添加到list里面
}
HttpSessionsession=ServletActionContext.getRequest()
.getSession();
session.setAttribute("list",list);
conn.close();
rs.close();
stmt.close();
}catch(Exceptione){
e.printStackTrace();
}
return"update";
}
//接受修改页面传过来的值
publicStringupdate1()throwsException{
//我在这只接受sex,id如果没有ID的话,就会把全部更新了,不是我们想要的效果
Stringsex=ServletActionContext.getRequest().getParameter("sex");
Stringid=ServletActionContext.getRequest().getParameter("id");
inti=Integer.parseInt(id);
System.out.println(sex);
Connectionconn=DBcon.getConnection();
Statementstmt=null;
try{
stmt=conn.createStatement();
Stringsql="updatedepsetsex='"+sex+"'whereid="+i;
stmt.executeUpdate(sql);
conn.close();
stmt.close();
}catch(Exceptione){
e.printStackTrace();
}
returnquery();
}
}
--------------------------------------------------------------depDto-------------------------------------------------------------------------------
depDto.java 代码
packagelaogen.dto;
publicclassdepDto{
privateintid;
privateStringname;
privateStringsex;
privateStringtime;
//生成setting和getting 方法
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetSex(){
returnsex;
}
publicvoidsetSex(Stringsex){
this.sex=sex;
}
publicStringgetTime(){
returntime;
}
publicvoidsetTime(Stringtime){
this.time=time;
}
}
2.-------------------------------类写好了,就要配置好struts.xml-------------------------------
xmlversion="1.0"encoding="UTF-8"?
>
DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.1//EN""http:
//struts.apache.org/dtds/struts-2.1.dtd">
/index.jsp
--/query.jsp-->
/query.jsp
/query.jsp
/update.jsp
3.------------------------------------------------接着就是页面显示代码和添加页面的代码了----------------------------------------------------
------简要说明下,这里是使用了struts2的iterator来循环输出,"#session.listAll" 是从action类传回来的listAll-------
query.jsp 页面代码
<%@pagelanguage="java"pageEncoding="UTF-8"%>
<%@tagliburi="/struts-tags"prefix="s"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
查询所以信息界面
用户信息
|
number
name
sex
operate
|
iteratorvalue="#session.listAll"status="status">
propertyvalue="#status.index+1"/>
propertyvalue="name"/>
propertyvalue="sex"/>
update.action?
id='+propertyvalue="id"/>">
propertyvalue="name"/>]吗?
')==true){window.location.href='login!
del.action?
id='+propertyvalue="id"/>}">
|
iterator>
-----------------------------------------------------------------------------
add.jsp 页面代码
<%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"%>
<%@taglibprefix="s"uri="/struts-tags"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
增加员工