项目登录功能

来源:互联网 发布:移动网络机顶盒遥控器 编辑:程序博客网 时间:2024/06/16 05:42

登录套路:

1. dao中写添加用户和注册方法

//添加

public int add(User u){

String sql="insert into User values(?,?,?,?,?,?,?,?,0,?)";

QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());

try {

return qr.update(sql, u.getUid(),u.getUsername(),u.getPassword(),

u.getName(),u.getEmail(),u.getTelephone(),u.getBirthday(),u.getSex(),u.getState());

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return 0;

}

//注册

public int selectNameCount(String username){

String sql="select count(*) from User where username=?";

QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());

try {

return ((Long)qr.query(sql, new ScalarHandler(),username)).intValue();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return 0;

}

2. service中调用dao的方法,并判断用户名是否已存在

UserDao ud=new UserDao();

public int reg(User u){

//判断用户名是否重复(注册时)

if(ud.selectNameCount(u.getUsername())>0){

//注册失败

return 0;

}else{

//注册成功

return ud.add(u);

}

}

3. servlet中调用service中的方法,获取表单数据并封装,最后进行注

//获取表单数据并封装

 Map<String, String[]> map=request.getParameterMap();

 User u=new User();

 try {

BeanUtils.populate(u,map);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}  

//u中添加id

 u.setUid(CommonUItil.getUUI());

//完成注册

 int count=us.reg(u);

 if(count>0){

 response.getWriter().print("<script>alert('注册成功');location='index.jsp';</script>");

 }else{

 //request中添加一个数据

 request.setAttribute("msg", "注册失败");

 request.getRequestDispatcher("register.jsp").forward(request, response);

 }

4. 修改注册页面的form表单中的actionmethod以及每个inputname

action="${pageContext.request.contextPath}/UserServlet?method=reg"  method="post"

Inputname="username"

5. 运行项目,进行注册,查看数据库数据,添加成功

6. 期间遇到的问题

Java.Sql.SQLException:Colum “cid” cannot be null

原因是id没有设置成功,解决方案:把id放在对象里即可。

原创粉丝点击