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

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> </beans>

【2】spring-mvc.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> </beans>

【3】mybatis.xml

<?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> </configuration>

【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中配置注解掃描,加上以下配置:

<!--開啟注解掃描,這里service和dao是需要掃描的,controller是不需要掃描的--><context:component-scan base-package="cn.star"> <!--配置要忽略的注解--> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /></context:component-scan>

【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;/** * 〈一句話功能簡述〉<br> * 〈測試類〉 * * @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

配置過濾器解決中文亂碼

<!--配置前端控制器--><servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--加載spring-mvc.xml配置文件--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> <!--啟動服務器,創建該servlet--> <load-on-startup>1</load-on-startup></servlet><servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern></servlet-mapping> <!--解決中文亂碼的過濾器--><filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param></filter><filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern></filter-mapping>

【2】配置 spring-mvc.xml

開啟注解掃描,只掃描 controller

配置視圖解析器

過濾靜態資源

開啟SpringMVC注解支持

<!--開啟注解掃描,只掃描Controller注解--><context:component-scan base-package="cn.star"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" /></context:component-scan> <!--配置的視圖解析器對象--><bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/pages/"/> <property name="suffix" value=".jsp"/></bean> <!--過濾靜態資源--><mvc:resources location="/css/" mapping="/css/**" /><mvc:resources location="/images/" mapping="/images/**" /><mvc:resources location="/js/" mapping="/js/**" /> <!--開啟SpringMVC注解的支持--><mvc:annotation-driven/>

【3】測試SpringMVC

編寫用戶控制層

編寫index.jsp頁面

編寫跳轉頁面

1. 編寫UsersController用戶控制層

package cn.star.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;/** * 〈一句話功能簡述〉<br> * 〈用戶控制層〉 * * @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的監聽器和文件路徑

<!--配置Spring的監聽器,默認只加載WEB-INF目錄下的spring.xml配置文件--><listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!--設置配置文件的路徑--><context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring.xml</param-value></context-param>

【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;/** * 〈一句話功能簡述〉<br> * 〈用戶控制層〉 * * @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標簽內添加以下配置:

<!-- 配置環境 --><environments default="mysql"> <environment id="mysql"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql:///myssm"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment></environments><!-- 引入映射配置文件 --><mappers> <package name="cn.star.dao"/></mappers>

【2】編寫UserDao類

public interface UsersDao { //查詢所有用戶 @Select("select * from users") public List<Users> 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;/** * 〈一句話功能簡述〉<br> * 〈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<Users> 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接口所在包

<!--Spring整合MyBatis框架--><!--配置連接池--><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="com.mysql.jdbc.Driver"/> <property name="jdbcUrl" value="jdbc:mysql:///myssm"/> <property name="user" value="root"/> <property name="password" value="123456"/></bean> <!--配置SqlSessionFactory工廠--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /></bean> <!--配置UsersDao接口所在包--><bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="cn.star.dao"/></bean>

配置好后,就沒 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;/** * 〈一句話功能簡述〉<br> * 〈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<Users> 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;/** * 〈一句話功能簡述〉<br> * 〈用戶控制層〉 * * @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<Users> 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" %><html><head> <title>Title</title></head><body><a href="users/findUsers">測試查詢</a><hr><form method="post" action="/users/insert"> 用戶:<input type="text" name="username"><br> 密碼:<input type="text" name="PASSWORD"><br> <input type="submit" value="注冊"><br></form><hr><form method="post" action="/users/login"> 用戶:<input type="text" name="username"><br> 密碼:<input type="text" name="PASSWORD"><br> <input type="submit" value="登錄"><br></form><hr></body></html>

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" %><html><head> <title>Title</title></head><body><h3>查詢所有用戶</h3>${list}</body></html>

4、創建注冊成功提醒頁面:success.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %><html><head> <title>Title</title></head><body><h1>注冊成功</h1></body></html>

5、創建登錄成功和登錄失敗提醒頁面:successlogin.jsp、falselogin.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %><html><head> <title>Title</title></head><body><h1>登錄成功</h1></body></html><%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %><html><head> <title>Title</title></head><body><h1>登錄失敗</h1></body></html>

6、運行Tomcat服務器,點擊“測試查詢”可以查詢用戶,輸入用戶名和密碼可以進行登錄和注冊

打開UC瀏覽器 查看更多精彩圖片

四、源碼

至此,SSM框架實現用戶查詢、注冊、登錄——IDEA整合Spring、Spring MVC、Mybatis 框架搭建完成,這個框架目錄結構如下:

打開UC瀏覽器 查看更多精彩圖片

能看到這里,實屬不易,不如點贊收藏+關注<(?????)

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容