zoukankan      html  css  js  c++  java
  • [笔记]iBatisNET配置问题

    题外话:前段时间,跟随潮流用了Linq(Linq to Sql),发现居然是MS Sql Server独占的,我这个气啊。。。。没办法在路上拣了个DBLinq,开始玩玩觉得不错,就加入到项目里用了,没想到这里bug,那里功能还没有提供,只是个空方法。。。。一路走来,全在吐血。。。。

    后来公司技术顾问推荐用iBatisNET,不用学Linq语法或者其他什么ORM框架的语法,Sql和代码分离,支持多种数据库。感觉不错,从官方下了最新版的组件(下载),又从博友Anderson Cui那下载他修改后官方例子NPetShop(下载),在学习的过程中发现一些需要注意的问题:

    1.如果连接的数据库不是被.NET内置支持的,记得把相应的动态链接库文件(比如:MySql.Data.dll)引入到Web层目录下,另外还要在目录下引入Castle.DynamicProxy.dll,IBatisNet.DataMapper.dll,IBatisNet.DataAccess.dll,IBatisNet.Common.dll。

    2.Web层目录下的providers.config里记录了支持的数据库,及链接对应数据库需要的动态链接库文件,官方提供的配置有些使用动态链接库文件版本很老,你需要手动去修改,例:

    修改前:

    <provider
          name="MySql"
          description="MySQL, MySQL provider 1.0.7.30072"
          enabled="false"
          assemblyName="MySql.Data, Version=1.0.7.30072, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionClass="MySql.Data.MySqlClient.MySqlConnection"
          commandClass="MySql.Data.MySqlClient.MySqlCommand"
          parameterClass="MySql.Data.MySqlClient.MySqlParameter"
          parameterDbTypeClass="MySql.Data.MySqlClient.MySqlDbType"
          parameterDbTypeProperty="MySqlDbType"
          dataAdapterClass="MySql.Data.MySqlClient.MySqlDataAdapter"
          commandBuilderClass="MySql.Data.MySqlClient.MySqlCommandBuilder"
          usePositionalParameters="false"
          useParameterPrefixInSql="true"
          useParameterPrefixInParameter="true"
          parameterPrefix="?"
          allowMARS="false"   
      />

    修改后(加亮这个一定要注意,如果为false,是不能连接数据库成功的):

    <provider
          name="MySql"
          description="MySQL, MySQL provider V5.2.2.0"
          enabled="true"
          assemblyName="MySql.Data, Version=5.2.2.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionClass="MySql.Data.MySqlClient.MySqlConnection"
          commandClass="MySql.Data.MySqlClient.MySqlCommand"
          parameterClass="MySql.Data.MySqlClient.MySqlParameter"
          parameterDbTypeClass="MySql.Data.MySqlClient.MySqlDbType"
          parameterDbTypeProperty="MySqlDbType"
          dataAdapterClass="MySql.Data.MySqlClient.MySqlDataAdapter"
          commandBuilderClass="MySql.Data.MySqlClient.MySqlCommandBuilder"
          usePositionalParameters="false"
          useParameterPrefixInSql="true"
          useParameterPrefixInParameter="true"
          parameterPrefix="?"
          allowMARS="false"   
      />

    3.新版的SqlMap配置文件,也做了细微的调整,如果属性书写不正确,可能导致一些问题:

    例:DataAccess.dll为1.9.2,DataMapper.dll为1.6.2,其dao的配置文件的开头部分是这样的:

    <daoConfig xmlns="http://ibatis.apache.org/dataAccess" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <context><daoSessionHandler>的name属性不再使用,改为使用id。

    SqlMap配置文件也有变化:
    <sqlMapConfig xmlns="http://ibatis.apache.org/dataMapper" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >

    4.数据库连接

    以往这部分是SqlMap.config文件里的,iBatisNET升级后,这部分被移到dao.config内,详见NPetShop示例程序

     

    这个算是初步体验。以后有心得再续上。

  • 相关阅读:
    LeetCode 146
    Codeforces Round #644 (Div. 3) 题解
    AtCoder Grand Contest 044
    约数个数求解+约数求和(唯一分解定理)(遍历map的写法!)
    [蓝桥杯][2013年第四届真题]危险系数(DFS)
    Codeforces Round #674 (Div. 3)(A->D(前缀和出现次数))
    Codeforces Round #673 (Div. 2)B. Two Arrays(贪心)
    Codeforces Round #672 (Div. 2)(A->C2)(B位运算,C贪心,DP)
    质数笔记
    2020 CCPC
  • 原文地址:https://www.cnblogs.com/TomToDo/p/1332250.html
Copyright © 2011-2022 走看看