springMVC整合mybatis,spring
阅读原文时间:2023年07月09日阅读:3

spring的配置十分复杂,很难记忆。

这篇博客用于记录springmvc整合创建过程,虽然步骤有点多,但是每一步都很容易理解,便于以后忘记后参考和记忆。

第一步创建一个空mvean项目

这一步没有难点

第二步在项目添加框架支持Add Frameworks Support,记得先加web框架,然后部署添加tomcat服务器和连接数据库,做完这些先跑一下空项目,如果代码写完了项目跑不起来就难受了,现在这检查一下是不是一个合格的web项目。

第三步导入所需得依赖

junit:用于测试

mysql驱动:无论使用什么连接数据库,数据库驱动都是必须的需要的

jstl:用于书写el表达式,注意导入的时候别导错了,可能出现与其他包不兼容问题

数据源:用不同的数据源需要导入不同的依赖

    <dependencies>
        <!--导入依赖
        junit mysql驱动 servlet jsp jstl mybatis mybatis-spring spring-jdbc spring-webmvc 数据源c3p0
        -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.27</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2.1-b02</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.7</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.6</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.3.13</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.3.13</version>
        </dependency>
        <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.5.5</version>
        </dependency>
    </dependencies>

建下包结构,dao service pojo controller

第四步是建立mybatis-context.xml核心文件,配置mybatis

这个里面一般写mapper和别名,这个可以完全用spring配置,在这里写为了便于分开管理。

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

<mappers>
    <mapper class=""/>
</mappers>

</configuration>

第五步创建spring的xml核心文件applicationContext.xml

这个里面并没有写什么东西,只是最后所有关于的spring的东西,都导入到applicationContext.xml这一个里面,便于最后在web.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--在这里也可以看出用到spring的共三层,dao(mapper) service controller(servlet)-->
    <import resource="spring-service.xml"/>
    <import resource="spring-dao.xml"/>
    <import resource="spring-mvc.xml"/>

</beans>

第六步创建database.properties

用于连接数据库设置

这里url使用8.0以上需要写时区,不写时区可能会出现一些问题

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/ssmbuild?characterEncoding=utf8&useSSL=false&serverTimezone=Hongkong
username=root
password=123456

可以看出前六步并没有什么复杂操作

第七步整合mybatis

这一步用于整合mybatis

mybatis是dao的操作,负责增删改查,创建spring-dao.xml文件整合mybatis

  • mybatis做的操作并不多

    • 需要连接数据库,这就需要把database.properties文件里设置读取到连接池里
    • 使用数据源创建sqlSessionFactory工厂
    • 创建sqlSessionTemplate


    http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">

    <!--配置整合mybatis-->
    <!--一、关联数据库文件database.properties,spring一般不能读取properties文件,但是使用这个之后可以用spring读取-->
    <context:property-placeholder location="classpath:database.properties"/>
    <!--二、数据库连接池-->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${driver}"/>
        <property name="jdbcUrl" value="${url}"/>
        <property name="user" value="${url}"/>
        <property name="password" value="${password}"/>
    </bean>
    <!--三、配置SqlSessionFactory对象-->

第八步整合service

把service的类注入到spring-service.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
       https://www.springframework.org/schema/context/spring-context.xsd">
    <!-- 扫描service相关的bean -->
    <context:component-scan base-package="com.hjk.service"/>
    <!--Service实体类注入到IOC容器中-->

</beans>

第九步整合spring-mvc.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:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/mvc
        https://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/context
       https://www.springframework.org/schema/context/spring-context.xsd">

   <!--注解驱动-->
    <mvc:annotation-driven/>
    <!--  静态资源过滤  -->
    <mvc:default-servlet-handler/>

     <!--    视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

    <!-- 4.扫描web相关的bean -->
    <context:component-scan base-package="com.hjk.servlet" />

</beans>

第十步配置web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
<!--DispatcherServlet分发器-->
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContext.xml</param-value>
        </init-param>
        <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>

    <session-config>
        <session-timeout>15</session-timeout>
    </session-config>

</web-app>