# SmartSqlMapConfig

# Demo

<?xml version="1.0" encoding="utf-8" ?>
<SmartSqlMapConfig xmlns="http://SmartSql.net/schemas/SmartSqlMapConfig.xsd">
  <Settings IgnoreParameterCase="false" ParameterPrefix="$" IsCacheEnabled="true"/>
  <Properties>
    <Property Name="JsonTypeHandler`" Value="SmartSql.TypeHandler.JsonTypeHandler`1,SmartSql.TypeHandler"/>
    <Property Name="JsonTypeHandler" Value="SmartSql.TypeHandler.JsonTypeHandler,SmartSql.TypeHandler"/>
    <Property Name="EnumTypeHandler" Value="SmartSql.TypeHandlers.EnumTypeHandler`1, SmartSql"/>
    <Property Name="ScriptBuilder" Value="SmartSql.ScriptTag.ScriptBuilder,SmartSql.ScriptTag"/>
  </Properties>
  <Database>
    <DbProvider Name="SqlServer"/>
    <Write Name="WriteDB" ConnectionString="${ConnectionString}"/>
    <Read Name="ReadDb-1" ConnectionString="${ConnectionString}" Weight="100"/>
    <Read Name="ReadDb-2" ConnectionString="${ConnectionString}" Weight="100"/>
  </Database>
  <TypeHandlers>
    <TypeHandler Name="Json" Type="${JsonTypeHandler}">
      <Properties>
        <Property Name="DateFormat" Value="yyyy-MM-dd mm:ss"/>
        <Property Name="NamingStrategy" Value="Camel"/>
      </Properties>
    </TypeHandler>
    <TypeHandler PropertyType="SmartSql.Test.Entities.UserInfo,SmartSql.Test" Type="${JsonTypeHandler`}">
      <Properties>
        <Property Name="DateFormat" Value="yyyy-MM-dd mm:ss"/>
        <Property Name="NamingStrategy" Value="Camel"/>
      </Properties>
    </TypeHandler>
    <TypeHandler PropertyType="SmartSql.Test.Entities.NumericalEnum,SmartSql.Test" Type="${EnumTypeHandler}"/>
  </TypeHandlers>
  <TagBuilders>
    <TagBuilder Name="Script" Type="${ScriptBuilder}"/>
  </TagBuilders>
  <IdGenerator Type="SnowflakeId">
    <Properties>
      <Property Name="WorkerIdBits" Value="10"/>
      <Property Name="WorkerId" Value="888"/>
      <Property Name="Sequence" Value="14"/>
    </Properties>
  </IdGenerator>
  <SmartSqlMaps>
    <SmartSqlMap Path="Maps" Type="Directory"></SmartSqlMap>
  </SmartSqlMaps>
</SmartSqlMapConfig>

# Settings 标签属性

属性 说明
ParameterPrefix 全局参数前缀,默认使用 $ 适配所有DB
IgnoreParameterCase 忽略参数大小写
IsCacheEnabled 是否开启缓存

# Database 子标签

标签 说明
DbProvider 各Db Client 的 DbProviderFactory 实现类
Write 写库(必选)
Read 读库(可选)

# DbProvider 标签

属性 说明 是否必填
Name 名称标识,目前内置了:SqlServer/MySQL/Oracle/PostgreSql/SQLite
ParameterPrefix 参数前缀:[SqlServer:@ ; MySQL:? ; Oracle::]
Type 类型

# Write 标签

属性 说明
Name 名称标识
ConnectionString 数据库链接字符串

# Read 标签

属性 说明
Name 名称标识
ConnectionString 数据库链接字符串
Weight 权重

# TypeHandlers 子标签

# TypeHandler 标签

属性 说明
Name 名称标识
Type 类型

# SmartSqlMaps 子标签

标签 说明
SmartSqlMap 用于定位SmartSqlMap文件位置

# SmartSqlMap 标签

属性 说明
Path 用于定位 SmartSqlMap 文件/目录 位置
Type 枚举类型:File/Directory/DirectoryWithAllSub/Uri/Embedded,File:为文件资源;Directory:为目录资源,取该目录下所有Map文件