spring学习16:Spring整合Mybatis

spring学习16:Spring整合Mybatis

  • 整合Mybatis:

    • 步骤:

      • 导入相关jar包:

        • junit

        • mybatis

        • mysql

        • spring相关的

        • aop织入

        • mybatis-spring【new】

      • 编写配置文件:

      • 测试

 

 

  • 导入相关jar包:

    <dependencies>
       <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
           <version>8.0.28</version>
       </dependency>

       <dependency>
           <groupId>org.mybatis</groupId>
           <artifactId>mybatis</artifactId>
           <version>3.5.9</version>
       </dependency>

       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-jdbc</artifactId>
           <version>5.1.9.RELEASE</version>
       </dependency>

       <dependency>
           <groupId>org.mybatis</groupId>
           <artifactId>mybatis-spring</artifactId>
           <version>2.0.7</version>
       </dependency>


    </dependencies>

 

 

  • 回忆Mybatis:

    • 编写实体类;

    • 编写Mybatis核心配置文件;

    • 编写接口;

    • 编写Mapper.xml;

    • 把Mapper.xml注册到核心配置文件中;

    • 测试;

 



 

  • 整合Mybaits方式1:

     

    • 步骤:

      • 编写数据源配置: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:aop="http://www.springframework.org/schema/aop"
              xsi:schemaLocation="http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans.xsd
               http://www.springframework.org/schema/aop
               https://www.springframework.org/schema/aop/spring-aop.xsd">

           <!--1,DataSource:使用Spring的数据源替换Mybatis的配置: c3p0,dbcp,druid
               我们这里使用Spring提供的JDBC
            -->
           <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
               <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
               <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=utf-8"/>
               <property name="username" value="root"/>
               <property name="password" value="root"/>
           </bean>

        </beans>
      • 编写SqlSessionFactory配置:

        <!--2,SqlSessionFactory-->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
           <property name="dataSource" ref="dataSource" />
           <!--绑定Mybatis配置文件-->
           <property name="configLocation" value="classpath:mybatis-config.xml"/>
           <property name="mapperLocations" value="classpath:com/ljxdemo/dao/*.xml"/>
        </bean>
      • 编写SqlSessionTemplate配置:

        <!--3,SqlSessionTemplate就是我们使用的SqlSession-->
        <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
           <!--只能通过构造器注入sqlSessionFactory,因为它没有set方法-->
           <constructor-arg index="0" ref="sqlSessionFactory"/>
        </bean>
      • 需要给接口加实现类【多了一步】:

        public class UserMapperImpl implements UserMapper {
           //过去,我们的所有操作都使用SqlSession来执行;
           //现在,我们都是用SqlSessionTemplate;
           private SqlSessionTemplate sqlSession;

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

           public List<User> selectUser() {
               UserMapper mapper = sqlSession.getMapper(UserMapper.class);
               return mapper.selectUser();
          }
        }
      • 将自己写的实现类,注册到Spring配置文件中

        <?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:aop="http://www.springframework.org/schema/aop"
              xsi:schemaLocation="http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans.xsd
               http://www.springframework.org/schema/aop
               https://www.springframework.org/schema/aop/spring-aop.xsd">

           <!--导入多个xml-->
           <import resource="spring-dao.xml"/>

           <bean id="userMapper" class="com.ljxdemo.dao.UserMapperImpl">
               <property name="sqlSession" ref="sqlSession"/>
           </bean>

        </beans>
      • 测试

 

 



 

  • 整合Mybaits方式2:

    • 简化操作:其实是简化了SqlSessionTemplate这个步骤;

     

     

    • 操作步骤:同方式1,只是简化中间步骤

      • Spring配置文件:

        <!--为什么要注入参数:是因为UserMapperImpl2的父类中需要属性参数-->
        <bean id="userMapper2" class="com.ljxdemo.dao.UserMapperImpl2">
           <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
        </bean>
      • 接口实现类:UserMapperImpl2 继承 SqlSessionDaoSupport【重点】

        public class UserMapperImpl2 extends SqlSessionDaoSupport implements UserMapper{

           public List<User> selectUser() {
               return getSqlSession().getMapper(UserMapper.class).selectUser();
          }
        }
      • 测试

 

 

 

 

 

posted @   gzs1024  阅读(100)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示