Spring-mybatis

回顾Spring-mybatis                             与                                       mybatis的结构比较

对比

 

 Spring-mybatis 三大改变(准确是2个改变  1.覆盖配置   2.改写方法)

1.使用Spring方式实现了原来写在mybatis里面获取SqlSession的工具类(自定义的)

2.可以使用Spring方式实现mybatis-config.xml里面的配置(也可以两者互通)

3.可以使用Spring方式实现接口的方法(也可使用注解)   [然后方法里面去获得对应的mapper]

 

相关依赖

复制代码
       <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.0.RELEASE</version>
        </dependency>

<!--        test单元测试模块导入的包-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>Test_885</scope>
        </dependency>

        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.9.4</version>
            <scope>runtime</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.3</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.3.18</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.6</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
        </dependency>
View Code
复制代码

静态资源过滤

复制代码
    </dependencies>
<!--    静态资源过滤-->
    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>
View Code
复制代码

 

改写方法1

xml

复制代码
<!--        使用Spring的数据源替换Mybatis的配置-->
      <bean id="dataSource88" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
          <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
          <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
          <property name="username" value="root"/>
          <property name="password" value="my7shig69l>A"/>
      </bean>

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource88" />
<!--        绑定(替代)Mabatis配置文件   然后可以设置相关的属性-->
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
        <property name="mapperLocations" value="classpath:com/ljm/dao/UserMapper.xml"/>
    </bean>

    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<!--        只能使用构造器注入,因为没有set方法-->
        <constructor-arg index="0" ref="sqlSessionFactory"/>

    </bean>

    <bean id="userMapper_01" class="com.ljm.dao.UserMappermpl">
        <property name="sqlSession" ref="sqlSession"/>
    </bean>
View Code
复制代码

实现类

复制代码
public class UserMappermpl implements UserMapper{
    //原来所有操作都使用sqlSession执行,现在使用SqlSessionTemplate;
    private SqlSessionTemplate sqlSession;

    public void setSqlSession(SqlSessionTemplate sqlSession) {
        this.sqlSession = sqlSession;
    }

    public List<User> select_user(){
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        return  mapper.select_user();

    }
}
View Code
复制代码

测试

复制代码
    public void test02() {
        ClassPathXmlApplicationContext context =
                new ClassPathXmlApplicationContext("applicationContext.xml");
        UserMapper userMapper = context.getBean("userMapper_01",UserMapper.class);
        for (User user : userMapper.select_user()) {
            System.out.println(user);
        }

    }
View Code
复制代码

 因为替代了 mybatis 的部分内容,所以不在需要在mybatis-config.xml中注册mapper了

改写方法2(本质与方法一相同,不过是简化了步骤)

xml

复制代码
      <bean id="dataSource88" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
          <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
          <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
          <property name="username" value="root"/>
          <property name="password" value="my7shig69l>A"/>
      </bean>

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource88" />
<!--        绑定(替代)Mabatis配置文件   然后可以设置相关的属性-->
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
        <property name="mapperLocations" value="classpath:com/ljm/dao/UserMapper.xml"/>
    </bean>

   <bean id="userMapper_02" class="com.ljm.dao.UserMappermpl02">
        <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
    </bean>
View Code
复制代码

实现类

复制代码
public class UserMappermpl02 extends SqlSessionDaoSupport implements UserMapper{
//    SqlSessionDaoSupport这个类帮忙写了之前的代码
public int insert_user(User user){
    return getSqlSession().getMapper(UserMapper.class).insert_user(user);
}
}
View Code
复制代码

测试

复制代码
    public void test03() {
        ClassPathXmlApplicationContext context =
                new ClassPathXmlApplicationContext("applicationContext.xml");
        UserMapper userMapper = context.getBean("userMapper_02",UserMapper.class);
        for (User user : userMapper.select_user()) {
            System.out.println(user);
        }
}
View Code
复制代码

 

Spring 相关配置(见i上面id=sqlSessionFactory)

指定mybatis-config.xml文件

指定UserMapper.xml文件

posted @   磕伴  阅读(85)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示