


mybatis-config配置信息
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"        "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration>    <!--起别名-->    <typeAliases>        <package name="com.itheima.pojo"/>    </typeAliases>    <environments default="development">        <environment id="development">            <transactionManager type="JDBC"/>            <dataSource type="POOLED">                <property name="driver" value="com.mysql.jdbc.Driver"/>                <property name="url" value="jdbc:mysql:///db1?useSSL=false&useServerPrepStmts=true"/>                <property name="username" value="root"/>                <property name="password" value="123456"/>            </dataSource>        </environment>    </environments>    <mappers>        <!--扫描mapper-->        <package name="com.itheima.mapper"/>    </mappers></configuration>
package com.itheima.web.reponse;import com.itheima.mapper.UserMapper;import com.itheima.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.*;import javax.servlet.http.*;import javax.servlet.annotation.*;import java.io.IOException;import java.io.InputStream;import java.io.PrintWriter;@WebServlet("/loginServlet")public class LoginServlet extends HttpServlet {    @Override    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        // 接收用户名和密码        // getParameter是根据 username所对应的键,获取该值  (就是获取用户名username所填入的值)        String username = request.getParameter("username");        String password = request.getParameter("password");        // 2. 调用MyBatis完成查询        // 2.1 获取SqlSessionFactory对象   (去官网查,不要记  改路径即可)        String resource = "mybatis-config.xml"; // 在resources目录的下面,直接写名字即可        InputStream inputStream = Resources.getResourceAsStream(resource);        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);        // 2.2 获取SqlSession对象        SqlSession sqlSession = sqlSessionFactory.openSession();        // 2.3 获取Mapper  映射对象 -- 找到映射接口,然后.class即可获取该对象        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);        // 2.4 调用方法映射对象的查询(select)方法 来查询用户名密码        User user = userMapper.select(username, password);        // 2.5 释放资源        sqlSession.close();        // 获取字符输出流,并设置content type        response.setContentType("text/html;charset=utf-8");        // 获取响应的输出流,用来写用户登录成功和登录失败,打印其提示信息        PrintWriter writer = response.getWriter();        // 3. 判断user释放为null        if (user != null){            // 登录成功            writer.write("登录成功");        }else {            // 登录失败            writer.write("登录失败");        }    }    @Override    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        this.doGet(request, response);    }}
package com.itheima.web.reponse;import com.itheima.mapper.UserMapper;import com.itheima.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.*;import javax.servlet.http.*;import javax.servlet.annotation.*;import java.io.IOException;import java.io.InputStream;@WebServlet("/registerServlet")public class RegisterServlet extends HttpServlet {    @Override    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        // 1. 接受用户数据        String username = request.getParameter("username");        String password = request.getParameter("password");        // 封装用户对象        User user = new User();        user.setUsername(username);        user.setPassword(password);        // 2. 调用MyBatis完成查询        // 2.1 获取SqlSessionFactory对象   (去官网查,不要记  改路径即可)        String resource = "mybatis-config.xml"; // 在resources目录的下面,直接写名字即可        InputStream inputStream = Resources.getResourceAsStream(resource);        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);        // 2.2 获取SqlSession对象        SqlSession sqlSession = sqlSessionFactory.openSession();        // 2.3 获取Mapper  映射对象 -- 找到映射接口,然后.class即可获取该对象        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);        // 2.4 调用方法  // 查询是否存在该username 对象        User u = userMapper.selectByUsername(username);        // 3. 判断用户对象释放为null        if ( u == null) {            // 用户名不存在,添加用户(封装好的对象)            userMapper.add(user);            // 提交事务,一定要提交,因为要把数据提交到数据库,不提交就是临时的数据            sqlSession.commit();            // 释放资源            sqlSession.close();        }else {            // 用户存在,给出提示信息            response.setContentType("text/html;charset=utf-8");            // 这里没有给对象名,但是还是创建了输出流对象(getWrite),然后使用其write方法            response.getWriter().write("用户名已经存在");        }    }    @Override    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        this.doGet(request, response);    }}
<!DOCTYPE html><html lang="en">  <head>    <meta charset="UTF-8">    <title>欢迎注册</title>    <link href="css/register.css" rel="stylesheet">  </head>  <body>    <div class="form-div">      <div class="reg-content">        <h1>欢迎注册</h1>        <span>已有帐号?</span> <a href="login.html">登录</a>      </div>      <form id="reg-form" action="/request-demo/registerServlet" method="post">        <table>          <tr>            <td>用户名</td>            <td class="inputs">              <input name="username" type="text" id="username">              <br>              <span id="username_err" class="err_msg" style="display: none">用户名不太受欢迎</span>            </td>          </tr>          <tr>            <td>密码</td>            <td class="inputs">              <input name="password" type="password" id="password">              <br>              <span id="password_err" class="err_msg" style="display: none">密码格式有误</span>            </td>          </tr>        </table>        <div class="buttons">          <!-- 一点击按钮submit提交按钮,就能提交到from表单的action那个目录中去 -->          <input value="注 册" type="submit" id="reg_btn">        </div>        <br class="clear">      </form>    </div>  </body></html>
<!DOCTYPE html><html lang="en">  <head>    <meta charset="UTF-8">    <title>login</title>    <link href="css/login.css" rel="stylesheet">  </head>  <body>    <div id="loginDiv">      <!-- 由于是表单,所以要设置虚拟目录(加模块名)  action是将表单提交到哪里 -->      <form action="/request-demo/loginServlet" method="post" id="form">        <h1 id="loginMsg">LOGIN IN</h1>        <p>Username:<input id="username" name="username" type="text"></p>        <p>Password:<input id="password" name="password" type="password"></p>        <div id="subDiv">          <input type="submit" class="button" value="login up">          <input type="reset" class="button" value="reset">             <a href="register.html">没有账号?点击注册</a>        </div>      </form>    </div>  </body></html>