P5 SSM:SSM整合

92 阅读1分钟

一.spring整合mybatis

1.mybatis回顾

<1>目录

image.png

<2>依赖

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.47</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.2</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.1.9.RELEASE</version>
    </dependency>
    <!--jdbc管理事务-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>5.1.9.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>1.8.3</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>2.0.5</version>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.12</version>
    </dependency>
</dependencies>

<3>实体类

@Data
public class User {
    private int id;
    private String username;
    private String password;
}

<4>mybatis核心配置文件

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/springboot?useSSL=false&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT
jdbc.username=root
jdbc.password=88888888
<?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>

    <!--加载properties属性文件-->
    <properties resource="jdbc.properties"></properties>

    <!--设置java类型别名-->
    <typeAliases>
        <package name="com.itheima.pojo"></package>
    </typeAliases>

    <!--环境配置-->
    <environments default="mysql">
        <!--mysql环境-->
        <environment id="mysql">
            <!--使用JDBC类型事务管理器 -->
            <transactionManager type="JDBC"></transactionManager>
            <!--使用连接池 POOLED-->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"></property>
                <property name="url" value="${jdbc.url}"></property>
                <property name="username" value="${jdbc.username}"></property>
                <property name="password" value="${jdbc.password}"></property>
            </dataSource>
        </environment>
    </environments>
    <!--加载映射文件,注意注册接口,如果不写这个会报绑定错误-->
    <mappers>
        <package name="com.itheima.mapper"></package>
    </mappers>
</configuration>

<5>编写接口和接口的映射xml配置文件

public interface UserMapper {
    public List<User> selectUser();
}
<?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="com.itheima.mapper.UserMapper">

    <select id="selectUser" resultType="User">
        select * from USER
    </select>
</mapper>

<6>测试

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class MyTest {
   @Test
    public void test() throws IOException {
        String resources = "mybatisConfig.xml";
        InputStream in = Resources.getResourceAsStream(resources);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
        SqlSession sqlSession = sqlSessionFactory.openSession(true);

        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        List<User> userList = mapper.selectUser();
        for(User user : userList){
            System.out.println(user);
        }
    }
}

<7>解决资源无法导出的问题

<!-- 静态资源导出问题 -->
<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
</build>

2.mybatis-spring

<1>spring整合mybatis方式一

image.png

I.Mybatis-Spring

i.是什么
http://mybatis.org/spring/zh/index.html
新依赖Mybatis-Spring,
sqlSessionTemplate是它的核心,作用是为了代替mybatis中的sqlSession
允许mybatis参与到spring的事务管理中    

image.png

ii.怎么用
使用mybatis-spring需要在xml中配置两个
DataSource数据源
sqlSessionFactory
让spring来管理他们

II.mybaits的核心配置文件

image.png

III.spring核心配置文件实现bean管理

image.png

IV.用普通类代替原来的测试类

image.png

V.测试

image.png

VI.优化

编写总配置文件,适用于团队开发,spring.xml中只有mybatis的配置

image.png

image.png

<2>spring整合mybatis方式二

image.png

image.png

image.png image.png

3.mybatis-spring的事务整合

image.png

<1>使用spring的事务管理(声明式aop事务,交给容器管理)

目的:我们做crud的时候,把事务丢进去  

image.png

I.注册bean对象

在spring-service.xml中配置

image.png

II.事务织入

image.png

spring中propegation的7种事务配置    

image.png

III.配置事务切入

image.png

二.整合springmvc

1.配置web.xml

image.png

2.配置spring-mvc并放在applicationContext

image.png

3.最终整合的项目结构

image.png

三.测试

1.接口编写

image.png

2.页面编写

image.png