您好,欢迎来到爱问旅游网。
搜索
您的当前位置:首页struts2增删改查

struts2增删改查

来源:爱问旅游网
2011-06-19 13:31 struts2 增删改查功能实现

上一篇讲到数据库验证用户名,这里介绍下,用户登录之后如何查看用户信息,和对用户信息的 增删改查功能实现。

先看下总体项目 有朋友说照着建立项目运行不了,所以就贴出项目的源代码,由于这个项目不知道放到哪里去了,所以自己又写了个,跟这个项目的代码可能会有点不一样,希望大家见谅 地址

http://115.com/file/bhylzuex 如果使用较早的Myeclipse 自己要加入struts2的包,要不然会显示有错误。。。。。。。。。。。。。。。。。。。。。。。。。。。。

这是用户登陆表

这是用户信息表

1.在用户输入用户名和密码登陆之后,我们可以直接调用一个查询所有用户信息的方法,这样就可以查看到所有用户信息了,所要做的就是要写多个方法来执行,然后返回给页面显示(在这里我没有做分页演示),大家要有耐心的看哦,代码有点多。。。

------------------------------action类代码-------------------------- package laogen.action;

import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement;

import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List;

import javax.servlet.http.HttpSession;

import org.apache.struts2.ServletActionContext; import laogen.common.DBcon; import laogen.dto.depDto; public class action {

private String username;//注意这里跟index.jsp form里面的name属性要对应

private String password; private String msg;

public String getMsg() { return msg; }

public void setMsg(String msg) { this.msg = msg; }

//然后生成setting getting public String getUsername() { return username; }

public void setUsername(String username) { this.username = username; }

public String getPassword() { return password; }

public void setPassword(String password) { this.password = password; }

//自己写个方法来执行登陆

public String login() throws Exception {

Connection conn = DBcon.getConnection();// 这是用来连通数据库,记得,要下载个驱动程序,mysql Statement stmt = null; ResultSet rs1 = null; ResultSet rs2 = null; try {

stmt = conn.createStatement();

String sql1 = \"select * from userinfomation where username='\" + this.username + \"'\"; rs1 = stmt.executeQuery(sql1); if (!rs1.next()) {

// 判断用户名是不是 存在,如果不是则输出信息,返回界面 this.msg = \"用户名不正确!\"; return \"Error\"; } else {

String sql2 = \"select * from userinfomation where password='\" + this.password + \"'\"; rs2 = stmt.executeQuery(sql2);

if (!rs2.next()) {

// 判断密码是不是存在,如果不是则输出信息,返回界面 this.msg = \"密码不正确!\"; return \"Error\"; } }

rs1.close(); rs2.close(); stmt.close(); conn.close();

} catch (Exception e) { e.printStackTrace(); }

//当上面验证成功了,调用下面的query方法,查出所有用户信息 return query(); }

//这里是用来输出所有用户信息

public String query() throws Exception {

Connection conn = DBcon.getConnection();// 这是用来连通数据库,记得,要下载个驱动程序,mysql Statement stmt = null; try {

stmt = conn.createStatement();

String sql = \"select * from dep\"; // 从另一张表查出信息 ResultSet rs = stmt.executeQuery(sql);

List list = new ArrayList(); // new一个list while (rs.next()) {

depDto dt = new depDto(); // 引进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就可以了

HttpSession session = ServletActionContext.getRequest()

.getSession();

session.setAttribute(\"listAll\ conn.close(); rs.close(); stmt.close();

} catch (Exception e) { e.printStackTrace(); }

return \"query\"; }

//这里是添加信息的功能

public String add() throws Exception{ //首先要接收页面传过来的值 String

name=ServletActionContext.getRequest().getParameter(\"name\");

String sex=ServletActionContext.getRequest().getParameter(\"sex\"); java.util.Date date = new java.util.Date(); String time=\"\";

SimpleDateFormat s = new SimpleDateFormat(\"yyyy年-MM月dd日-HH:mm:ss\");

time=s.format(date); //如果输出是乱码的话,就要转码了 System.out.println(name+sex+time);

Connection conn = DBcon.getConnection(); Statement stmt = null; try {

stmt=conn.createStatement();

String sql = \"insert into dep(name,sex,time) values('\"+name+ \"','\"+ sex+\"','\"+time+\"')\";

int i=stmt.executeUpdate(sql); if(i==0){

System.out.println(\"添加失败\"); }else{

System.out.println(\"添加成功\"); }

conn.close(); stmt.close();

} catch (Exception e) { e.printStackTrace(); }

//return \"add\"; 如果你是返回这个,那么页面没有跟新到你新增的信息,所以在返回时要在查询一遍,也就是下面的方法 return query();

}

//删除用户

public String del() throws Exception{

String id=ServletActionContext.getRequest().getParameter(\"id\"); System.out.println(id); int i=Integer.parseInt(id);

Connection conn = DBcon.getConnection(); Statement stmt = null; try {

stmt=conn.createStatement();

String sql = \"delete from dep where id=\"+i;

int a=stmt.executeUpdate(sql); if(a==0){

System.out.println(\"删除失败\"); }

conn.close(); stmt.close();

} catch (Exception e) { e.printStackTrace(); }

return query(); }

//修改用户信息

public String update() throws Exception{

//修改用户信息,首先要接收到要修改哪个用户的ID,然后返回给页面,给显示出该用户的所有信息

String id=ServletActionContext.getRequest().getParameter(\"id\"); System.out.println(id); int i=Integer.parseInt(id);

Connection conn = DBcon.getConnection(); Statement stmt = null; try {

stmt=conn.createStatement();

String sql = \"select * from dep where id=\"+i; ResultSet rs=stmt.executeQuery(sql);

List list = new ArrayList(); // new一个list while (rs.next()) {

depDto dt = new depDto(); // 引进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里面 }

HttpSession session = ServletActionContext.getRequest() .getSession();

session.setAttribute(\"list\ conn.close(); rs.close(); stmt.close();

} catch (Exception e) { e.printStackTrace(); }

return \"update\"; }

//接受修改页面传过来的值

public String update1() throws Exception{

//我在这只接受sex ,id 如果没有ID的话,就会把全部更新了,不是我们想要的效果

String sex=ServletActionContext.getRequest().getParameter(\"sex\"); String id=ServletActionContext.getRequest().getParameter(\"id\"); int i=Integer.parseInt(id); System.out.println(sex);

Connection conn=DBcon.getConnection(); Statement stmt=null; try {

stmt=conn.createStatement();

String sql=\"update dep set sex='\"+sex+\"' where id=\"+i; stmt.executeUpdate(sql); conn.close(); stmt.close();

} catch (Exception e) { e.printStackTrace(); }

return query(); } }

--------------------------------------------------------------depDto-------------------------------------------------------------------------------

depDto.java 代码

package laogen.dto;

public class depDto { private int id;

private String name; private String sex; private String time;

//生成setting和getting 方法 public int getId() { return id; }

public void setId(int id) { this.id = id; }

public String getName() { return name; }

public void setName(String name) { this.name = name; }

public String getSex() { return sex; }

public void setSex(String sex) { this.sex = sex; }

public String getTime() { return time; }

public void setTime(String time) { this.time = time; } }

2.-------------------------------类写好了,就要配置好struts.xml-------------------------------

/index.jsp

/query.jsp /query.jsp

/update.jsp

3.------------------------------------------------接着就是页面显示代码和添加页面的代码了

----------------------------------------------------

------简要说明下,这里是使用了struts2的iterator来循环输出,\"#session.listAll\" 是从action类传回来的listAll------- query.jsp 页面代码

<%@ page language=\"java\" pageEncoding=\"UTF-8\"%> <%@ taglib uri=\"/struts-tags\" prefix=\"s\"%>

查询所以信息界面

用户信息
numbername sex operate onClick=\"window.location.href='add.jsp'\">
\">

]

吗?')==true){window.location.href='login!del.action?id='+}\">

-----------------------------------------------------------------------------

add.jsp 页面代码

<%@ page language=\"java\" import=\"java.util.*\" pageEncoding=\"utf-8\"%> <%@ taglib prefix=\"s\" uri=\"/struts-tags\"%>

增加员工

  增加信息

项目 录入
name

sex


   

    onclick=\"window.location.href='javascript:history.go(-1)'\">

--------------------------------------------------------------------------------- 登陆界面的代码 index.jsp

<%@ page language=\"java\" import=\"java.util.*\" pageEncoding=\"gbk\"%> <%@ taglib prefix=\"s\" uri=\"/struts-tags\"%>

登陆界面

登陆界面

 

================================================== 更新页面 update.jsp

<%@ page language=\"java\" pageEncoding=\"utf-8\"%> <%@ taglib uri=\"/struts-tags\" prefix=\"s\"%>

<%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\"%>

修改

修改

项目 录入

name

sex

Time


   

    onclick=\"window.location.href='javascript:history.go(-1)'\">

是挺多的,大家可以学习下,打了好久啊。。。支持下吧。。。。。。。。。。。

如果是sql数据库的也是可以的

只要把里面的那个连接数据库的类改下就可以了:看代码

public class DBConnection { //创建连接

public static Connection getConnection() { Connection DBconn = null; try {

Class.forName(\"com.microsoft.sqlserver.jdbc.SQLServerDriver\");

String url =

\"jdbc:sqlserver://localhost:1433;databasename=Oexam\"; //Oexam为数据库名称

String user = \"sa\";//用户名

String password = \"123\";//用户名密码

DBconn = DriverManager.getConnection(url, user, password);

} catch (ClassNotFoundException e1) {

System.out.println(\"驱动程序加载错误\"); } catch (SQLException e2) {

System.out.println(\"数据库连接时错误\"); } catch (Exception e3) { e3.printStackTrace(); }

return DBconn; }

//关门连接

public static void clear(Connection DBconn) { if (DBconn != null) { try {

DBconn.close();

}

} catch (SQLException e) { e.printStackTrace(); } }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务