ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ssm框架整合案例,详细简单易懂

2021-05-19 11:30:40  阅读:156  来源: 互联网

标签:xml web spring ssm 案例 整合 org mybatis 易懂


ssm框架整合案例,详细简单易懂

1.准备工作

1.1 pom.xml中导入相关依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.lin</groupId>
    <artifactId>ssmbuild_practice</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>


    <dependencies>
        <!--    Junit-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <!--数据库驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        <!--连接池-->
        <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.5.2</version>
        </dependency>
        <!--servlet,jsp-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2</version>
        </dependency>
        <!--mybatis,mybatis-spring-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.2</version>
        </dependency>
        <!--spring-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.1.9.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.1.9.RELEASE</version>
        </dependency>
    </dependencies>
<!--    静态资源导出问题 ,让java/resources下的静态资源能够导出-->
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>
</project>

1.2 项目初步结构

在这里插入图片描述

2.整合mybatis

2.1 创建mybatis和spring核心配置文件


在这里插入图片描述

2.2 关联数据库

在这里插入图片描述

2.3 构建实体类pojo

在这里插入图片描述

2.4 写接口操作数据库

在这里插入图片描述

2.5 BookMapper.xml中写sql

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
        
<!-- 绑定BookMapper-->
<mapper namespace="com.lin.dao.BookMapper">

    <insert id="addBook" parameterType="Books">
        insert into mybatis.books (bookName, bookCounts, detail)
        values (#{bookName},#{bookCounts},#{detail});
    </insert>

    <delete id="deleteBookById" parameterType="int">
        delete from mybatis.books
        where bookID = #{bookId}
    </delete>

    <update id="updateBook" parameterType="Books">
        update mybatis.books
        set bookName=#{bookName},bookCounts=#{bookCounts},detail=#{detail}
        where bookID=#{bookID}
    </update>

    <select id="queryBookById" resultType="Books">
        select * from mybatis.books
        where bookID=#{bookId}
    </select>

    <select id="queryAllBook" resultType="Books">
        select * from mybatis.books
    </select>
    
</mapper>

2.6 将BookMapper.xml 绑定到mybatis配置文件

在这里插入图片描述
以上都是在写dao层的。

2.7 写业务层

业务层与持久层分离,用户直接调用业务层接口,然后业务层调持久层
在这里插入图片描述
在这里插入图片描述

至此,mybatis整合完毕。

3.整合spring

3.1 整合dao层

创建spring-dao.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
       http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
    <!-- 1.关联数据库配置文件-->
    <context:property-placeholder location="classpath:database.properties"/>
    <!-- 2.连接池
         dbcp:半自动化,不能自动连接
         c3p0:自动化操作(自动化的加载配置文件,并且可以自动设置到对象中)
         druid
         hikari
    -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.driver}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>

        <!--c3p0私有属性-->
        <property name="maxPoolSize" value="30"/>
        <property name="minPoolSize" value="10"/>
        <!--关闭连接后不自动commit-->
        <property name="autoCommitOnClose" value="false"/>
        <!--设置连接超时-->
        <property name="checkoutTimeout" value="10000"/>
        <!--当获取连接失败,重试次数-->
        <property name="acquireRetryAttempts" value="2"/>
    </bean>


    <!--    3.sqlSessionFactory-->
    <bean id="sqlsessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 注入数据源-->
        <property name="dataSource" ref="dataSource"/>
        <!-- 绑定mybatis配置文件-->
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
    </bean>

    <!--    4.配置dao接口扫描包,动态实现dao接口注入到spring容器中-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!--注入sqlsessionFactory-->
        <property name="sqlSessionFactoryBeanName" value="sqlsessionFactory"/>
        <!--要扫描的dao包-->
        <property name="basePackage" value="com.lin.dao"/>
    </bean>
</beans>

3.2 整合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
       http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 1.扫描service下的包,注册bean
         若扫描注册bean,以下步骤2可以直接使用注解注入BookMapper
    -->
    <context:component-scan base-package="com.lin.service"/>

    <!-- 2.将我们的业务类,注入到spring,通过注解或配置实现,此处用配置-->
    <bean id="BookServiceImpl" class="com.lin.service.BookServiceImpl">
        <!--此处能注入bookMapper是因为spring-dao和spring-service在同一个上下文中(IDEA自动帮我们做了),
        若不在,则需自已import spring-dao.xml
        或者在applicatonContext.xml中import spring-dao.xml,此处直接在applicationContext中配置-->
        <property name="bookMapper" ref="bookMapper"/>
    </bean>

    <!--3.声明式事务管理,事务自动提交-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!--注入数据源-->
        <property name="dataSource" ref="dataSource"/>
    </bean>
    
</beans>

在applicationContext.xml 导入spring-dao.xml,spring-service.xml,spring-mvc.xml(之后写),使他们在同一上下文
在这里插入图片描述

4 整合Spring-mvc

4.1 增加web支持

在这里插入图片描述

4.2 写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">

    <!--1.DispathServlet-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <!--绑定spring-mvc配置文件-->
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <!--与Tomcat一块启动-->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <!--过滤请求-->
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <!--2.乱码过滤-->
    <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>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <!--/*会捕捉.jsp页面,/不会-->
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!--3.配置session超时-->
    <session-config>
        <session-timeout>15</session-timeout>
    </session-config>

</web-app>

4.3 写spring-mvc

配置控制器映射器,控制器适配器,和视图解析器

<?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:mvn="http://www.springframework.org/schema/mvc"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       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/cache http://www.springframework.org/schema/cache/spring-cache.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">

    <!--1.注解驱动
        在spring中一般采用@RequestMapping注解来完成映射关系
        要想使该注解生效,必须向上下文中注册DefaultAnnotationHandlerMapping
        和一个AnnotationMethodHandlerAdopter实例。这两个实例分别在类级别和方法级别处理
        而annotation-driven配置帮助我们自动完成上述两个实例注入-->
    <mvn:annotation-driven/>

    <!--不处理静态资源-->
    <mvc:default-servlet-handler/>

    <!--扫描包:controller-->
    <context:component-scan base-package="com.lin.controller"/>

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

至此框架搭建完成

5.试一试查询全部书籍功能

5.1 写BookController

在这里插入图片描述

5.1 写index.jsp

在这里插入图片描述

5.2 写allBook.jsp

在这里插入图片描述

5.3 配置Tomcat

在这里插入图片描述
在这里插入图片描述

5.3 运行

开启tomcat发现报错,发现jar包没有打包进去,于是做如下配置
在这里插入图片描述
之后,再运行成功
在这里插入图片描述
点击进入书籍页面,成功
在这里插入图片描述

标签:xml,web,spring,ssm,案例,整合,org,mybatis,易懂
来源: https://blog.csdn.net/qq_41655082/article/details/116980226

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有