struts2 通配符*实现用户数据增删改到数据库

在这里插入图片描述

struts.xml相关配置

注意:
1.namespace="/user" 该属性定义包的命名空间,用来提供查找action,需要在form标签的action里加 user/
2.运行时候把{1}的内容自动替换成URL中的* 所对应的,就比如当提交新增form时,{1}就被替换成add.然后跳转到addPage.jsp

	<package name="mypack" namespace="/user" extends="struts-default">
		<!-- Struts2 2.3以后的版本使用通配符调用方法的时候,需要添加一条如下语句 -->
		<global-allowed-methods>regex:.*</global-allowed-methods>
		<action name="*user" class="com.cqie.ssh.action.UserAction" method="{1}">
			<result name="input">/index.jsp</result>
			<result name="success">/WEB-INF/{1}Page.jsp</result>
			<result name="ERROR">/WEB-INF/error.jsp</result>
		</action>	
	</package>

在这里插入图片描述

UserAction.java

1.定义name,pwd,phone…属性
2.添加get,set方法
3.写一个add方法,通过UserDao.java pst.executeUpdate();返回一个值判断添加是否成功

	public String add(){
		System.out.print(getName());
		UserDao userDao = new UserDao();
		int ret = userDao.saveUser(getName(), getSex(), getPhone(), getEmail(), getPwd());
		if(ret>0){
			return SUCCESS;
		}else{
			return ERROR;
		}
	}

UserDao.java

如果添加成功则return pst.executeUpdate();会返回1,否则return -1;返回-1

public class UserDao{
	private static Logger logger = LoggerFactory.getLogger(UserDao.class);
	private static DBConn dbConn = new DBConn();
	public int saveUser(String name, Integer sex, String phone, String email, int pwd){
			Connection conn = null;
			PreparedStatement pst = null;
			String sql = "insert into user_info(name, sex, phone, email, pwd) values(?,?,?,?,?)";
			try{
				conn = dbConn.getConnection();
				pst = conn.prepareStatement(sql);
				pst.setString(1, name);
				pst.setInt(2, sex);
				pst.setString(3, phone);
				pst.setString(4, email);
				pst.setInt(5, pwd);
				
				return pst.executeUpdate();
			} catch(Exception e){
				e.printStackTrace();
				logger.info("出现异常了:", e.getMessage());

				return -1;
			} finally{
				try {
					if(pst!=null)
						pst.close();
					if(conn!=null)
					conn.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}		
	}

DBConn.java连接数据库(我用的mysql8.0)

记得修改root,填写自己数据库的账号和密码

package com.cqie.ssh.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBConn {
	private static Connection conn;
	public Connection getConnection() throws SQLException{
		try{
			Class.forName("com.mysql.jdbc.Driver");
			conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名?useSSL=false", "root", "root");
		} catch(ClassNotFoundException ex){
			ex.printStackTrace();
		}
		return conn;
	}
}

最后还有一个添加成功后返回自己添加的信息的页面

在这里插入图片描述

<body>
	这是新增后跳转的页面====================<br>
	您输入的内容是:<br/>
	用户名:<s:property value="name"/><br/>
	密码:<s:property value="pwd"/><br/>
	性别:<s:property value="sex"/><br/>
	电话:<s:property value="phone"/><br/>
	邮箱:<s:property value="email"/><br/>
</body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值