MyBatis如何使用(三)

网友投稿 192 2023-07-10


MyBatis如何使用(三)

在前边阐述了单独使用mybatis的方法,在实际开发过程中mybatis经常和spring一起使用,即mybatis和spring进行集成,现在我们来看如何集成。

mybatis和spring进行集成需要用到集成包:mybatis-spring-1.1.1.jar,此包提供mybatis和spring集成的支持,把此包导入到项目的lib目录下。

我们先看mybatis单独使用的时候的过程,mybatis配置文件==》读取配置文件==》操作数据库,具体的使用方法可参照前两篇文章。

下面进行mybatis和spring的集成,

一、mybatis配置文件

在和spring做集成时mybatis的配置文件中有些配置不再需要了,spring会使用它自己的。如数据源,下面看下mybatis的配置文件,MybatisConfiguration.xml,

"http://mybatis.org/dtd/mybatis-3-config.dtd">

上面的配置文件配置了别名和mappers映射文件,和之前的配置文件相比,可以看出没有了关于数据源的信息,这里在mybatis的配置文件中不再需要配置数据源,需要在spring的配置文件中配置。

二、spring配置文件

既然和spring做集成,那么必须导入spring的包,关于spring的包可以从前面的文章中获得;导入spring的包之后,就需要配置spring的配置文件,我们把spring的配置文件放在src下,名字为spring-application.xml,

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xmlns:aop="http://springframework.org/schema/aop"

xmlns:tx="http://springframework.org/schema/tx"

xsi:schemaLocation="http://springframework.org/schema/beans http://springframework.org/schema/beans/spring-beans-3.0.xsd

http://springframework.org/schema/tx http://springframework.org/schema/tx/spring-tx-3.0.xsd

http://springframework.org/schema/aop http://springframework.org/schema/aop/spring-aop-3.0.xsd">

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xmlns:aop="http://springframework.org/schema/aop"

xmlns:tx="http://springframework.org/schema/tx"

xsi:schemaLocation="http://springframework.org/schema/beans http://springframework.org/schema/beans/spring-beans-3.0.xsd

http://springframework.org/schema/tx http://springframework.org/schema/tx/spring-tx-3.0.xsd

http://springframework.org/schema/aop http://springframework.org/schema/aop/spring-aop-3.0.xsd">

首先,我们配置了一个数据源,这里如果引入了context的命名空间,可以使用,引入src下的配置文件。

其次,配置了sqlSessionFactoryBean,这里使用sqlSessionFactoryBean生成sqlSessionFactory(在mybatis中sqlSessionFactory由sqlSessionFactoryBuilder生成)。要通过sqlSessionFactroyBean生成sqlSessionFactroy有以下几个属性,dataSource 即刚才配置的数据源,指定生成sqlSessionFactory使用的数据源

configLocation 这个属性指定mybatis的配置文件的路径,在本例中我们使用了src下的MybatisConfiguration.xml,如果在此文件中配置了mappers映射文件,则不需要第三个属性,如果没配置映射文件则需要第三个属性;假如,在MybatisConfiguration.xml文件中没有配置映射文件,也没有配置mapperLocaHGvtBFhtions属性,则映射文件必须必须和映射器类在同一个包下,且映射文件和映射器类必须名字相同。

mapperLocations 指定mappers映射文件,这个属性可以配置为一个list的值

最后,使用动态代理生成访问数据库的代码,MapperFactoryBean作为一个工厂类,可以用来生成访问数据库的动态代理,有两种方式可以生成一个动态代理,这里使用了mapperInterface和sqlSessionFactory两个属性,第一个指定映射器类的全限路径,第二个就是上面的sqlSessionFactory;另一种方式是使用注解的方式。

至此,spring的配置文件完成,可以进行测试,测试代码如下,

package com.cn.test.spring;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.mybatis.spring.support.SqlSessionDaoSupport;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.cn.imooc.entity.Message;

import com.cn.inter.IMessageOperation;

public class TestSpringAndMybatis {

public static void main(String[] args) {

// TODO Auto-generated method stub

//获得spring的配置

ClassPathXmlApplicationContext cpxac=new ClassPathXmlApplicationContext("spring-application.xml");

//获得IMessageOperation接口类

IMessageOperation imo=(IMessageOperation)cpxac.getBean("messageMapper");

Message m=imo.selectMessageById("2");

System.out.println(m);

}

}

上边完成了mybatis和spring集成的一种方式,我们会发现在生成代理的时候如果有多个映射器类,则需要配置多次,比较麻烦,下篇文章使用另一种方式。

以上所述是给大家介绍的MyBatis如何使用(三),希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:EasyUI加载完Html内容样式渲染完成后显示
下一篇:第一次接触神奇的Bootstrap基础排版
相关文章

 发表评论

暂时没有评论,来抢沙发吧~