Hi all
i'm new to ibatis under .NET so i've created a simple HelloIbatis :)
application with the intent to take some data from a MySql Database...
so i've created these files:
=================================================================
Person.cs
---------------
using System;
using System.Collections.Generic;
using System.Text;

namespace iBatisTutorial.model
{
    public class person
    {
        private int _id;
        private string _firstName;

        public int Id
        {
            get { return _id; }
            set { this._id = value; }
        }
        public string firstName
        {
            get { return _firstName; }
            set { this._firstName = value; }
        }
    }
}



Person.xml
------------------
<sqlMap>
  <alias>
    <typeAlias alias="Person" type="iBatisTutorial.Model.Person,
iBatisTutorial.Model" />
  </alias>

  <resultMap id="SelectAllResult" class="Person">
    <result property="Id" column="PER_ID" />
    <result property="FirstName" column="PER_FIRST_NAME" />
  </resultMap>

  <select id="Select" parameterClass="int" resultClass="Person">
    SELECT
    PER_ID,
    PER_FIRST_NAME
    FROM person
    WHERE PER_ID = #value#
  </select>
</sqlMap>


Form1.cs
----------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using IBatisNet.Common;
using IBatisNet.DataMapper;
using IBatisNet.DataMapper.Configuration;
using IBatisNet.DataAccess;
using iBatisTutorial.model;
using MySql.Data;
using System.IO;

namespace HelloIbatis
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                ISqlMapper sqlMap = new DomSqlMapBuilder().Configure("
SqlMap.config");

                person persona = sqlMap.QueryForObject<person>("Select", 2);

                Console.WriteLine("Nome: " + persona.firstName);

                button1.Text = "Done";
            }
            catch (Exception error)
            {
                StreamWriter sw = new StreamWriter("error_log.txt");
                sw.Write(error.ToString());
                sw.Close();
                MessageBox.Show(error.ToString());
                Application.Exit();

            }
        }
    }
}


and finally i use providers.config as this
----------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<providers
xmlns="http://ibatis.apache.org/providers";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>

<clear/>
<provider
      name="sqlServer1.0"
      description="Microsoft SQL Server, provider V1.0.3300.0 in framework
.NET V1.0"
      enabled="false"
      assemblyName="System.Data, Version=1.0.3300.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089" connectionClass="
System.Data.SqlClient.SqlConnection"
      commandClass="System.Data.SqlClient.SqlCommand"
      parameterClass="System.Data.SqlClient.SqlParameter"
      parameterDbTypeClass="System.Data.SqlDbType"
      parameterDbTypeProperty="SqlDbType"
      dataAdapterClass="System.Data.SqlClient.SqlDataAdapter"
      commandBuilderClass="System.Data.SqlClient.SqlCommandBuilder"
      usePositionalParameters="false"
      useParameterPrefixInSql="true"
      useParameterPrefixInParameter="true"
      parameterPrefix="@"
      allowMARS="false"
  />
<provider
      name="sqlServer1.1"
      description="Microsoft SQL Server, provider V1.0.5000.0 in framework
.NET V1.1"
      enabled="true"
      default="true"
      assemblyName="System.Data, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"
      connectionClass="System.Data.SqlClient.SqlConnection"
      commandClass="System.Data.SqlClient.SqlCommand"
      parameterClass="System.Data.SqlClient.SqlParameter"
      parameterDbTypeClass="System.Data.SqlDbType"
      parameterDbTypeProperty="SqlDbType"
      dataAdapterClass="System.Data.SqlClient.SqlDataAdapter"
      commandBuilderClass="System.Data.SqlClient.SqlCommandBuilder"
      usePositionalParameters="false"
      useParameterPrefixInSql="true"
      useParameterPrefixInParameter="true"
      parameterPrefix="@"
      allowMARS="false"
  />
<provider
    name="sqlServer2.0"
    enabled="false"
    description="Microsoft SQL Server, provider V2.0.0.0 in framework .NET
V2.0"
    assemblyName="System.Data, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"
    connectionClass="System.Data.SqlClient.SqlConnection"
    commandClass="System.Data.SqlClient.SqlCommand"
    parameterClass="System.Data.SqlClient.SqlParameter"
    parameterDbTypeClass="System.Data.SqlDbType"
    parameterDbTypeProperty="SqlDbType"
    dataAdapterClass="System.Data.SqlClient.SqlDataAdapter"
    commandBuilderClass=" System.Data.SqlClient.SqlCommandBuilder"
    usePositionalParameters = "false"
    useParameterPrefixInSql = "true"
    useParameterPrefixInParameter = "true"
    parameterPrefix="@"
    allowMARS="false"
    />
<provider name="OleDb1.1"
      description="OleDb, provider V1.0.5000.0 in framework .NET V1.1"
      enabled="true"
      assemblyName="System.Data, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"
    connectionClass="System.Data.OleDb.OleDbConnection"
      commandClass="System.Data.OleDb.OleDbCommand"
      parameterClass="System.Data.OleDb.OleDbParameter"
      parameterDbTypeClass="System.Data.OleDb.OleDbType"
      parameterDbTypeProperty="OleDbType"
      dataAdapterClass="System.Data.OleDb.OleDbDataAdapter"
      commandBuilderClass="System.Data.OleDb.OleDbCommandBuilder"
      usePositionalParameters="true"
      useParameterPrefixInSql="false"
      useParameterPrefixInParameter="false"
      parameterPrefix=""
    allowMARS="false"
    />
  <provider name="OleDb2.0"
    description="OleDb, provider V2.0.0.0 in framework .NET V2"
    enabled="false"
    assemblyName="System.Data, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"
    connectionClass="System.Data.OleDb.OleDbConnection"
    commandClass="System.Data.OleDb.OleDbCommand"
    parameterClass="System.Data.OleDb.OleDbParameter"
    parameterDbTypeClass="System.Data.OleDb.OleDbType"
    parameterDbTypeProperty="OleDbType"
    dataAdapterClass="System.Data.OleDb.OleDbDataAdapter"
    commandBuilderClass="System.Data.OleDb.OleDbCommandBuilder"
    usePositionalParameters="true"
    useParameterPrefixInSql="false"
    useParameterPrefixInParameter="false"
    parameterPrefix=""
    allowMARS="false"
    />
  <provider
    name="Odbc1.1"
    description="Odbc, provider V1.0.5000.0 in framework .NET V1.1"
    enabled="true"
    assemblyName="System.Data, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"
    connectionClass="System.Data.Odbc.OdbcConnection"
    commandClass="System.Data.Odbc.OdbcCommand"
    parameterClass="System.Data.Odbc.OdbcParameter"
    parameterDbTypeClass="System.Data.Odbc.OdbcType"
    parameterDbTypeProperty="OdbcType"
    dataAdapterClass="System.Data.Odbc.OdbcDataAdapter"
    commandBuilderClass="System.Data.Odbc.OdbcCommandBuilder"
    usePositionalParameters="true"
    useParameterPrefixInSql="false"
    useParameterPrefixInParameter="false"
    parameterPrefix="@"
    allowMARS="false"
    />
  <provider
    name="Odbc2.0"
    description="Odbc, provider V2.0.0.0 in framework .NET V2"
    enabled="false"
    assemblyName="System.Data, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"
    connectionClass="System.Data.Odbc.OdbcConnection"
    commandClass="System.Data.Odbc.OdbcCommand"
    parameterClass="System.Data.Odbc.OdbcParameter"
    parameterDbTypeClass="System.Data.Odbc.OdbcType"
    parameterDbTypeProperty="OdbcType"
    dataAdapterClass="System.Data.Odbc.OdbcDataAdapter"
    commandBuilderClass="System.Data.Odbc.OdbcCommandBuilder"
    usePositionalParameters="true"
    useParameterPrefixInSql="false"
    useParameterPrefixInParameter="false"
    parameterPrefix="@"
    allowMARS="false"
  />
  <provider
    name="oracle9.2"
    description="Oracle, Oracle provider V9.2.0.401"
    enabled="false"
    assemblyName="Oracle.DataAccess, Version=9.2.0.401, Culture=neutral,
PublicKeyToken=89b483f429c47342" connectionClass="
Oracle.DataAccess.Client.OracleConnection"
    commandClass="Oracle.DataAccess.Client.OracleCommand"
    parameterClass="Oracle.DataAccess.Client.OracleParameter"
    parameterDbTypeClass="Oracle.DataAccess.Client.OracleDbType"
    parameterDbTypeProperty="OracleDbType"
    dataAdapterClass="Oracle.DataAccess.Client.OracleDataAdapter"
    commandBuilderClass="Oracle.DataAccess.Client.OracleCommandBuilder"
    usePositionalParameters="false"
    useParameterPrefixInSql="true"
    useParameterPrefixInParameter="false"
    parameterPrefix=":"
    useDeriveParameters="false"
    allowMARS="false"
  />
  <provider
    name="oracle10.1"
    description="Oracle, oracle provider V10.1.0.301"
    enabled="false"
    assemblyName="Oracle.DataAccess, Version=10.1.0.301, Culture=neutral,
PublicKeyToken=89b483f429c47342" connectionClass="
Oracle.DataAccess.Client.OracleConnection"
    commandClass="Oracle.DataAccess.Client.OracleCommand"
    parameterClass="Oracle.DataAccess.Client.OracleParameter"
    parameterDbTypeClass="Oracle.DataAccess.Client.OracleDbType"
    parameterDbTypeProperty="OracleDbType"
    dataAdapterClass="Oracle.DataAccess.Client.OracleDataAdapter"
    commandBuilderClass="Oracle.DataAccess.Client.OracleCommandBuilder"
    usePositionalParameters="true"
    useParameterPrefixInSql="true"
    useParameterPrefixInParameter="true"
    parameterPrefix=":"
    useDeriveParameters="false"
    allowMARS="false"
  />
  <provider
    name="oracleClient1.0"
    description="Oracle, Microsoft provider V1.0.5000.0"
    enabled="false"
    assemblyName="System.Data.OracleClient, Version=1.0.5000.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089" connectionClass="
System.Data.OracleClient.OracleConnection"
    commandClass="System.Data.OracleClient.OracleCommand"
    parameterClass="System.Data.OracleClient.OracleParameter"
    parameterDbTypeClass="System.Data.OracleClient.OracleType"
    parameterDbTypeProperty="OracleType"
    dataAdapterClass="System.Data.OracleClient.OracleDataAdapter"
    commandBuilderClass="System.Data.OracleClient.OracleCommandBuilder"
    usePositionalParameters="false"
    useParameterPrefixInSql="true"
    useParameterPrefixInParameter="false"
    parameterPrefix=":"
    allowMARS="false"
  />
  <provider
    name="ByteFx"
    description="MySQL, ByteFx provider V0.7.6.15073"
    enabled="false"
    assemblyName="ByteFX.MySqlClient, Version=0.7.6.15073, Culture=neutral,
PublicKeyToken=f2fef6fed1732fc1" connectionClass="
ByteFX.Data.MySqlClient.MySqlConnection"
    commandClass="ByteFX.Data.MySqlClient.MySqlCommand"
    parameterClass="ByteFX.Data.MySqlClient.MySqlParameter"
    parameterDbTypeClass="ByteFX.Data.MySqlClient.MySqlDbType"
    parameterDbTypeProperty="MySqlDbType"
    dataAdapterClass="ByteFX.Data.MySqlClient.MySqlDataAdapter"
    commandBuilderClass="ByteFX.Data.MySqlClient.MySqlCommandBuilder"
    usePositionalParameters="false"
    useParameterPrefixInSql="true"
    useParameterPrefixInParameter="true"
    parameterPrefix="@"
    allowMARS="false"
  />
  <provider
    name="MySql"
    description="MySQL, MySQL provider 1.0.7.30072"
    enabled="true"
    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"
  />
  <provider name="SQLite3"
    description="SQLite, SQLite.NET provider V0.21.1869.3794"
    enabled="false"
    assemblyName="SQLite.NET, Version=0.21.1869.3794, Culture=neutral,
PublicKeyToken=c273bd375e695f9c"
    connectionClass="Finisar.SQLite.SQLiteConnection"
    commandClass="Finisar.SQLite.SQLiteCommand"
    parameterClass="Finisar.SQLite.SQLiteParameter"
    parameterDbTypeClass="System.Data.DbType, System.Data"
    parameterDbTypeProperty="DbType"
    dataAdapterClass="Finisar.SQLite.SQLiteDataAdapter"
    commandBuilderClass="Finisar.SQLite.SQLiteCommandBuilder"
    usePositionalParameters="false"
    useParameterPrefixInSql="true"
    useParameterPrefixInParameter="true"
    parameterPrefix="@"
    setDbParameterPrecision="false"
    setDbParameterScale="false"
    allowMARS="false"
  />
  <provider
    name="Firebird1.7"
    description="Firebird, Firebird SQL .NET provider V1.7.0.33200"
    enabled="false"
    assemblyName="FirebirdSql.Data.Firebird, Version=1.7.0.33200,
Culture=neutral, PublicKeyToken=fa843d180294369d" connectionClass="
FirebirdSql.Data.Firebird.FbConnection"
    commandClass="FirebirdSql.Data.Firebird.FbCommand"
    parameterClass="FirebirdSql.Data.Firebird.FbParameter"
    parameterDbTypeClass="FirebirdSql.Data.Firebird.FbDbType"
    parameterDbTypeProperty="FbDbType"
    dataAdapterClass="FirebirdSql.Data.Firebird.FbDataAdapter"
    commandBuilderClass="FirebirdSql.Data.Firebird.FbCommandBuilder"
    usePositionalParameters="false"
    useParameterPrefixInSql="true"
    useParameterPrefixInParameter="true"
    parameterPrefix="@"
    allowMARS="false"
  />
  <provider
    name="PostgreSql0.99.1.0"
    description="PostgreSql, Npgsql provider V0.99.1.0"
    enabled="false"
    assemblyName="Npgsql, Version=0.99.1.0, Culture=neutral,
PublicKeyToken=5d8b90d52f46fda7"
    connectionClass="Npgsql.NpgsqlConnection"
    commandClass="Npgsql.NpgsqlCommand"
    parameterClass="Npgsql.NpgsqlParameter"
    parameterDbTypeClass="NpgsqlTypes.NpgsqlDbType"
    parameterDbTypeProperty="NpgsqlDbType"
    dataAdapterClass="Npgsql.NpgsqlDataAdapter"
    commandBuilderClass="Npgsql.NpgsqlCommandBuilder"
    usePositionalParameters="false"
    useParameterPrefixInSql="true"
    useParameterPrefixInParameter="true"
    parameterPrefix=":"
    allowMARS="true"
  />
  <provider
    name="iDb2.10"
    description="IBM DB2 Provider, V 10.0"
    enabled="false"
    assemblyName="IBM.Data.DB2.iSeries, Version=10.0.0.0,Culture=neutral,
PublicKeyToken=9cdb2ebfb1f93a26, Custom=null" connectionClass="
IBM.Data.DB2.iSeries.iDB2Connection"
    commandClass="IBM.Data.DB2.iSeries.iDB2Command"
    parameterClass="IBM.Data.DB2.iSeries.iDB2Parameter"
    parameterDbTypeClass="IBM.Data.DB2.iSeries.iDB2DbType"
    parameterDbTypeProperty="iDB2DbType"
    dataAdapterClass="IBM.Data.DB2.iSeries.iDB2DataAdapter"
    commandBuilderClass="IBM.Data.DB2.iSeries.iDB2CommandBuilder"
    usePositionalParameters="true"
    useParameterPrefixInSql="false"
    useParameterPrefixInParameter="false"
    parameterPrefix=""
    allowMARS="false"
  />
  <provider
    name="Informix"
    description="Informix NET Provider, 2.81.0.0"
    enabled="false"
    assemblyName="IBM.Data.Informix, Version=2.81.0.0, Culture=neutral,
PublicKeyToken=7c307b91aa13d208"
    connectionClass="IBM.Data.Informix.IfxConnection"
    commandClass="IBM.Data.Informix.IfxCommand"
    parameterClass="IBM.Data.Informix.IfxParameter"
    parameterDbTypeClass="IBM.Data.Informix.IfxType"
    parameterDbTypeProperty="IfxType"
    dataAdapterClass="IBM.Data.Informix.IfxDataAdapter"
    commandBuilderClass="IBM.Data.Informix.IfxCommandBuilder"
    usePositionalParameters = "true"
    useParameterPrefixInSql = "false"
    useParameterPrefixInParameter = "false"
    useDeriveParameters="false"
    allowMARS="false"
    />
</providers>


=================================================================

Ok i think that it can work fine...but...this is the error:
----------------------------------------------------------------------------

IBatisNet.Common.Exceptions.ConfigurationException:
- The error occurred while loading Providers.
- initialize provider
- Check the MySql. ---> IBatisNet.Common.Exceptions.ConfigurationException:
Could not configure providers. Unable to load provider named "MySql" not
found, failed. Cause: Impossibile caricare il file o l'assembly 'MySql.Data,
Version=1.0.7.30072, Culture=neutral, PublicKeyToken=c5687fc88969c44d' o una
delle relative dipendenze. La definizione di manifesto dell'assembly
specificato non corrisponde al riferimento all'assembly. (Eccezione da
HRESULT: 0x80131040) ---> System.IO.FileLoadException: Impossibile caricare
il file o l'assembly 'MySql.Data, Version=1.0.7.30072, Culture=neutral,
PublicKeyToken=c5687fc88969c44d' o una delle relative dipendenze. La
definizione di manifesto dell'assembly specificato non corrisponde al
riferimento all'assembly. (Eccezione da HRESULT: 0x80131040)
Nome file: 'MySql.Data, Version=1.0.7.30072, Culture=neutral,
PublicKeyToken=c5687fc88969c44d'
   in System.Reflection.Assembly.nLoad(AssemblyName fileName, String
codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark&
stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
   in System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef,
Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean
forIntrospection)
   in System.Reflection.Assembly.InternalLoad(String assemblyString,
Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean
forIntrospection)
   in System.Reflection.Assembly.Load(String assemblyString)
   in IBatisNet.Common.DbProvider.Initialize()

=== Informazioni sullo stato di preassociazione ===
REG: Utente = SERLAB19\Serlab05
REG: DisplayName = MySql.Data, Version=1.0.7.30072, Culture=neutral,
PublicKeyToken=c5687fc88969c44d
 (Fully-specified)
REG: Appbase = file:///C:/Documents and Settings/Serlab05/Documenti/Visual
Studio 2005/Projects/HelloIbatis/HelloIbatis/bin/Debug/
REG: PrivatePath iniziale = NULL
Assembly chiamante: IBatisNet.Common, Version=1.6.1.0, Culture=neutral,
PublicKeyToken=ed781d9fc396c6ca.
===
REG: l'associazione ha origine nel contesto di caricamento di default.
REG: impossibile trovare un file di configurazione dell'applicazione.
REG: utilizzo del file di configurazione computer da
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
REG: riferimento post-criteri: MySql.Data, Version=1.0.7.30072,
Culture=neutral, PublicKeyToken=c5687fc88969c44d
REG: tentativo di download del nuovo URL file:///C:/Documents and
Settings/Serlab05/Documenti/Visual Studio
2005/Projects/HelloIbatis/HelloIbatis/bin/Debug/MySql.Data.DLL.
AVV: errata corrispondenza dal confronto con il nome dell'assembly: numero
di versione principale
ERR: impossibile completare l'installazione dell'assembly (hr = 0x80131040).
Sondaggio terminato.

   --- Fine dell'analisi dello stack dell'eccezione interna ---
   in IBatisNet.Common.DbProvider.Initialize()
   in IBatisNet.DataMapper.Configuration.DomSqlMapBuilder.GetProviders()
   in IBatisNet.DataMapper.Configuration.DomSqlMapBuilder.Initialize()
   in IBatisNet.DataMapper.Configuration.DomSqlMapBuilder.Build(XmlDocument
document, DataSource dataSource, Boolean useConfigFileWatcher, Boolean
isCallFromDao)
   --- Fine dell'analisi dello stack dell'eccezione interna ---
   in IBatisNet.DataMapper.Configuration.DomSqlMapBuilder.Build(XmlDocument
document, DataSource dataSource, Boolean useConfigFileWatcher, Boolean
isCallFromDao)
   in IBatisNet.DataMapper.Configuration.DomSqlMapBuilder.Build(XmlDocument
document, Boolean useConfigFileWatcher)
   in IBatisNet.DataMapper.Configuration.DomSqlMapBuilder.Configure(String
resource)
   in HelloIbatis.Form1.button1_Click(Object sender, EventArgs e) in
C:\Documents and Settings\Serlab05\Documenti\Visual Studio
2005\Projects\HelloIbatis\HelloIbatis\Form1.cs:riga 29

---------------------------------------------------------------------------------------------------

so...can anyone help me to work this simple mysql + ibatis application?
thanks all! :)
-- 
Giovanni D'Addabbo
UIN: 22490534

Reply via email to