C#:使用MVC和Mybatis(IBatis.Net)搭建项目(一)

iBatis.Net是移植自java的一个持久性框架,在开发中简单易用,且可以灵活修改Sql。

此文只演示如何创建项目以及如何使用Ibatis.Net,并没有理论分析和讲解。

第一步、创建一个基本的MVC项目:


第二步、新建类库Batis用于存放与Ibatis.Net相关文件然后下载引用文件,在Batis添加Ibatis.Net引用,并在blogmybatis中添加Batis的引用:


后边我会提供代码下载和引用下载。

第三步:创建并配置SqlMap.config和providers.config

1、创建providers.config,可以简单的把这个文件理解为驱动,网上有大量的文件可以直接下载。



此处提供代码sqlserver2.0代码:

<?xml version="1.0"?>
<providers xmlns="http://ibatis.apache.org/providers"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <clear/>

  <!--SqlServer 2.0 SQl-->
  <provider
		name="sqlServer2.0"
		enabled="true"
		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"
    />
</providers>

这个则比较全了:

<?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 7.0/2000, 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="@"/>
  <provider
    name="sqlServer1.1"
    description="Microsoft SQL Server 7.0/2000, provider V1.0.5000.0 in framework .NET V1.1"
    enabled="false"
    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="@"/>
  <provider
          name="sqlServer2.0"
          enabled="false"
          description="Microsoft SQL Server 2005, provider V2.0.50215.0 in framework .NET V2.0"
          assemblyName="System.Data, Version=2.0.50215.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="@"
        />
  <provider
      name="sqlServer2008"
      enabled="true"
      default="true"
      description="Microsoft SQL Server, provider V4.0.0.0 in framework .NET V4.0"
      assemblyName="System.Data, Version=4.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="true"
    />
  <provider name="OleDb1.1"
    description="OleDb, provider V1.0.5000.0 in framework .NET V1.1"
    enabled="false"
    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=""/>
  <provider
    name="Odbc1.1"
    description="Odbc, provider V1.0.5000.0 in framework .NET V1.1"
    enabled="false"
    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="@"/>
  <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"/>
  <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"/>
  <provider
    name="oracleClient1.0"
    description="Oracle, Microsoft provider V1.0.5000.0"
    enabled="true"
    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=":"/>
  <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="@"/>
  <provider
    name="MySql"
    description="MySQL, MySQL provider V6.9.8.0"
    enabled="false"
    assemblyName="MySql.Data, Version=6.9.8.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="?"/>
  <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"/>
  <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="@"/>
  <provider
    name="PostgreSql0.7"
    description="PostgreSql, Npgsql provider V0.7.0.0"
    enabled="false"
    assemblyName="Npgsql, Version=0.7.0.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=":"/>
  <provider
    name="PostgreSql0.7.1"
    description="PostgreSql, Npgsql provider V0.7.1.0"
    enabled="false"
    assemblyName="Npgsql, Version=0.7.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=":"/>
  <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=""/>
  <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"
	/>
</providers>

以上是provider的配置,因为我使用的sqlserver2.0所以只使用了一个。

2、SqlMap.config的配置


引用provider文件并使用sqlserver2.0驱动,配置数据库链接字符串。

代码(将链接字符串更改为自己数据库字符串):

<?xml version="1.0" encoding="utf-8"?>
<sqlMapConfig xmlns="http://ibatis.apache.org/dataMapper"
			  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <!--BAsic Setting About Configuration-->
  <settings>
    <setting useStatementNamespaces="false"/>
    <setting cacheModelsEnabled="true"/>
  </settings>

  <providers resource="providers.config"/>
  <database>
    <provider name="sqlServer2.0" />
    <dataSource name="SqlServer" connectionString="data source=.;database=BlogDemo;user id=sa;password=123;" />
  </database>
</sqlMapConfig>




  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值