Java——Struts2 crud 简单实例(学习struts2和ssh) 用Myeclipse实现
1.new web project
2.给新建的web项目添加struts2支持
3.项目结构中有了struts.xml和struts2核心库
4.编码
4.1项目结构图
4.2源代码:
(1)DbUtil
- package com.phome.crud;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- /**
- * 数据库工具类
- * @author yangzl
- *
- */
- public class DbUtil
- {
- //驱动名
- private static final String Driver = "com.mysql.jdbc.Driver";
- //数据库连接路径
- private static final String URL = "jdbc:mysql://localhost:3306/user";
- //数据库连接用户名及密码
- private static final String user = "root";
- private static final String password = "root";
- /**
- * 加载数据库驱动
- * @throws ClassNotFoundException(加载异常)
- */
- private static void registerDriver() throws ClassNotFoundException
- {
- try
- {
- Class.forName(Driver);
- }
- catch (ClassNotFoundException e)
- {
- System.out.println((new StringBuilder("【加载数据库驱动时,发生异常】\n")).append(e.getMessage()).toString());
- throw e;
- }
- }
- /**
- * 得到数据库连接
- * @return
- * @throws SQLException
- * @throws ClassNotFoundException
- */
- public static Connection getConnection()
- throws SQLException, ClassNotFoundException
- {
- Connection conn = null;
- try
- {
- registerDriver();
- conn = DriverManager.getConnection(URL, user, password);
- }
- catch (SQLException e)
- {
- System.out.println((new StringBuilder("【得到数据库连接时,发生异常】\n")).append(e.getMessage()).toString());
- throw e;
- }
- return conn;
- }
- public static int executeUpdate(String sql, Object args[])
- {
- int rows;
- rows = -1;
- Connection conn = null;
- PreparedStatement pst = null;
- try {
- conn=getConnection();
- pst=conn.prepareStatement(sql);
- if (args != null)
- {
- for (int i = 0; i < args.length; i++)
- pst.setObject(i + 1, args[i]);
- }
- rows = pst.executeUpdate();
- close(pst);
- close(conn);
- return rows;
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (ClassNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return -1;
- }
- public static void close(Connection conn)
- throws SQLException
- {
- if (conn != null)
- try
- {
- conn.close();
- }
- catch (SQLException e)
- {
- System.out.println((new StringBuilder("【数据库连接对象在关闭时,发生异常!】\n【异常信息】")).append(e.getMessage()).toString());
- throw e;
- }
- }
- public static void close(Statement state)
- throws SQLException
- {
- if (state != null)
- try
- {
- state.close();
- }
- catch (SQLException e)
- {
- System.out.println((new StringBuilder("【SQL命令对象在关闭时,发生异常!】\n【异常信息】")).append(e.getMessage()).toString());
- throw e;
- }
- }
- public static void close(PreparedStatement pst)
- throws SQLException
- {
- if (pst != null)
- try
- {
- pst.close();
- }
- catch (SQLException e)
- {
- System.out.println((new StringBuilder("【预处理SQL命令对象在关闭时,发生异常!】\n【异常信息】")).append(e.getMessage()).toString());
- throw e;
- }
- }
- public static void close(ResultSet rs)
- throws SQLException
- {
- if (rs != null)
- try
- {
- rs.close();
- }
- catch (SQLException e)
- {
- System.out.println((new StringBuilder("【关闭结果集对象时发生异常!】\n【异常信息】")).append(e.getMessage()).toString());
- throw e;
- }
- }
- }
(2)UserBean.java
- package com.phome.crud;
- public class UserBean {
- private int id;
- private String loginid;
- private String loginpwd;
- private String name;
- private String gender;
- private int age;
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getLoginid() {
- return loginid;
- }
- public void setLoginid(String loginid) {
- this.loginid = loginid;
- }
- public String getLoginpwd() {
- return loginpwd;
- }
- public void setLoginpwd(String loginpwd) {
- this.loginpwd = loginpwd;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getGender() {
- return gender;
- }
- public void setGender(String gender) {
- this.gender = gender;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- }
(3).UserDao.java
- package com.phome.crud;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import java.util.List;
- public class UserDao {
- public List<UserBean> list_users(){
- List<UserBean> list = new ArrayList<UserBean>();
- String sql = "select * from users";
- try {
- Connection conn = DbUtil.getConnection();
- PreparedStatement pst = conn.prepareStatement(sql);
- ResultSet rs = pst.executeQuery();
- while(rs.next()){
- UserBean user = new UserBean();
- user.setId(rs.getInt("id"));
- user.setLoginid(rs.getString("loginid"));
- user.setLoginpwd(rs.getString("loginpwd"));
- user.setName(rs.getString("name"));
- user.setGender(rs.getString("gender"));
- user.setAge(rs.getInt("age"));
- list.add(user);
- }
- rs.close();
- pst.close();
- conn.close();
- } catch (SQLException e) {
- e.printStackTrace();
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- }
- return list;
- }
- public UserBean getUser(int id){
- UserBean user = new UserBean();
- String sql = "select * from users where id = " + id;
- try {
- Connection conn = DbUtil.getConnection();
- PreparedStatement pst = conn.prepareStatement(sql);
- ResultSet rs = pst.executeQuery();
- while(rs.next()){
- user.setId(rs.getInt("id"));
- user.setLoginid(rs.getString("loginid"));
- user.setLoginpwd(rs.getString("loginpwd"));
- user.setName(rs.getString("name"));
- user.setGender(rs.getString("gender"));
- user.setAge(rs.getInt("age"));
- }
- rs.close();
- pst.close();
- conn.close();
- } catch (SQLException e) {
- e.printStackTrace();
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- }
- return user;
- }
- public int edit(UserBean user,int id){
- String sql = "UPDATE users SET name=?,gender=?,age=? WHERE id="+id;
- try {
- Connection conn = DbUtil.getConnection();
- PreparedStatement pst = conn.prepareStatement(sql);
- pst.setString(1,user.getName());
- pst.setString(2,user.getGender());
- pst.setInt(3,user.getAge());
- int rows = pst.executeUpdate();
- pst.close();
- conn.close();
- return rows;
- } catch (SQLException e) {
- e.printStackTrace();
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- }
- return -1;
- }
- public int add(UserBean user){
- String sql = "INSERT INTO users VALUES(DEFAULT,?,?,?,?,?)";
- try {
- Connection conn = DbUtil.getConnection();
- PreparedStatement pst = conn.prepareStatement(sql);
- pst.setString(1,user.getLoginid());
- pst.setString(2,user.getLoginpwd());
- pst.setString(3,user.getName());
- pst.setString(4,user.getGender());
- pst.setInt(5,user.getAge());
- int rows = pst.executeUpdate();
- pst.close();
- conn.close();
- return rows;
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (ClassNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return -1;
- }
- }
(4)UserAction.java
- package com.phome.crud;
- import java.util.List;
- import javax.servlet.http.HttpSession;
- import org.apache.struts2.ServletActionContext;
- import com.opensymphony.xwork2.ActionSupport;
- public class UserAction extends ActionSupport {
- List<UserBean> users = null;
- public List<UserBean> getUsers() {
- return users;
- }
- public void setUsers(List<UserBean> users) {
- this.users = users;
- }
- UserBean user = new UserBean();
- public UserBean getUser() {
- return user;
- }
- public void setUser(UserBean user) {
- this.user = user;
- }
- UserDao dao = new UserDao();
- public String list_users(){
- HttpSession s = ServletActionContext.getRequest().getSession();
- users = dao.list_users();
- s.setAttribute("users", users);
- System.out.println(users.toArray());
- return SUCCESS;
- }
- public String get(){
- int id = Integer.parseInt(ServletActionContext.getRequest().getParameter("id"));
- //HttpSession s = ServletActionContext.getRequest().getSession();
- user = dao.getUser(id);
- //s.setAttribute("user", user);
- return SUCCESS;
- }
- public String edit(){
- int id = Integer.parseInt(ServletActionContext.getRequest().getParameter("id"));
- dao.edit(user, id);
- return SUCCESS;
- }
- public String add(){
- dao.add(user);
- return SUCCESS;
- }
- }
(5)struts.xml
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
- <struts>
- <package name="suibian" extends="struts-default" namespace="/">
- <action name="Test" class="com.phome.test.TestAction" method="excute">
- <result name="success">/list.jsp</result>
- </action>
- </package>
- <package name="list" extends="struts-default" namespace="/">
- <action name="list" class="com.phome.crud.UserAction" method="list_users">
- <result name="success">/list.jsp</result>
- </action>
- <action name="get" class="com.phome.crud.UserAction" method="get">
- <result name="success">/edit.jsp</result>
- </action>
- <action name="edit" class="com.phome.crud.UserAction" method="edit">
- <result name="success" type="redirectAction">list</result>
- </action>
- <action name="add" class="com.phome.crud.UserAction" method="add">
- <result name="success" type="redirectAction">list</result>
- </action>
- </package>
- </struts>
(6)list.jsp
- <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme() + "://"
- + request.getServerName() + ":" + request.getServerPort()
- + path + "/";
- %>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>User List</title>
- <script type="text/javascript">
- function del(src) {
- if (confirm("确定要删除吗?")) {
- window.location.href(src);
- return;
- }
- }
- </script>
- </head>
- <body>
- <div align="center">
- <h1>用户列表</h1>
- <a href="add.jsp"><strong>添加用户</strong></a><br/><br/>
- <table align="center" border="1" cellspacing="0" cellpadding="0">
- <thead style="background-color: #eeeeee">
- <tr>
- <th width="200px" >ID</th>
- <th width="200px" >姓名</th>
- <th width="200px" >性别</th>
- <th width="200px" >年龄</th>
- <th width="200px" >操作</th>
- </tr>
- </thead>
- <tbody>
- <c:forEach items="${users}" var="user">
- <tr height="15px">
- <td align="center">${user.id }</td>
- <td align="center">${user.name }</td>
- <td align="center">${user.gender }</td>
- <td align="center">${user.age }</td>
- <td align="center"><a href="${pageContext.request.contextPath }/get.action?id=${user.id }">修改</a>
- <a href="" onclick="del('bathPath')">删除</a></td>
- </tr>
- </c:forEach>
- </tbody>
- </table>
- </div>
- </body>
- </html>
(7)add.jsp
- <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>add product</title>
- </head>
- <body>
- <div align="center">
- <h1>add user</h1>
- <form action="${pageContext.request.contextPath }/add.action" method="post">
- <table>
- <tr>
- <td width="80px">登陆名:</td>
- <td><input type="text" name="user.loginid" value="${user.loginid }"/></td>
- </tr>
- <tr>
- <td width="80px">登陆密码:</td>
- <td><input type="text" name="user.loginpwd" value="${user.loginpwd }"/></td>
- </tr>
- <tr>
- <td width="80px">姓名:</td>
- <td><input type="text" name="user.name" value="${user.name }"/></td>
- </tr>
- <tr>
- <td width="80px">性别:</td>
- <td><input type="text" name="user.gender" value="${user.gender }"/></td>
- </tr>
- <tr>
- <td width="80px">年龄:</td>
- <td><input type="text" name="user.age" value="${user.age }"/></td>
- </tr>
- <tr>
- <td><a href="${pageContext.request.contextPath }/list.action">返回</a></td>
- <td><input type="submit" value="添加"/></td>
- </tr>
- </table>
- </form>
- </div>
- </body>
- </html>
(8)edit.jsp
- <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>update user</title>
- </head>
- <body>
- <div align="center">
- <h1>修改user</h1>
- <form action="${pageContext.request.contextPath }/edit.action?id=${user.id }" method="post">
- <input type="hidden" name="user.id" value="${user.id }"/>
- <input type="hidden" name="user.loginid" value="${user.loginid }"/>
- <input type="hidden" name="user.loginpwd" value="${user.loginpwd }"/>
- <table>
- <tr>
- <td width="80px">姓名:</td>
- <td><input type="text" name="user.name" value="${user.name }"/></td>
- </tr>
- <tr>
- <td width="80px">性别:</td>
- <td><input type="text" name="user.gender" value="${user.gender }"/></td>
- </tr>
- <tr>
- <td width="80px">年龄:</td>
- <td><input type="text" name="user.age" value="${user.age }"/></td>
- </tr>
- <tr>
- <td><a href="${pageContext.request.contextPath }/list.action">返回</a></td>
- <td><input type="submit" value="修改"/></td>
- </tr>
- </table>
- </form>
- </div>
- </body>
- </html>
5.效果展示
Java——Struts2 crud 简单实例(学习struts2和ssh) 用Myeclipse实现的更多相关文章
- java反射机制简单实例
目录 Java反射 简单实例 @(目录) Java反射 Java语言允许通过程序化的方式间接对Class进行操作.Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通 ...
- struts2 的简单实例应用
功能:本实例实现的功能是从输入界面输入用户名和密码,若用户名和密码正确转到成功界面,否则转到失败界面. 1)在创建了一个JavaWeb工程后,导入struts2的核心支持包库. 2)web项目右击-M ...
- Java UDP的简单实例以及知识点简述
UDP的实现 Java中实现UDP协议的两个类,分别是DatagramPacket数据包类以及DatagramSocket套接字类. 其与TCP协议实现不同的是: UDP的套接字DatagramSoc ...
- Java WebService 开发简单实例
Web Service 是一种新的web应用程序分支,他们是自包含.自描述.模块化的应用,可以发布.定位.通过web调用.Web Service可以执行从简单的请求到复杂商务处理的任何功能.一旦部署以 ...
- Java RMI 最简单实例
IHello.java import java.rmi.Remote; import java.rmi.RemoteException; public interface IHello extends ...
- PHP调用JAVA的WebService简单实例
使用PHP调用JAVA语言开发的WebService.客户端提交两个String类型的参数,服务端返回一个对象类型.服务端使用AXIS-1.4作为SOAP引擎.客户端为PHP5.2.9,使用NuSOA ...
- Java WebService(实战) 简单实例
一.准备工作(以下为本实例使用工具) 1.MyEclipse10.7.1 2.JDK 1.6.0_22 二.创建服务端 1.创建[Web Service Project],命名为[TheService ...
- java反射机制-简单实例
public class Car { private String brand; private String color; private int maxSpeed; public Car() { ...
- 【SSH学习笔记】用Struts2实现简单的用户登录
准备阶段 在使用学习Struts2的时候首先要下载相应的架包 Struts2资源下载 这里建议下载第一个,在struts-2.5.14.1-all.zip里有很多实用的东西,不仅有架包还有官方为开发者 ...
随机推荐
- Delphi学习技巧
我感觉学习最大的诀窍是, 尽快捕捉到设计者(Delphi VCL 的设计者.进而是 Windows 操作系统的设计者)的某些思路, 和大师的思路吻合了, 才能够融汇贯通, 同时从容使用它们的成果. 碰 ...
- gitlab搭建与配置说明
1. 概述 Gitlab分为社区版和企业版,此次安装的是社区版(gitlab-ce). 2. 准备 本次使用系统为Ubuntu16.04. 3. 安装 添加GitLab仓库,并安装到服务器上(将git ...
- Quartz.NET 前一次任务未执行完成时不触发下次的解决方法
如图所示,在Job 上 加 [DisallowConcurrentExecution] 特性
- Unsupported major.minor version ... JDK具体对应版本
java.lang.UnsupportedClassVersionError: hudson/remoting/Launcher : Unsupported major.minor version 5 ...
- Java -- JDBC 学习--通过Statement进行数据库更新操作
通过 JDBC 向指定的数据表中插入一条记录. 1. Statement: 用于执行 SQL 语句的对象 1). 通过 Connection 的 createStatement() 方法来获取 2). ...
- DownloadProvider 源码详细分析
DownloadProvider 简介 DownloadProvider 是Android提供的DownloadManager的增强版,亮点是支持断点下载,提供了“开始下载”,“暂停下载”,“重新下载 ...
- 洛谷P3768 简单的数学题
解: 神奇的一批......参观yyb巨神的博客. 大致思路就是第一步枚举gcd,发现后面有个限制是gcd=1,用反演,得到的F(x)是两个等差数列求积. 然后发现有个地方我们除法的除数是乘积,于是换 ...
- zookeeper安装和使用(Windows环境)
zookeeper安装和使用(Windows环境) 2017年11月27日 10:36:07 董昊炘的博客 阅读数:14785 标签: zookeeperwindows zookeeper 一.简 ...
- 洛谷 P1880 [NOI1995] 石子合并(区间DP)
传送门 https://www.cnblogs.com/violet-acmer/p/9852294.html 题解: 这道题是石子合并问题稍微升级版 这道题和经典石子合并问题的不同在于,经典的石子合 ...
- ELK技术实战-安装Elk 5.x平台
ELK技术实战–了解Elk各组件 转载 http://www.ywnds.com/?p=9776 ELK技术实战-部署Elk 2.x平台 ELK Stack是软件集合Elasticsearch. ...