首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

MyBatisNet+MySQL碰到的有关问题总结

2012-11-01 
MyBatisNet+MySQL碰到的问题总结以前的项目的是MyBatisNET的项目都没有问题,今天突然想把数据库换为MySQL,

MyBatisNet+MySQL碰到的问题总结

    以前的项目的是MyBatisNET的项目都没有问题,今天突然想把数据库换为MySQL,在实验的过程没有预想的顺利,遇到了好几个问题!其中的好些问题,网上都有相应的解决方案。主要的可以参考:[url]http://blog.csdn.net/chencknj/article/details/5644888[/url]。问题描述: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" connection        command        parameter        parameterDbType        parameterDbTypeProperty="MySqlDbType"         dataAdapter        commandBuilder        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" connection     command     parameter     parameterDbType     parameterDbTypeProperty="MySqlDbType"      dataAdapter     commandBuilder     usePositionalParameters="false"      useParameterPrefixInSql="true"      useParameterPrefixInParameter="true"      parameterPrefix="?"      allowMARS="false"    />  


上面的解决方法是上面地址里面的内容。但是我觉得不够全面,需要注意的是,在provider里面的description的版本应该和你安装的mysql-connector-net的版本一致,否则仍然会报错!也是就是说如果你安装的mysql-connector-net是5.0.9,那么在provider里面应该写成

<provider       name="MySql"       description="MySQL, MySQL provider V5.0.9.0"       enabled="true"       assemblyName="MySql.Data, Version=5.0.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connection      commandname="code"><?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 。这个问题我没有碰到。


mysql-connector-net的下载地址:
   http://download.softagency.net/MySQL/Downloads/Connector-Net/

参考:http://blog.csdn.net/chencknj/article/details/5644888

热点排行