SSM(Spring+SpringMVC+Mybatis)框架集成案例

    科技2022-07-11  149

    SSM(Spring+SpringMVC+Mybatis)框架集成案例

    文章只是为了记录自己的学习,方便以后查看
    使用工具:MyEclipse+MySql+navicat+Tomcat7
    实现功能:使用SSM框架实现登录判断功能

    一.使用MyEclipse新建javaweb项目。

    如下图所示:

    二.下载JAR包复制到项目的lib目录下。

    如下图所示: 百度网盘链接(所需的JAR包):https://pan.baidu.com/s/1oaMcE1NE86Z61u7il8e42Q. 提取码:zc6d

    三.新建资源文件resources。

    右击项目名new——>Source Folder,命名resources。

    四.使用Mysql新建数据库example,并新建表t_user,插入一条数据。

    SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; DROP TABLE IF EXISTS `t_user`; CREATE TABLE `t_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; INSERT INTO `t_user` VALUES (1, 'ylw', 'ylw'); SET FOREIGN_KEY_CHECKS = 1;

    五.在src中新建包:pojo,mapper,service,controller。

    1.pojo

    在pojo中新建User.java实体类。

    User.java

    package pojo; public class User { private int id; private String name; private String password; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }

    2.mapper

    右键包名mapper,new——>xml,命名UserMapper.xml。 右键包名mapper,new——>interface,命名UserMapper.java。

    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="mapper.UserMapper"> <select id="getselect" parameterType="User" resultType="User"> select * from t_user where name=#{name} and password=#{password} </select> </mapper>

    UserMapper.java

    package mapper; import pojo.User; public interface UserMapper { public User getselect(User user); }

    3.service

    右击service包,new——>interface,命名UserService.java。 右击service包,new——>class,命名UserServiceImpl.java。

    UserService.java

    package service; import pojo.User; public interface UserService { public User getselect(String name,String pass); }

    UserServiceImpl.java

    package service; import javax.annotation.Resource; import mapper.UserMapper; import pojo.User; @Service public class UserServiceImpl implements UserService{ @Resource UserMapper uMapper; @Override public User getselect(String name, String pass) { // TODO Auto-generated method stub User user=new User(); user.setName(name); user.setPassword(pass); return uMapper.getselect(user); } }

    4.controller

    在controller中新建UserController.java。

    UserController.java

    package controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import pojo.User; import service.UserService; @Controller public class UserController { @Autowired UserService userService; @RequestMapping(value="/main") public String getselect(@RequestParam String name,@RequestParam String pass){ User user=null; user=userService.getselect(name,pass); if(user!=null){ return "main"; } else return "error"; } }

    5.具体结构图:

    六.在resources中新建配置文件。

    1.右键resources,new——>xml,命名mybatis-config.xml。

    mybatis-config.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> <typeAliases> <package name="pojo"/> </typeAliases> </configuration> <!-- pojo与src中建的包名一样 -->

    2.右键resources,new——>file,命名applicationContext.xml。

    applicationContext.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:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd "> <!-- 配置数据源,实现database.properties的功能 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://127.0.0.1:3306/example?useUnicode=true&characterEncoding=utf-8" /> <property name="username" value="root" /> <property name="password" value="123456" /> <!-- example为数据库名,root为你的mysql用户名,123456位你的mysql密码 --> </bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="configLocation" value="classpath:mybatis-config.xml" /> <!-- mybatis-config.xml与前面建的文件名一样,dataSource与上面的id名一样 --> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="mapper"></property> <property name="sqlSessionFactory" ref="sqlSessionFactory"></property> <!-- mapper与src下建的包名一样,sqlSessionFactory与上面的id名一样 --> </bean> </beans>

    3.右键resources,new——>file,命名springmvc-servlet.xml。

    springmvc-servlet.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:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" 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/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <context:component-scan base-package="controller" /> <context:component-scan base-package="service"/> <!-- controller和service都需要与src中建的包名一样 --> <!-- 开启注解 --> <mvc:annotation-driven /> <!-- 配置视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"></property> <property name="suffix" value=".jsp"></property> </bean> </beans>

    4.将log4j.properties复制到resources下。

    log4j.properties

    log4j.rootLogger=DEBUG,CONSOLE,file #log4j.rootLogger=ERROR,ROLLING_FILE log4j.logger.cn.smbms.dao=debug log4j.logger.com.ibatis=debug log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug log4j.logger.java.sql.Connection=debug log4j.logger.java.sql.Statement=debug log4j.logger.java.sql.PreparedStatement=debug log4j.logger.java.sql.ResultSet=debug log4j.logger.org.tuckey.web.filters.urlrewrite.UrlRewriteFilter=debug ###################################################################################### # Console Appender \u65e5\u5fd7\u5728\u63a7\u5236\u8f93\u51fa\u914d\u7f6e ###################################################################################### log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.Threshold=error log4j.appender.CONSOLE.Target=System.out log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern= [%p] %d %c - %m%n ###################################################################################### # DailyRolling File \u6bcf\u5929\u4ea7\u751f\u4e00\u4e2a\u65e5\u5fd7\u6587\u4ef6\uff0c\u6587\u4ef6\u540d\u683c\u5f0f:log2009-09-11 ###################################################################################### log4j.appender.file=org.apache.log4j.DailyRollingFileAppender log4j.appender.file.DatePattern=yyyy-MM-dd log4j.appender.file.File=log.log log4j.appender.file.Append=true log4j.appender.file.Threshold=error log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{yyyy-M-d HH:mm:ss}%x[%5p](%F:%L) %m%n log4j.logger.com.opensymphony.xwork2=error

    5.具体结构图:

    七.配置web.xml。

    <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name></display-name> <welcome-file-list> <welcome-file>/WEB-INF/jsp/index.jsp</welcome-file> </welcome-file-list> <!-- 设置Spring容器加载所有的配置文件的路径 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <!-- 加载Spring容器配置 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 配置SpringMVC核心控制器 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 初始化参数 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc-servlet.xml</param-value> </init-param> <!-- 启动加载一次 --> <load-on-startup>1</load-on-startup> </servlet> <!--为DispatcherServlet建立映射 --> <servlet-mapping> <servlet-name>springmvc</servlet-name> <!-- 此处可以可以配置成/ --> <url-pattern>/</url-pattern> </servlet-mapping> <!-- 防止Spring内存溢出监听器 --> <listener> <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> </listener> <!-- 解决工程编码过滤器 --> <filter> <filter-name>encodingFilter</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> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>

    八.编写jsp文件。

    1.在WEB-INF下新建jsp,右键WEB-INF,new——>folder,命名jsp。

    2.在jsp下新建index.jsp,main.jsp,error.jsp。

    index.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <form action="main" method="post"> 姓名:<input type="text" name="name"/> 密码:<input type="text" name="pass"/> <input type="submit" value="提交" /> </form> </body> </html>

    main.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> 你好,ylw, 登陆成功 <br> </body> </html>

    error.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> 对不起,ylw, 登陆失败 <br> </body> </html>

    九.实验效果。

    1.将项目部署在Tomcat服务器上。

    2.输入错误的用户名和密码。

    提交后结果:

    2.输入正确的用户名和密码。

    提交后结果:

    Processed: 0.010, SQL: 8