(资料图片仅供参考)
Document 二、创建数据库数据表CREATE TABLE tb_user(id INT PRIMARY KEY AUTO_INCREMENT,username VARCHAR(20) UNIQUE,PASSWORD VARCHAR(32));INSERT INTO tb_user(username,PASSWORD) VALUES("zhangsan","123"),("lisi","234");SELECT * FROM tb_user;三、创建项目,编写实体类package com.itheima.pojo;public class User { private Integer id; private String username; private String password; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User{" + "id=" + id + ", username="" + username + "\"" + ", password="" + password + "\"" + "}"; }}四、导入mybatis,mysql驱动坐标 org.mybatis mybatis 3.5.5 mysql mysql-connector-java 5.1.38 五、创建mybatis-config.xml核心配置文件,UserMapper.xml映射文件,UserMapper接口resource目录下的核心配置文件
创建itheima目录下的mapper包的UserMapper接口
创建resource目录下的itheima目录下的mapper包的UserMapper.xml映射文件
六、补全代码UserMapper接口(此处用了注解的方式,所以没写映射文件)package com.itheima.mapper;import com.itheima.pojo.User;import org.apache.ibatis.annotations.Param;import org.apache.ibatis.annotations.Select;public interface UserMapper { /** * 根据用户名和密码查询对象 * @param username * @param password * @return */ @Select("select * from tb_user where username = #{username} and password = #{password}") User Select(@Param("username") String username, @Param("password") String password);}html代码(补全表单跳转的servlet)编写servletpackage com.itheima.web;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.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;import java.io.PrintWriter;@WebServlet("/loginServlet")public class LoginServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 1. 接收用户名和密码 String username = request.getParameter("username"); String password = request.getParameter("password"); // 2. 调用mybatis完成查询 // 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 user = userMapper.Select(username, password); // 2.5 释放资源 sqlSession.close(); //获取字符输出流,并设置content type response.setContentType("text/html;charset=utf-8"); PrintWriter writer = response.getWriter(); // 3. 判断uer是否为null if (user != null){ //登录成功 writer.write("登录成功"); }else { //登录失败 writer.write("登录失败"); } }}此时代码就可以正常运行了,需要注意的是,pom文件中一定要注意mysql的驱动是自己下载的驱动,如果是maven导入的驱动会报错。我在此处犯了两次错误,浪费了许多时间!
标签:
Copyright @ 2015-2018 每日it网版权所有 备案号:浙ICP备2022016517号-15 联系邮箱:5 146 761 13 @qq.com