image.png
image.png
image.png
image.png

mybatis-config配置信息

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