一、引言

  已经几个月没更新了。本来上一章的预告是准备写TypeHandler的相关特性的。但是在准备的时候。SmartSql的作者重构了一下TypeHandler,使得我一下子没搞懂TypeHandler的原理,所以一直没有下手来写这一章。但最近群里(qq群:604762592)有好几个小伙伴在问多库配置的问题。就先写一下关于这个问题的东西吧。

  关于多库的场景在这里就不多概述了,想必大家都或多或少做过此类项目。我就直接进入主题,说一下关于SmartSql下单个项目中多数据库的配置和使用。

二、项目结构

  

  上图是这次项目的结构,分为Api,2个仓储项目,一个实体项目。

  在Api的项目中。原来我们只需要一个SmartSqlMapConfig。而这个项目中有3个,分别对应了3个数据库。在Maps的文件夹中分了3文件夹,也是分别对应了3个数据库。

  仓储分为两个项目是想展示一下在多库场景下仓储的多种配置方法。

三、注册SmartSql实例

  

  这是Startup中关于注册SmartSql实例的代码,分别注册了3个库的。这里需要注意以下几点:

  1. 在多实例下,每个实例都需要对其进行别名配置。方法如上图,使用UseAlias方法。

  2. 多实例意味着多个SmartSqlMapConfig,所以同样需要使用UseXmlConfig方法配置指定的配置文件。

  3. 在配置动态仓储时,除了配置指定的程序集外,还需要指定仓储使用的SmartSql实例的别名。

  4. 在通用库和用户库这里,多了一个Filter的委托,用户过滤仓储接口。

四、多实例的使用

  

  划重点:

  1.如果使用仓储,那在这里和单库的使用没有任何区别。因为在注册的地方已经配置好了。

  2. 如果使用SqlMap,就需要在获取SqlMap实例的时候,使用别名来获取了。serviceProvider.GetSmartSql("Product").SqlMapper;

  3. 其他的使用与单库没有区别

四、结语

  好了。多库的基本配置就说到这里。希望大家下载Demo来好好品味一下。这次就不做预告了。我接下来会按照交流群中提问比较多的问题来更新。

示例代码链接在这里

SmartSql使用教程(4)——多库配置与使用的更多相关文章

  1. maven私有库配置

    私有库的配置 协同开发过程中私有库可以为团队提升很大效率,之前我的私有库一直存在问题导致jar包导入异常.现在在这分享一下私有库配置的几个点,可能因为我们学校比较简陋所以配置的比较简单,欢迎大家补充 ...

  2. Xamarin Anroid开发教程之验证环境配置是否正确

    Xamarin Anroid开发教程之验证环境配置是否正确 经过前面几节的内容已经把所有的编程环境设置完成了,但是如何才能确定所有的一切都处理争取并且没有任何错误呢?这就需要使用相应的实例来验证,本节 ...

  3. Windows2003/2008/2008 R2下易语言点支持库配置就退出的问题

    问题: 请问一个问题,我的电脑上win2003系统的,安装了易语言后,一点支持库配置就会自动退出.这是为什么啊? 解决方法如下: 删除 lib下的wmp.npk,重新打开易语言就可以了.

  4. maven的安装,maven库配置和Eclipse插件的安装

    maven的安装,maven库配置和Eclipse插件的安装 1.下载并解压maven 2.配置环境变量 3.配置maven配置文件 1.下载链接 Downloading Apache Maven 2 ...

  5. CentOS 6.4 系统下的MySQL的主从库配置

    首先了解到一. 二一.(MySQL下创建用户并且赋予权限)root用户创建yong用户的SQL语句 CREATE USER 'yong'@'localhost' IDENTIFIED BY 'yong ...

  6. Docker教程:使用docker配置python开发环境

    http://blog.csdn.net/pipisorry/article/details/50808034 Docker的安装和配置 [Docker教程:docker的安装] [Docker教程: ...

  7. xpath教程 2 - lxml库

    xpath教程 2 - lxml库 这些就是XPath的语法内容,在运用到Python抓取时要先转换为xml. lxml库 lxml 是 一个HTML/XML的解析器,主要的功能是如何解析和提取 HT ...

  8. Mysql主从同步在线实施步骤【适合大数据库从库配置】

    Mysql主从同步在线实施步骤[适合大数据库从库配置] MySQL的主从搭建大家有很多种方式,传统的mysqldump方式是很多人的选择之一,但比较适合在新实例中实施,对于较大的数据库则存在停机等不可 ...

  9. 微软企业库5.0 学习之路——第八步、使用Configuration Setting模块等多种方式分类管理企业库配置信息

    在介绍完企业库几个常用模块后,我今天要对企业库的配置文件进行处理,缘由是我打开web.config想进行一些配置的时候发现web.config已经变的异常的臃肿(大量的企业库配置信息充斥其中),所以决 ...

随机推荐

  1. shell遍历文件

    取文件每行的数据,需要按列取  可以 sed 加管道 使用 awk 取列 platform="list.txt" line=`grep -vc '^$' $platform` ; ...

  2. 生产力工具:shell 与 Bash 脚本

    生产力工具:shell 与 Bash 脚本 作者:吴甜甜 个人博客网站: wutiantian.github.io 注意:本文只是我个人总结的学习笔记,不适合0基础人士观看. 参考内容: 王顶老师 l ...

  3. BFS(二):数的变换

    [例1]整数变换(POJ 3278 “Catch That Cow”) 给定两个整数a和b(0 ≤a,b≤100,000),要求把a变换到b.变换规则为:(1)当前数加1:(2)当前数减1:(3)当前 ...

  4. java集合框架中的去重问题

    对于自定义的类来说,必须要重写hashcode和equals方法 hashcode方法的作用是确定元素在数据结构中的位置,当两个元素的hash值一样时,需要用equals方法判断两个元素是否是一样的, ...

  5. Zimg—轻量级图片服务器搭建利器

    在一个互联网应用中,图片扮演着越来越重要的角色.有稳定的可扩展的图片存储服务器就显得尤为的重要,云厂商们提供了便利的图片存储服务,花钱就可以解决了.这里简单介绍一个开源的一个分布式图片存储服务器--z ...

  6. tomcat一键发布

    1. 场景描述 linux下tomcat一键发布,包含停用服务.删除war包.拷贝war包及备份.重启服务等,以前的版本还包含svn更新及打包,后来在生产上怕出问题,改成本地打war包后,ftp上传到 ...

  7. Greenplum主备节点切换

    1. 场景描述 Greenplum主节点出现故障,需要将standby节点手动切换为master节点,当master节点修复完成后,再将新修复的master节点设置为standyb节点加入到集群中. ...

  8. C语言的指针移动怎么理解

    C Primer pkus(第五版)中文版,老外写的还是很经典的,推荐给朋友们,购买地址:C primer plus 5版中文版购买 另外再推荐本书: 程序员面试宝典(第5版)第五版:程序员面试宝典( ...

  9. 【DFS练习】-翻棋子-C++

    Description 有一个4*4的棋盘,放有16枚棋子. 每个棋子都是一面黑一面白,一开始有的黑面朝上,有的白面朝上. 下面是一个例子,这个例子用文字描述为: bwbw wwww bbwb bww ...

  10. linux 反弹shell

    Linux下反弹shell笔记 0x00 NC命令详解 在介绍如何反弹shell之前,先了解相关知识要点. nc全称为netcat,所做的就是在两台电脑之间建立链接,并返回两个数据流 可运行在TCP或 ...