Spring框架基于xml方式整合MyBatis

文章目录

前言

使用xml配置的方法来整合MyBatis。首先回想一下,我们在单独使用MyBatis框架的时候,在配置MyBatis配置文件中做了哪些配置?然后如何去实现通过Spring去整合MyBatis?


提示:以下是本篇文章正文内容,下面案例可供参考

一、回顾

 使用MyBatis框架的时候,在配置MyBatis配置文件中做了哪些配置?

 1、在resources目录下创建了MyBatis配置文件

 2、引入properties文件(前提时将数据库的连接信息存放在proerties文件,才需要引入)

 3、配置数据库的环境(数据库用户名等等)

 4、开启dao接口的注解扫描

以上都是在配置MyBatis时需要配置的内容

代码如下(示例):

<!--properties:引入配置文件-->
    <!--resource:指定配置文件的路径-->
    <properties resource="jdbc.properties"></properties>

    <!--配置数据库的环境  default:使用哪个环境-->
    <environments default="development">
        <!--配置数据库连接的环境-->
        <!--id: 是当前环境的唯一标识-->
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <!--配置连接参数-->
                <!--driver: 驱动-->
                <!--url: 路径-->
                <!--username:用户名-->
                <!--password:密码-->
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.user}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <!--批量配置: 配置Dao接口的包-->
        <package name="com.itheima.dao"/>

    </mappers>

二、如何实现通过Spring去整合MyBatis?(基于xml)

 思路分析

   1. Spring整合MyBatis,就是将MyBatis中配置的信息交给Spring来配置,不需要再由MyBatis进行配置,那么数据库的配置信息等就在Spring的配置文件中进行配置

   2.那么在Spring配置文件中就需要以下基本配置信息

     2.1 引入properties文件

     2.2 数据库连接环境,也就是数据源

     2.3 开启dao接口扫描
 

2.实现步骤

  案例:查询所有用户信息(使用Spring+MyBaties)

   1、创建Maven的web工程,导入依赖

   2、创建一个bean类

   3、创建Userdao层的接口,定义一个findAll()的抽象方法,使用@select注解的方式写上sql语句

   4、创建Serivce层的UserService接口,定义一个findAll()的抽象方法

   5、创建UserSerivce的实现类,定义一个类型为UserDao的属性,使用@AutoWired注解自动装配,并重写findAll方法,在方法内调用UserDao接口的方法

   6、创建Spring的核心配置文件

   7、创建测试类进行测试

1、创建Maven的web工程,导入依赖

代码如下(示例):

<dependencies> 
<!--Spring核心依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.1.2.RELEASE</version>
        </dependency>

        <!--
            整合MyBatis
                1.数据库驱动依赖
                2.连接池依赖
                3.MyBatis依赖
                4.MyBatis整合Spring
                    mybatis-spring jar
                    spring-jdbc    jar
                5.日志相关jar包
        -->

        <!--整合Mybatis-->
        <!--1. 数据库依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        <!--2. 连接池依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.23</version>
        </dependency>
        <!--3. mybatis本身的依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.6</version>
        </dependency>
        <!--4. 整合mybatis和spring的依赖-->
        <!--MyBatis提供的和Spring进行整合的jar包-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.6</version>
        </dependency>
        <!--spring对jdbc封装的jar包也要导入进来,否则mybatis无法整合-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.1.2.RELEASE</version>
        </dependency>

        <!--5. 日志依赖-->
        <!-- 添加slf4j日志api -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.20</version>
        </dependency>
        <!-- 添加logback-classic依赖 -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>
        <!-- 添加logback-core依赖 -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.2.3</version>
        </dependency>
    </dependencies>

 2、创建一个bean类

代码如下(示例):

import java.io.Serializable;

//注意必须加上Serializable接口,防止报错
public class Account implements Serializable {   
    private Integer id;
    private String userName;
    private Integer password;


    public Account() {
    }

    public Account(Integer id, String userName, Integer password) {
        this.id = id;
        this.userName = userName;
        this.password = password;
    }
  
    //此处省略get/set方法


}

3、创建Userdao层的接口,定义一个findAll()的抽象方法,使用@select注解的方式写上sql语句

代码如下(示例):

public interface UserDao {
    @Select("select * from tb_user")
    List<User> findAll();
}

4、创建Serivce层的UserService接口,定义一个findAll()的抽象方法

//Serivce接口
public interface UserService {
    List<User> findAll();
}

5、创建UserSerivce的实现类,定义一个类型为UserDao的属性,使用@AutoWired注解自动装配,并重写findAll方法,在方法内调用UserDao接口的方法

/*
    Service层整合dao层:
        1.在AccountServiceImpl类中定义AccountDao属性
        2.使用@Autowired注入进来AccountDao的代理对象
        3.调用方法
 */
@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserDao userDao;

    @Override
    public List<User> findAll() {
        return userDao.findAll();
    }
}

  6、创建Spring的核心配置文件(applicationContext.xml)

 <!--
        1、引入properties文件,使用<context:property-placeholder>
        2、使用bean标签创建DataSource对象,并注入连接信息  相当于获取到连接  交给Spring管理
        3、使用bean标签创建SqlSessionFactory对象,注入DataSource数据 相当于底层已经创建好SqlSession对象  交给Spring管理
        4、使用bean标签创建MapperConfigurer对象,用于扫描dao包,交给Spring管理
        5、使用<context:>开启注解扫描
     -->

    <!-- 1、引入properties文件 -->
    <context:property-placeholder location="classpath:db.properties"/>

    <!-- 2、使用bean标签创建DataSource对象,并注入连接信息  相当于获取到连接  交给Spring管理 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${db.driverClass}"/>
        <property name="url" value="${db.url}"/>
        <property name="username" value="${db.username}"/>
        <property name="password" value="${db.password}"/>
    </bean>

    <!--  3、使用bean标签创建SqlSessionFactoryBean对象,注入DataSource数据 相当于底层已经创建好SqlSession对象  交给Spring管理 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!--  4、使用bean标签创建MapperConfigurer对象,用于扫描dao包,交给Spring管理 -->
    <bean id="mapper" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.itheima.dao"/>
    </bean>

    <!--  5、使用<context:>开启注解扫描 -->
    <context:component-scan base-package="com.itheima"/>

  7、创建测试类进行测试

    @Test
    public void method() {
        //创建Spring工厂类,传入的参数是Spring核心配置文件
        ApplicationContext applicationContext = new 
        ClassPathXmlApplicationContext("applicationContext.xml");
       
        //获取UserService接口的实现类,使用UserService接口接收
        UserService userService = applicationContext.getBean(UserService.class);
        
        //调用userService的方法
        List<User> all = userService.findAll();
        //遍历数据
        for (User account : all) {
            System.out.println(account);
        }
    }

 8、结果

​User{id=1, userName='zhangsan', password=123}
User{id=2, userName='lisi', password=234}
User{id=3, userName='aaaa', password=123123}

总结

  1、全文最重点的就是就是applicationContext.xml的配置内容

  2、主要就是将原本在MyBatis配置文件中的做的时候,交给Spring去做

  3、如果不是很清楚的话,建议把在使用MyBatis配置文件理解一下,然后基本上就可以明白了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值