后端开发日志(一):用户注册
大致要求是做一个台灯项目,三个专业各有分工,我们被派去做一个在线购物网站。组内本专业一共三名同学,都是妹子……看到这个情况我的直觉就是“糟糕,要去做后台开发了”……预感没错,果然是这个样子。
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,所以上手有些慢。不过万事开头难,明天估计就会顺利很多。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步