IBatis.net连接MySql 问题与故障的解决方案

来源:Asp之家 时间:2011-06-02 09:38:00 

由于笔者最近在做一个跨数据库操作的测试,开始做IBatisNet (IBatis.DataMapper.1.6.2/IBatis.DataAccess.1.9.2)+ SqlServer2005的测试时,使用都很顺利,但是使用IBatisNet+ MySql(5.1)的时候,却出现了一些问题。经过努力和网上收集终于解决了,下面把问题和解决办法一一贴出来共享。

问题描述:

1、错误提示Check the MySql。

出现这个问题首先请下载mysql-connector-net,如果已经下载并安装了,继续检查IBatisNet的providers.config文件里的MySql 的provider节点的enabled是否设为“true”了,如果设为“true”,继续检查provider,官方提供的配置有些使用动态链接库文件版本很老,你需要手动去修改,例:

修改前:


<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 V6.3.2.0" 

enabled="true" 

assemblyName="MySql.Data, Version=6.3.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" 

/>


2、错误提示 Unable to open connection to "MySQL, MySQL provider V6.3.2.0"。

出现这样的错误可能是Configure方法指定的配置文件的链接字符串有点问题,一下是我的,仅供参考。


<?xml version="1.0" encoding="utf-8" ?> 

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

<!--以上为固定格式,从这里开始以下是用户配置项    --> 

<settings> 

<!-- 该选项指示是否使用缓存,默认为true --> 

<setting cacheModelsEnabled="true"/> 

<!-- 当该选项为true时,
你在调用指定的映射时你总是必须给出完整的名称例如:
queryForObject(“Namespace.statement.Id”);  
 --> 

<setting useStatementNamespaces="false" /> 

</settings> 

<!-- 数据驱动提供类配置文件的路径和文件名 --> 

<providers resource="providers.config" /> 

<!-- 指定一个属性源,相当与设置一些属性变量,
该文件请查看下面   --> 

<!--指定数据源${datasource} ${database}
${userid} ${password}
为DataBase.config定义的值--> 

<database> 

<!--<provider name="ByteFx"></provider> 

<dataSource name="IBatisNet"
connectionString="Database=zy_test;Data Source=
localhost;User Id=root;Password=1234"/>--> 

<provider name="MySql"></provider> 

<dataSource name="IBatisNet"
connectionString="Host=localhost;UserName=
root;Password=1234;Database=zy_test;Port=3306;
CharSet=utf8;Allow Zero Datetime=true"/> 

</database> 

<!--指定映射的文件的位置    --> 

<sqlMaps> 

<!-- 从程序集中  

<sqlMap embedded="${root}Person.xml,${assembly}" />--> 

<!-- 从文件中--> 

<sqlMap resource="SqlDetailXml/SystemXml/RoleInfo.xml" /> 

<sqlMap resource="SqlDetailXml/SystemXml/ModuleInfo.xml" /> 

<sqlMap resource="SqlDetailXml/SystemXml/UserInfo.xml" /> 

</sqlMaps> 

</sqlMapConfig>


3、错误提示 Character set 'gbk' is not supported。

出现此问题,可能你用了底版本的mysql-connector-net,因为在MySQL Connector 1.07中提供的字符编码是有限的,找到不到web.config中设置的编码类型,没有gbk,换个版本高的MySQL Connector 。


标签:IBatis.net,MySql故障,解决方案
0
投稿

猜你喜欢

  • 用实例说明python的*args和**kwargs用法

    2021-05-04 08:25:55
  • Python中的上下文管理器和with语句的使用

    2021-01-28 00:29:51
  • Python实现的爬取百度文库功能示例

    2022-09-08 22:34:46
  • Python基于Tkinter实现的记事本实例

    2021-12-30 09:25:17
  • python实现图像检索的三种(直方图/OpenCV/哈希法)

    2021-08-11 17:15:08
  • 扩展Django admin的list_filter()可使用范围方法

    2021-05-01 15:10:47
  • Python实现OpenCV的安装与使用示例

    2021-09-08 13:40:50
  • Python 实现使用dict 创建二维数据、DataFrame

    2021-09-29 16:49:43
  • 浅析php中array_map和array_walk的使用对比

    2023-09-10 22:22:28
  • 浅谈FastClick 填坑及源码解析

    2024-04-10 16:08:57
  • 在OracleE数据库的字段上建立索引的方法

    2009-02-26 10:34:00
  • MySQL 的模块不能安装的解决方法

    2024-01-29 13:15:36
  • Python实现绘制多角星实例

    2023-08-26 13:42:14
  • 从IIS到SQL Server数据库安全

    2008-12-24 15:58:00
  • Jupyter Notebook读入csv文件时出错的解决方案

    2021-09-15 18:13:48
  • Python语言编写电脑时间自动同步小工具

    2023-12-23 20:46:08
  • PyCharm更改字体和界面样式的方法步骤

    2021-12-24 09:15:25
  • Python数学建模PuLP库线性规划进阶基于字典详解

    2022-03-11 18:04:04
  • Python + Requests + Unittest接口自动化测试实例分析

    2021-08-08 05:41:47
  • 银行账号输入格式化, 支持部分浏缆器

    2007-09-26 18:27:00
  • asp之家 网络编程 m.aspxhome.com