网络编程
位置:首页>> 网络编程>> 数据库>> IBatis.net连接MySql 问题与故障的解决方案

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

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

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

由于笔者最近在做一个跨数据库操作的测试,开始做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 。


0
投稿

猜你喜欢

  • 我页面上有控制了只能输入数字的控件,禁止了输入法切换的,但是搜狗的云输入却控制不了,有没有办法在页面里面禁止它运行啊?发现这玩意儿真的很讨厌
  •  让 PHP 支持 MySQLPHP 有专有的 MySQL 函数库以使用操作 MYSQL 数据库。在 PHP 5 及以后版本中不再
  • 大大小小也搞过一些数据库设计,见过一些其他人的设计,看过些书,总结总结,经验谈。选表类型:大家都知道mysql的myisam表适合读操作大,
  • master库对于SQLServer来说,是很重要的系统数据库,保存着所有Sqlserver的用户信息、数据库信息等,当数据库崩溃时,mas
  • 先举个例子,以前负责教育培训类网站的时候,曾经接到过这样一个项目,需求方希望做一个充满趣味性的新手入门频道,页面要炫,最好是flash,用户
  • 之前写过的组织结构和组织体系都太抽象了,读到标签系统我才有那种“略懂”的感觉。哈哈…书上提到的标签包括:导航情境式链接:常见的“更多”这种用
  • 在 Class 块中,成员通过相应的声明语句被声明为 Private(私有成员,只能在类内部调用) 
  • 大量的多行段落本身就会降低可读性,同时空行分段也比空格分段有更高的可适应性...前文讨论的热烈程度远超我预期,正好还有之前查阅资料拍的几张实
  • 网络上关于各种语言和应用软件的速查手册和快速参考指南有很多很多,不幸的是当我们需要的时候,总是很难找到,所以我决定花点时间尽可能的收集更多的
  • 如何用SysOjects来获知数据库的信息?SysObjects中就保存了数据库中所有对象的信息,如:SELECT * FROM SysOb
  • #BEGIN CONFIG INFO#DESCR: 4GB RAM, 只使用InnoDB, ACID, 少量的连接, 队列负载大#TYPE:
  • 看那个自由落体div有感。这个没落体,画个圆。(ie only)<html><head><style>v
  • 数据库安全性问题一直是围绕着数据库管理员的恶梦,数据库数据的丢失以及数据库被非法用户的侵入使得数据库管理员身心疲惫不堪。围绕数据库的安全性问
  • W3C(万维网联盟)日前发布了HTML 5公共草案,这是10年来对HTML的一次主要升级。据国外媒体报道,W3C HTML5草案于本周二发布
  • 两个多月来唯一一次有时间哄么么睡觉,我先给他讲了遍《从前有座山》,还是不睡。又给他讲了这个“保安的故事”:小A是名很敬业的保安,负责保护客户
  • 代码如下:<% '--------定义部份------------------ Dim XH_P
  • 一: 删除LOG1:分离数据库 企业管理器->服务器->数据库->右键->分离数据库2:删除LOG文件3:附加数据库 企业管理器->服务器-
  • 我们在编写asp程序时经常会使用到这个功能,一般我们这样判断如:if a="" then ,而这个函数考虑的就比较全面了
  • 用window.open打开的窗口中,有时候session变量会丢掉,给asp编程带来的一定的麻烦。用参数传递解决它:<DIV&nbs
  • 今天冒出来一个想法,在仅知道数据库名的情况下,用asp得到数据库中的所有表名、所有表的字段名、以及所有字段中的内容。经过一段时间查询资料和修
手机版 网络编程 asp之家 www.aspxhome.com