SSM框架用户查询注册登录IDEA整合SpringSpring MVCMybatis 框架

目录

零、前言

一、说明

1、整合说明

2、最终目标

3、数据库准备

二、搭建整合环境

1、创建 maven 工程

2、导入依赖坐标

3、创建java和resources文件夹

4、创建类和接口文件

【1】创建存放 javabean 类文件:cn.star.domain.Users

【2】创建数据访问层 UsersDao 接口:cn.star.dao.UsersDao

【3】创建业务层 UsersService 接口:cn.star.service.UsersService

【4】Service 实现类:cn.star.service.impl.UsersServiceImpl

【5】创建用户控制层UsersController类:cn.star.controller.UsersController

5、创建配置文件

【1】spring.xml

【2】spring-mvc.xml

【3】mybatis.xml

【4】log4j.properties

【5】目录结构

三、整合框架编写

1、编写spring框架

【1】配置注解扫描

【2】为service实现类添加注解

【3】测试spring框架

2、编写 SpringMVC 框架

【1】配置 web.xml

【2】配置 spring-mvc.xml

【3】测试SpringMVC

3、Spring 整合 SpringMVC 框架

【1】配置web.xml

【2】service注入controller

【3】测试运行

4、编写 mybatis 框架

【1】配置mybatis.xml配置文件

【2】编写UserDao类

【3】编写测试类

5、Spring整合Mybatis框架

【1】配置spring.xml

【2】注入dao数据

【3】在service注入dao

【4】测试用户查询、注册、登录

四、源码

零、前言

当下 Spring 全家桶如日中天,Spring 系列框架已然成为 Java 后端开发的必备知识,接触了 Spring、Spring MVC、Mybatis 框架后,是不是想尝试将他们整合一下呢,虽然说 SSM 框架比不上 Spring boot 的简便高效,但 SSM 还是在很多公司中使用,况且整合 SSM 框架对于学习理解 Spring 还是有一定帮助的,博主萌新,大佬轻拍|=_=|话不多说,开拔!

一、说明

1、整合说明

服务器开发分为三层,表现层、业务层、持久层表现层使用SpringMVC实现,业务程使用Spring实现,持久层使用Mybatis实现使用Spring框架来整合 SpringMVC和Mybatis框架这里使用xml配置文件+注解的方式进行搭建

2、最终目标

最终实现通过前端页面对数据库进行查询和插入,实现用户的登录注册功能

3、数据库准备

CREATE DATABASE myssm;USE myssm;CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'id主键', username VARCHAR(20) NOT NULL COMMENT '用户名',PASSWORD VARCHAR(20) NOT NULL COMMENT'用户密码');INSERT INTO users (username,PASSWORD) VALUES("onestar","123");INSERT INTO users (username,PASSWORD) VALUES("twostar","456");

二、搭建整合环境

1、创建 maven 工程

【1】点击:文件--->模块,选择 Maven,勾选 Create from achetype,选择webapp,如下图,点击写一个

打开UC浏览器 查看更多精彩图片

【2】选择maven配置(已选可不用管),点击下一个

打开UC浏览器 查看更多精彩图片

【3】给项目命名并保存到相应路径下,点击完成

打开UC浏览器 查看更多精彩图片

创建好后目录结构如下:

打开UC浏览器 查看更多精彩图片

在pom.xml里面导入坐标,我的pom文件内容如下:在main目录下面创建java和resources文件夹,并设置相应文件

打开UC浏览器 查看更多精彩图片

打开UC浏览器 查看更多精彩图片

4、创建类和接口文件

在java文件夹下创建类文件,所需的类文件有以下几个:

存放javabean的 domain 包下的用户类:cn.star.domain.Users

数据访问层 dao 包下的用户 dao 接口:cn.star.dao.UsersDao

业务层 service 包下的 UsersService 接口:cn.star.service.UsersService

业务层 service 包下的 service 实现类,继承service接口:cn.star.service.impl.UsersServiceImpl

控制层 controller 包下的用户控制层UsersController类:cn.star.controller.UsersController

【1】创建存放 javabean 类文件:cn.star.domain.Users这里只需要编写接口就可以了,框架会帮我们生成一个代理对象 继承 UsersService 接口

打开UC浏览器 查看更多精彩图片

【5】创建用户控制层UsersController类:cn.star.controller.UsersController

打开UC浏览器 查看更多精彩图片

【1】spring.xml

【2】spring-mvc.xml

【3】mybatis.xml

【4】log4j.properties

# Set root category priority to INFO and its only appender to CONSOLE.#log4j.rootCategory=INFO, CONSOLE debug info warn error fatallog4j.rootCategory=info, CONSOLE, LOGFILE # Set the enterprise logger category to FATAL and its only appender to CONSOLE.log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE # CONSOLE is set to be a ConsoleAppender using a PatternLayout.log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppenderlog4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayoutlog4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n # LOGFILE is set to be a File appender using a PatternLayout.log4j.appender.LOGFILE=org.apache.log4j.FileAppenderlog4j.appender.LOGFILE.File=d:\axis.loglog4j.appender.LOGFILE.Append=truelog4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayoutlog4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

【5】目录结构

至此,整个目录结构如下

打开UC浏览器 查看更多精彩图片

三、整合框架编写

1、编写spring框架

【1】配置注解扫描

在spring.xml中配置注解扫描,加上以下配置:

【2】为service实现类添加注解

在UsersServiceImpl类中添加注解,把service交给IOC容器管理

@Service("usersService")public class UsersServiceImpl implements UsersService {...}

【3】测试spring框架

这里只做用户查询测试

打开UC浏览器 查看更多精彩图片

package cn.star.test;import cn.star.service.UsersService;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;/** * 〈一句话功能简述〉
* 〈测试类〉 * * @author OneStar * @create 2019/11/11 * @since 1.0.0 */public class springtest { @Test public void Test(){ //加载配置文件 ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:spring.xml"); //获取对象 UsersService us = (UsersService) ac.getBean("usersService"); //调用方法 us.findUsers(); }}

运行,打印以下信息则搭建成功:

打开UC浏览器 查看更多精彩图片

2、编写 SpringMVC 框架

【1】配置 web.xml

配置前端控制器

加载spring-mvc.xml配置文件

启动服务器,创建Servlet

配置过滤器解决中文乱码

dispatcherServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:spring-mvc.xml 1 dispatcherServlet / characterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 characterEncodingFilter /*

【2】配置 spring-mvc.xml

开启注解扫描,只扫描 controller

配置视图解析器

过滤静态资源

开启SpringMVC注解支持

【3】测试SpringMVC

编写用户控制层

编写index.jsp页面

编写跳转页面

1. 编写UsersController用户控制层

package cn.star.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;/** * 〈一句话功能简述〉
* 〈用户控制层〉 * * @author OneStar * @create 2019/11/9 * @since 1.0.0 */@Controller@RequestMapping("/users")public class UsersController { @RequestMapping("/findUsers") public String findUsers(){ System.out.println("表现层:查询用户"); return "Users"; }}

3. 编写跳转页面

在 WEB-INF 目录下新建 pages 目录,pages 目录下创建 Users.jsp 页面,编写 Users.jsp

4. 部署Tomcat项目并测试

打开UC浏览器 查看更多精彩图片

打开UC浏览器 查看更多精彩图片

部署好后运行,点击测试查询链接,跳转到查询用户界面,SpringMVC配置成功

打开UC浏览器 查看更多精彩图片

打开UC浏览器 查看更多精彩图片

3、Spring 整合 SpringMVC 框架

使用spring框架整合springmvc框架,目的就是能够使用 controller 层方法调用 service 业务层方法,那要如何实现呢?分析如下:

浏览器发送请求,通过web.xml中配置的前端控制器加载springmvc.xml配置文件

在springmvc.xml配置文件中配置Spring的监听器,默认只加载WEB-INF目录下的spring.xml配置文件

将service注入controller,调用service对象的方法进行测试

【1】配置web.xml

配置Spring的监听器和文件路径

org.springframework.web.context.ContextLoaderListener contextConfigLocation classpath:spring.xml

【2】service注入controller

修改 UsersController 类,将service注入controller,调用service对象的方法进行测试,修改后如下:

package cn.star.controller;import cn.star.service.UsersService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;/** * 〈一句话功能简述〉
* 〈用户控制层〉 * * @author OneStar * @create 2019/11/9 * @since 1.0.0 */@Controller@RequestMapping("/users")public class UsersController { @Autowired private UsersService usersService; @RequestMapping("/findUsers") public String findUsers(){ System.out.println("表现层:查询用户"); //调用service对象的方法进行测试 usersService.findUsers(); return "Users"; }}

【3】测试运行

点击测试查询链接后,在后台打印一下信息,说明spring成功整合springmvc

打开UC浏览器 查看更多精彩图片

4、编写 mybatis 框架

【1】配置mybatis.xml配置文件

在configuration标签内添加以下配置:

【2】编写UserDao类

public interface UsersDao { //查询所有用户 @Select("select * from users") public List findUsers(); //用户注册 @Insert("INSERT INTO USERS (username,PASSWORD) VALUES(#{username},#{PASSWORD})") public void insertUsers(Users users); //用户登录 public void login(Users users);}

【3】编写测试类

这里测试用户查询和注册,创建测试类:cn.star.test.mybatistest

打开UC浏览器 查看更多精彩图片

package cn.star.test;import cn.star.dao.UsersDao;import cn.star.domain.Users;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 org.junit.Test;import java.io.InputStream;import java.util.List;/** * 〈一句话功能简述〉
* 〈mybatis测试类〉 * * @author OneStar * @create 2019/11/11 * @since 1.0.0 */public class mybatistest { /** * 测试查询用户 * @throws Exception */ @Test public void run1() throws Exception { // 加载配置文件 InputStream in = Resources.getResourceAsStream("mybatis.xml"); // 创建SqlSessionFactory对象 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in); // 创建SqlSession对象 SqlSession session = factory.openSession(); // 获取到代理对象 UsersDao dao = session.getMapper(UsersDao.class); // 查询所有数据 List list = dao.findUsers(); for(Users users : list){ System.out.println(users); } // 关闭资源 session.close(); in.close(); } /** * 测试注册 * @throws Exception */ @Test public void run2() throws Exception { Users users = new Users(); users.setUsername("threestar"); users.setPASSWORD("789"); // 加载配置文件 InputStream in = Resources.getResourceAsStream("mybatis.xml"); // 创建SqlSessionFactory对象 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in); // 创建SqlSession对象 SqlSession session = factory.openSession(); // 获取到代理对象 UsersDao dao = session.getMapper(UsersDao.class); // 保存 dao.insertUsers(users); // 提交事务 session.commit(); // 关闭资源 session.close(); in.close(); }}

测试查询用户和测试注册用户,能查询出用户数据和注册成功,mybatis框架搭建成功

5、Spring整合Mybatis框架

Spring要想成功整合Mybatis框架,就需要service层成功调用dao对象,然后进行相关数据库的增删改查操作

将dao代理对象存到IOC容器中

通过service注入dao

【1】配置spring.xml

配置连接池

配置SqlSessionFactory工厂

配置UsersDao接口所在包

配置好后,就没 mybatis.xml 什么事了,可以删去

【2】注入dao数据

修改Usersdao类,添加注解

@Repositorypublic interface UsersDao {...}

【3】在service注入dao

修改UsersServiceImpl类,修改后如下:

package cn.star.service.impl;import cn.star.dao.UsersDao;import cn.star.domain.Users;import cn.star.service.UsersService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;/** * 〈一句话功能简述〉
* 〈Service 实现类〉 * * @author OneStar * @create 2019/11/9 * @since 1.0.0 */@Service("usersService")public class UsersServiceImpl implements UsersService { @Autowired private UsersDao usersDao; @Override public List findUsers() { System.out.println("业务层:查询用户"); return usersDao.findUsers(); } @Override public void insertUsers(Users users) { System.out.println("业务层:用户注册"); usersDao.insertUsers(users); } @Override public void login(Users users) { System.out.println("业务层:用户登录"); }}

【4】测试用户查询、注册、登录

1、修改UsersController类,将数据显示在页面上,修改后如下:

package cn.star.controller;import cn.star.domain.Users;import cn.star.service.UsersService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import java.util.List;/** * 〈一句话功能简述〉
* 〈用户控制层〉 * * @author OneStar * @create 2019/11/9 * @since 1.0.0 */@Controller@RequestMapping("/users")public class UsersController { @Autowired private UsersService usersService; /** * 查询用户 * @param model * @return */ @RequestMapping("/findUsers") public String findUsers(Model model){ System.out.println("表现层:查询用户"); //调用service对象的方法进行测试 List list = usersService.findUsers(); model.addAttribute("list",list); return "Users"; } /** * 用户注册 * @param users * @return */ @RequestMapping("/insert") public String insert(Users users) { System.out.println("注册"); // 调用注入的 usersService 调用 insertUsers 方法 usersService.insertUsers(users); return "success"; } /** * 用户登录 * @param users * @return */ @RequestMapping("/login") public String login(Users users) { System.out.println("登录"); // 调用注入的 usersService 调用 login 方法 if(usersService.login(users)){ return "successlogin"; }else{ return "falselogin"; } }}

2、修改 index.jsp 页面,为 index.jsp 页面添加注册表单和登录表单

<%@ page contentType="text/html;charset=UTF-8" language="java" %> Title测试查询


用户:
密码:


用户:
密码:


3、修改用户查询跳转页面Users.jsp,将查询数据显示在页面上

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> Title

查询所有用户

${list}

4、创建注册成功提醒页面:success.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %> Title

注册成功

5、创建登录成功和登录失败提醒页面:successlogin.jsp、falselogin.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %> Title

登录成功

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %> Title

登录失败

6、运行Tomcat服务器,点击“测试查询”可以查询用户,输入用户名和密码可以进行登录和注册

打开UC浏览器 查看更多精彩图片

四、源码

至此,SSM框架实现用户查询、注册、登录——IDEA整合Spring、Spring MVC、Mybatis 框架搭建完成,这个框架目录结构如下:

打开UC浏览器 查看更多精彩图片

能看到这里,实属不易,不如点赞收藏+关注<(▰˘◡˘▰)

你可能感兴趣的:(SSM框架用户查询注册登录IDEA整合SpringSpring MVCMybatis 框架)