User.java
package com.cr.pojo; public class User { private String username; private String password; 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; } } 7、DAO层建立
创建测试用表t_user,并添加两条数据
在mapper包下新建一个UserMapper接口,包含一个select查询方法,可以查询用户是否存在,若不存在返回null
UserMapper.java
package com.cr.mapper; import com.cr.pojo.User; public interface UserMapper { User select(User user); }
创建UserMapper和mybatis映射文件 UserMapper.xml,路径是resource/com/cr/mapper
UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.cr.mapper.UserMapper"> <select parameterType="com.cr.pojo.User" resultType="com.cr.pojo.User"> select * from t_user where username = #{username} and password = #{password} </select> </mapper> 8、服务层建立
建立UserService接口,位于service包下
UserService.java
package com.cr.service; import com.cr.pojo.User; public interface UserService { /** * 根据user信息检查数据库中是否存在该用户 */ User get(User user); }
在service包下建立impl子包,添加实现类UserServiceImpl
UserServiceImpl.java
package com.cr.service.impl; import com.cr.mapper.UserMapper; import com.cr.pojo.User; import com.cr.service.UserService; import org.springframework.stereotype.Service; import javax.annotation.Resource; // @Service用于业务层 功能等同于@component @Service("userService") public class UserServiceImpl implements UserService { @Resource private UserMapper userMapper; @Override public User get(User user) { // 通过Mapper的select方法查询用户 return userMapper.select(user); } } 9、建立控制器在controller包下建立控制器UserController,根据表单的用户名和密码,在数据中匹配,如果存在该用户,则跳转到登录成功界面user.jsp,如果用户不存在则返回null,重定向回登录界面,以便于重新登录。
UserController.java
package com.cr.controller; import com.cr.pojo.User; import com.cr.service.UserService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import javax.annotation.Resource; // spring-mybatis.xml和springmvc-servlet.xml都配置了扫描控制层 @Controller public class UserController { // 注入UserService @Resource private UserService userService; @RequestMapping(value = "/login") public String login(User user) { ModelAndView mv = new ModelAndView(); System.out.println("开始查询---"); user = userService.get(user); if (user != null) { System.out.println("查到的User: " + user.getUsername()); mv.addObject("user", user); // 转到user.jsp用户界面 return "user"; } else { System.out.println("未查到此用户"); // 查不到用户信息,则重定向回登录界面 System.out.println("重定向回登录界面---"); return "login"; } } } 10、建立Jsp页面login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>login</title> </head> <body> <h1>用户登录界面</h1> <h2>用户信息</h2> <h3>Tom 123</h3> <h3>Jack 456</h3> <br> <form action="/login" method="post"> <table> <tr> <td>用户名</td> <td><input value="" /></td> </tr> <tr> <td>密码</td> <td><input /></td> </tr> <tr> <td></td> <td><input type="submit" value="提交"></td> </tr> </table> </form> </body> </html>user.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>User</title> </head> <body> <h1>用户登录成功</h1> <br> 欢迎您: ${user} </body> </html> 四、部署项目 1、Tomcat配置 2、启动服务器
浏览器访问:8080/login
填写错误的用户名或者密码,浏览器将重新返回登录界面,控制台显示如下:
填写正确的用户名Tom和密码123,跳转到登录成功界面user.jsp,显示如下:
以上说明SSM框架整合成功。
五、一些注意事项MySQL的驱动要匹配本机安装的版本
resources文件夹要被标记为Resource Root
xml配置文件中的classpath相当于/resources
IDEA可能会提示上下文配置文件没有添加,只要打开工程结构选项,把当前xml文件添加到工程中即可
注意各个xml配置文件中扫描包的位置,如果有遗漏就会报错
注意各个jar包的版本问题,我原来使用最新的Mybatis 3.4.6就会出现报错
java.lang.IllegalAccessError: org.apache.commons.dbcp.DelegatingPreparedStatement.isClosed()
修改版本为3.2.6后解决问题
欢迎访问我的个人博客: https://chenran.tk/