zoukankan      html  css  js  c++  java
  • 后端开发日志(一):用户注册

    大致要求是做一个台灯项目,三个专业各有分工,我们被派去做一个在线购物网站。组内本专业一共三名同学,都是妹子……看到这个情况我的直觉就是“糟糕,要去做后台开发了”……预感没错,果然是这个样子。

    7月7、8两天,老师讲了一个简单的JavaWeb例子:用户登录。数据库里存有username和password,匹配成功之后才可以登录,跳转到欢迎界面,显示用户名。

    架构如下:

    |-jspServlet

      |-src

        |-jspservlet.dao//存放接口

          UserDAO.java

        |-jspservlet.dao.impl//存放接口的实现类

          UserDAOImpl.java

        |-jspservlet.db//数据库连接操作

          DBConnect.java

        |-jspservlet.servlet//用来连接前后端,不知道叫什么

          Loginservlet.java

        |-jspservlet.vo//用户属性,getter setter什么的,感觉像是JavaBean

          User.java

      |-WebRoot

        |-WEB-INF

          web.xml

        login.jsp

        error.jsp

        welcome.jsp

    登录比较容易上手,老师昨天提了新要求:注册。

    因为注册同样用到User类中的属性,所以我没有对其进行改动。UserDAO是接口,同样也没有改,而是添加了一个新的实现类UserDAOImpReg,连接部分添加新类Registerservlet.

    package jspservlet.dao.impl;
    
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    import jspservlet.dao.UserDAO;
    import jspservlet.db.DBConnect;
    import jspservlet.vo.User;
    
    public class UserDAOImpReg implements UserDAO{
        public int queryByUsername(User user) throws Exception {
            int flag = 1;
            String sql = "select * from userinfo where username=?";
            String sqlAdd="insert into javawebdb.userinfo values(?,?)";
            PreparedStatement pstmt = null;
            DBConnect dbc = null;
            //数据库连接
            try{
                dbc = new DBConnect();
                pstmt = dbc.getConnection().prepareStatement(sql);
                pstmt.setString(1,user.getUsername());
                //查询与输入信息对应的元组
                ResultSet rs = pstmt.executeQuery();
                //检验是否与数据库中已有用户名冲突
                if(rs.next()) {
                    if(rs.getString("username").equals(user.getUsername())) {
                        flag = 0;
                    }
                }
                if(flag == 1){
                //若不冲突,则向数据库中写入新的用户信息
                    pstmt = dbc.getConnection().prepareStatement(sqlAdd);
                    pstmt.setString(1,user.getUsername());
                    pstmt.setString(2,user.getPassword());
                    pstmt.executeUpdate();
                }
                rs.close();
                pstmt.close();
            } catch (SQLException e) {
                System.out.println(e.getMessage());
            } finally {
                //关闭数据库连接
                dbc.close();
            }
            return flag;
        }
    }
                

    之前一直没有加 executeUpdate() ,信息写不进去,后来才发现问题出在这里。

    下午折腾折腾搞了一个产品数据库,准备做查询功能。

    唉,主要是以前只学了Java,没有接触过JavaWeb,所以上手有些慢。不过万事开头难,明天估计就会顺利很多。

  • 相关阅读:
    2021.Jan.11.Mon
    Samba
    nfs
    python数据类型(字典dictionary2)
    python数据类型(字典dictionary1)
    python数据类型(元祖tuple)
    python数据类型(列表List2)
    python数据类型(列表List1)
    python数据类型(字符串String2)
    python数据类型(数字Numbers)
  • 原文地址:https://www.cnblogs.com/zxysmalleyes/p/4636498.html
Copyright © 2011-2022 走看看