• iBatisNet学习笔记一:配置


    从网上下载了一个IBatisNet的Demo,并结合相关文章进行理解学习。

    Demo的相关配置文件包括:sqlmap.config, database.config, providers.config, web.config, 以及Person.xml文件。

    下面进行学习:

    参考文章:

    http://www.cnblogs.com/pw/archive/2006/08/08/470060.html


    首先了解sqlmap.config

    IBatisNet DataMapper是通过XML文件来配置的,配置文件名称我们通常默认为SqlMap.Config,配置文件中指定了我们项目的数据库连接字符串,以及数据库表的映射文件等等.

    sqlmap.config文件:

    sqlmap.config
    <?xml version="1.0" encoding="utf-8"?>  
    <sqlMapConfig xmlns="http://ibatis.apache.org/dataMapper" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >  
      
      
    <!-- Rem : If used via a DataAccess context, properties tag will be ignored    
      <properties resource="http://www.cnblogs.com/database.config"/> 
    -->  
      
    <properties embedded="database.config, IBatisNetDemo"/>  
      
    <settings>  
        
    <setting useStatementNamespaces="${useStatementNamespaces}"/>  
        
    <setting cacheModelsEnabled="true"/>  
        
    <setting validateSqlMap="false"/>  
      
    </settings>  
        
      
    <!-- Optional if resource -->  
      
    <providers embedded="providers.config,IBatisNetDemo"/>  
      
    <!-- ==== SqlClient configuration =========    -->  
      
    <!-- Rem : If used via a DataAccess context, database tag will be ignored -->  
      
    <database>  
        
    <!-- Optional ( default ) -->  
        
    <provider name="sqlServer2.0"/>  
        
    <dataSource name="iBatisNet" connectionString="data source=${datasource};database=${database};user id=${userid};password=${password};connection reset=false;connection lifetime=5; min pool size=1; max pool size=50"/>  
      
    </database>  
      
      
    <sqlMaps>  
        
    <!-- user via embedded-->  
        
    <sqlMap embedded="Map.SqlClient.Person.xml,IBatisNetDemo"/>  
      
    </sqlMaps>  
    </sqlMapConfig>  

    解释:

    1.properites

    <properties embedded="database.config, IBatisNetDemo"/>  指定properties文件可作为程序集的资源文件进行加载


    2.setting

    useStatementNamespaces 是否使用Satement命名空间,这里的命名空间指的是映射文件中sqlMap节点的namespace属性

    映射文件Person.xml:<sqlMap namespace="Person" xmlns="http://ibatis.apache.org/mapping"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
    cacheModelsEnabled 是否启用DataMapper的缓存机制,针对全部的SqlMap(什么是DataMap的缓存机制?)

    validateSqlMap 是否启用SqlMapConfig.xsd schema验证映射文件


    3.providers
    用于提供数据库驱动配置文件的文件名和路径

    <providers embedded="providers.config,IBatisNetDemo"/>


    4.database

    其中包括两个子元素,分别是provider和datasource
    如果在providers.config文件中指定了默认的数据库驱动,那么provider节点就不需要设置了,它的作用是在换数据库驱动时不需要修改providers.config文件。datasource节点用于指定ADO.NET Connection String.
    <database>
        <!-- Optional ( default ) -->
        <provider name="sqlServer2.0"/>
        <dataSource name="iBatisNet" connectionString="data source=${datasource};database=${database};user id=${userid};password=${password};connection reset=false;connection lifetime=5; min pool size=1; max pool size=50"/>
    </database>


    5.sqlmap

    该节点下需列出所有应用程序使用的DataMapper的实例,也就是映射文件。
    <sqlMap embedded="Map.SqlClient.Person.xml,IBatisNetDemo"/>


    其中,带$号的变量,在database.config中配置,并通过<properties embedded="database.config, IBatisNetDemo"/>加载。

    database.config文件:

    database.config
    <?xml version="1.0" encoding="utf-8" ?>  
    <databaseConfig xmlns="http://ibatis.apache.org/dataMapper" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >  
    <settings>  
        
    <add key="userid" value="sa" />  
        
    <add key="password" value="1234" />  
        
    <add key="database" value="iBatis" />  
        
    <add key="datasource" value="(local)" />  
        
    <add key="selectKey" value="select @@IDENTITY as value" />  
        
    <add key="directory" value="Maps" />  
        
    <add key="useStatementNamespaces" value="false" />  
    </settings>  
    </databaseConfig>  

     也可以直接把数据库参数写在sqlmap.config文件中,而不需要database.config文件。

  • 相关阅读:
    nginx 限流配置
    redis-sentinel 高可用方案实践
    redis之 主从复制和哨兵
    MySQL架构与业务总结图
    MGR实现分析
    通过 SCQA 的框架来讲故事
    MECE分析法
    如何提高问题的认知高度
    Mac 应用程序不能打开解决方法
    vscode打开文件在同一个tab的问题
  • 原文地址:https://www.cnblogs.com/niuniu1985/p/1631166.html
Copyright © 2020-2023  润新知