JavaWeb检测注册内容是否在数据库中有相同的内容

1.原理

prep1 = conn.prepareStatement("select * from youkexinxi where youkexingming=?");
prep1.setString(1,e.getyoukexingming());
ResultSet rs = prep1.executeQuery();
rs.next()函数

传入需要注册的姓名,使用rs.next()函数返回查询结果,若是有结果,则返回true,若是没有结果,则返回false

2.具体代码实现

2.1daoImpl层

public boolean addyoukexinxi(youkexinxi e) throws Exception {
		Connection conn = null;
		PreparedStatement prep = null,prep1=null;
		String sql ="insert into youkexinxi(youkebianhao,youkexingming,xingbie,shenfengzhenghao,lianxifangshi,youkemima)" + 
				"values(null,?,?,?,?,?)";
		
			conn = DBUtil.getConnection();
			prep1 = conn.prepareStatement("select * from youkexinxi where youkexingming=?");
			System.out.println("要注册的姓名是:"+e.getyoukexingming());
			prep1.setString(1,e.getyoukexingming());
			ResultSet rs = prep1.executeQuery();
			System.out.println("查询已注册的结果是:"+rs.next());
			if(rs.next()){
			//out.println("该用户名已经被注册!");
			//response.sendRedirect("register.jsp");
				System.out.println("用户已被注册");
				DBUtil.close(conn);
				return false;
			}
			else{
				prep = conn.prepareStatement(sql);
				
				prep.setString(1, e.getyoukexingming());
				prep.setString(2, e.getxingbie());
				prep.setString(3, e.getshenfengzhenghao());
				prep.setString(4, e.getlianxifangshi());
				prep.setString(5, e.getyoukemima());
				prep.executeUpdate();
				DBUtil.close(conn);
				return true;
			} 
	}

在dao层我们可以返回是否添加成功的结果,再在Service层和controller层做进一步的处理。

2.2service层

public Result addyoukexinxi(youkexinxi e) throws Exception {
		Result result = new Result();
		youkexinxiDaoImpl dao = new youkexinxiDaoImpl();
		if(dao.addyoukexinxi(e)==true){
			result.setStatus(0);
			result.setMessage("添加成功");
			result.setData(e);
			System.out.println("注册在Service层运行成功");
		}
		else{
			result.setStatus(1);
			result.setMessage("添加成功");
			result.setData(e);
			System.out.println("注册在Service层运行失败,注册失败");
		}
		return result;
	}

将是否查重的结果传递到Service层后,Service继续向下一层传递

2.3controller层

if("zhuce.you".equals(url)) {
				System.out.println("进入添加");
				youkexinxi e = new youkexinxi();
				
				e.setyoukexingming(request.getParameter("youkexingming"));
				e.setxingbie(request.getParameter("xingbie"));
				e.setshenfengzhenghao(request.getParameter("shenfengzhenghao"));
				e.setlianxifangshi(request.getParameter("lianxifangshi"));
				e.setyoukemima(request.getParameter("youkemima"));
				System.out.println("游客密码是:"+request.getParameter("youkemima"));
				System.out.println("游客的完整信息是:"+e);
				Result a=null;
				try {
					a=service.addyoukexinxi(e);
				} catch (Exception e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
				if(a.getStatus()==0){
					response.sendRedirect("/demo/registersuccess.jsp");
					System.out.println("注册成功");
				}
				
				if(a.getStatus()==1){
					response.sendRedirect("/demo/reregister.jsp");
					System.out.println("重名,注册失败");
				}
				//response.sendRedirect("/demo/e-login.jsp");
			}

用这个状态判断是否重名,再决定转向不同的JSP页面

3.参考

https://zhidao.baidu.com/question/229074276.html
https://zhidao.baidu.com/question/54366814.html
https://zhidao.baidu.com/question/1609697956765503067.html
https://zhidao.baidu.com/question/1366281413639445259.html

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值