栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Javaweb - 实例功能(下) - 用户注册功能实现(mybatis、maven、mysql、tomcat、servlet)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Javaweb - 实例功能(下) - 用户注册功能实现(mybatis、maven、mysql、tomcat、servlet)

文章目录

流程说明

UserMapper.java

映射sql Register表单

css文件Js文件 RegisterServlet 测试运行

注意

流程说明
    用户填写用户名、密码等信息、点击注册按钮,提交到RegisterServlet在RegisterServlet中使用MyBatis 保存数据保存前,需要判断用户名是否已经存在:根据用户名查询数据库

UserMapper.java

编写UserMapper接口中方法,这里add方法使用mybatis,不使用注解,容易bug

package com.taotao.mapper;

import com.taotao.pojo.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

@SuppressWarnings({"all"})
public interface UserMapper {
    
    @Select("select * from tb_user where username = #{username} and password = #{password}")
    User select(@Param("username") String username, @Param("password") String password);

    
    @Select("select * from tb_user where username = #{username}")
    User selectByUsername(String username);

//    
//    @Insert("insert into tb_user values (null,#{username},#{password})")
    void add(User user);
}

映射sql

编写映射UserMapper.xml文件





    
        insert into tb_user(id,username,password)
        values (null,#{username},#{password});
    


Register表单

编写Register.html表单页面



	
		
		Register
		
	
	
		

Welcome Register



css文件
	*{
				margin: 0;
				padding: 0;
				border: 0px;
			}
			body{
				background-color: skyblue;
			}
			form{
				position: absolute;
				left: 50%;
				top: 50%;
				margin-left: -300px;
				margin-top: -280px;
				width: 600px;
				height: 400px;
				background-color: #ebc4c4;
				border: 1px solid;
				border-radius: 10px;
				box-shadow: 0px 0px 5px 5px rgba(0,0,0,.3);
				transition: all 1s;
				opacity: 0;
			}
			.show{
				opacity: 1;
				transform:translateY(80px)
				
			}
			.head{
				width: 100%;
				font-family: "隶书";
				text-align: center;
				font-size: 24px;
				color: #ffffff;
				margin-top: 50px;
				letter-spacing: 5px;
			}
			#user{
				position: absolute;
				top: 40%;
				left: 50%;
				margin-left: -100px;
				width: 200px;
				height: 20px;
				outline: none;
				background-color: transparent;
				border-bottom: 1px solid;
			}
			#paws{
				position: absolute;
				top: 50%;
				left: 50%;
				margin-left: -100px;
				width: 200px;
				height: 20px;
				outline: none;
				background-color: transparent;
				border-bottom: 1px solid;
			}
			#sub{
				position: absolute;
				top: 60%;
				left: 50%;
				margin-left: -60px;
				width: 120px;
				height: 35px;
				background-color: orange;
				border-radius: 8px;
			}
			#sub:hover{
				cursor: pointer;
				background-color: #87CEEB;
			}
Js文件
 var from = document.querySelector('form');
		   console.log(from);
window.addEventListener('load',function(){
		from.className=('show'+' from')
})

RegisterServlet

com.taotao.web包下新建RegisterServlet.java类

package com.taotao.web;

import com.taotao.mapper.UserMapper;
import com.taotao.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;


@SuppressWarnings({"all"})
@WebServlet(urlPatterns = "/registerServlet")
public class RegisterServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1.接收用户数据
        String username = req.getParameter("username");
        String password = req.getParameter("password");

        //封装用户对象
        User user = new User();
        user.setUsername(username);
        user.setPassword(password);

        //2.调用mapper 根据用户名查询用户对象
        //2.1 获取sqlSessionFactory对象
        String resource = "mybatis.config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        //2.2获取SqlSession对象
        SqlSession sqlSession = sqlSessionFactory.openSession();

        //2.3获取Mapper
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

        //2.4调用方法
        User u = userMapper.selectByUsername(username);
        System.out.println(user);
        //设置utf-8编码格式以及识别html标签
        resp.setContentType("text/html;charset=utf-8");

        //3.判断用户对象是否为null
        if (u == null){
            //用户名不存在,添加用户
            userMapper.add(user);
            //提交事务
            sqlSession.commit();

            //释放资源
            sqlSession.close();
            resp.getWriter().write("create user successful!!");
        }else {
            //用户名存在,给出提示信息
            resp.getWriter().write("can't create the user,the user is exists");
        }
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doGet(req, resp);
    }


}

测试运行

注意

遇到了一个注解sql参数报错,最后使用mybatis映射文件sql解决问题

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/781273.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号