spring mvc + mybatis配置多个数据源问题。
编程技术  /  houtizong 发布于 3年前   309
惯例:
我是温浩然:
用过spring MVC的都知道,项目的每一小块,都分成,controller,dao,service,module,基本是这四块,分别是,实现需求的控制器,数据库操作的方法,实现需求的方法,和实体类。
用mybatis来改装后,dao就会被mapper来代替了。
但是有一个问题,如果一个项目中,模块不多,没必要按照每个模块来划分,但是,还是根据spring mvc的模式来划分,就很有可能,多个数据源,都放到同一个dao,中。
也就是,多个数据库放到同一个mapper中,这样,只是简单的吧mybatis配置复制一份改改名字,就是不行的了。
就需要用其他的配置方法。
这篇博客没写完就发表了,可能坑了很多人把,现在把他完善一下。
查看源码,可以找到
在mybatis-spring 1.2.0中,有这么一个东西。
org.mybatis.spring.support.SqlSessionDaoSupport.class
这个类里面有这么一个方法。
public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) { this.sqlSession = sqlSessionTemplate; this.externalSqlSession = true; }
mybatis中,需要配置mapper.Java文件么。
这个地方,让他继承自SqlSessionDaoSupport这个类。
下面是我自己写的mapper.java文件。
package com.tujia.babycard.mapper;import java.util.List;import org.apache.ibatis.session.SqlSessionFactory;import org.mybatis.spring.support.SqlSessionDaoSupport;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.stereotype.Repository;import com.tujia.babycard.entity.BabyStage;@Repository("babyGrowStageMapper")public class BabyGrowStageMapper extends SqlSessionDaoSupport {@Autowiredpublic void setSqlSessionFactory(@Qualifier("sqlSessionFactory.veidoo") SqlSessionFactory sqlMapClient) {super.setSqlSessionFactory(sqlMapClient);}public List<BabyStage> getStages() {return this.getSqlSession().selectList("getStages");}public BabyStage getCurrentSatge(long moonAge){return this.getSqlSession().selectOne("getCurrentStage", moonAge);}public void createStage(final BabyStage stage) {this.getSqlSession().insert("createStage", stage);}public void updateStage(final BabyStage stage){this.getSqlSession().update("updateStage", stage);}public Long getStageVersion(){return this.getSqlSession().selectOne("getStagever");}}
@Qualifier("sqlSessionFactory.veidoo")
这个就是我在与数据库连接中的配置了。
<bean id="sqlSessionFactory.veidoo" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="veidooMaster" /><!-- 这里连接数据库 --><property name="mapperLocations"> <list><pre name="code" class="html"> <!-- 这里配置这个数据库对应的mapper.xml文件 -->
<pre name="code" class="html"> <value>classpath:com/tujia/babycard/mapper/BabyCardMapper.xml</value> <value>classpath:com/tujia/babycard/mapper/BabyStageMapper.xml</value> </list> </property></bean>
版权声明:本文为博主原创文章,未经博主允许不得转载。
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成
网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];
文章归档
文章标签
友情链接