net搭建mybatis开发环境

mybatis其实就是ibatis的升级版本不仅能在java上使用,asp.net照样可以使用mybatis来开发程序。mybatis是一个比较小巧的ORM框架,类似hibernate。自己试了一下用法和java上的mybatis差不多。这次在.net的平台上我也来小试牛刀,弄个小程序出来看看,开发之前要去mybatis官网上下载2个包。

1.asp.net版本的mybatis下载地址是http://www.mybatis.org/dotnet.html,如下图所示

net搭建mybatis开发环境_第1张图片

 

如果有必要的话可以连开发文档一起下载。

 

2.把下面的dll文件全部拷贝出来,之后在项目里添加引用。日志的那个开发包可以不选

net搭建mybatis开发环境_第2张图片

 

3.为了开发方便我这里在项目里添加了一个数据库student,并且建了一个学生表m_student

net搭建mybatis开发环境_第3张图片

4.在项目里添加一个配置文件,这个文件存有所需要的连接配置,类似于hibernate里的方言。该文件可以从下载的包里拷贝出来使用名称为Providers.config

文件内容如下

[html] view plain copy print?

  1.  version="1.0"?>  
  2.  xmlns="http://ibatis.apache.org/providers"  
  1.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">  
  2.   
  3.       
  4.       
  5.           name="sqlServer1.0"  
  6.           description="Microsoft SQL Server, provider V1.0.3300.0 in framework .NET V1.0"  
  7.           enabled="true"  
  8.           assemblyName="System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" connectionClass="System.Data.SqlClient.SqlConnection"  
  9.           commandClass="System.Data.SqlClient.SqlCommand"  
  10.           parameterClass="System.Data.SqlClient.SqlParameter"  
  11.           parameterDbTypeClass="System.Data.SqlDbType"  
  12.           parameterDbTypeProperty="SqlDbType"  
  13.           dataAdapterClass="System.Data.SqlClient.SqlDataAdapter"  
  14.           commandBuilderClass="System.Data.SqlClient.SqlCommandBuilder"  
  15.           usePositionalParameters="false"  
  16.           useParameterPrefixInSql="true"  
  17.           useParameterPrefixInParameter="true"  
  18.           parameterPrefix="@"  
  19.           allowMARS="false"  
  20.   />  
  21.       
  22.           name="sqlServer1.1"  
  23.           description="Microsoft SQL Server, provider V1.0.5000.0 in framework .NET V1.1"  
  24.           enabled="true"  
  25.           default="true"  
  26.           assemblyName="System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"  
  27.           connectionClass="System.Data.SqlClient.SqlConnection"  
  28.           commandClass="System.Data.SqlClient.SqlCommand"  
  29.           parameterClass="System.Data.SqlClient.SqlParameter"  
  30.           parameterDbTypeClass="System.Data.SqlDbType"  
  31.           parameterDbTypeProperty="SqlDbType"  
  32.           dataAdapterClass="System.Data.SqlClient.SqlDataAdapter"  
  33.           commandBuilderClass="System.Data.SqlClient.SqlCommandBuilder"  
  34.           usePositionalParameters="false"  
  35.           useParameterPrefixInSql="true"  
  36.           useParameterPrefixInParameter="true"  
  37.           parameterPrefix="@"  
  38.           allowMARS="false"  
  39.   />  
  40.       
  41.       
  42.         name="sqlServer2.0"  
  43.         enabled="true"  
  44.         description="Microsoft SQL Server, provider V2.0.0.0 in framework .NET V2.0"  
  45.         assemblyName="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"  
  46.         connectionClass="System.Data.SqlClient.SqlConnection"  
  47.         commandClass="System.Data.SqlClient.SqlCommand"  
  48.         parameterClass="System.Data.SqlClient.SqlParameter"  
  49.         parameterDbTypeClass="System.Data.SqlDbType"  
  50.         parameterDbTypeProperty="SqlDbType"  
  51.         dataAdapterClass="System.Data.SqlClient.SqlDataAdapter"  
  52.         commandBuilderClass=" System.Data.SqlClient.SqlCommandBuilder"  
  53.         usePositionalParameters = "false"  
  54.         useParameterPrefixInSql = "true"  
  55.         useParameterPrefixInParameter = "true"  
  56.         parameterPrefix="@"  
  57.         allowMARS="false"  
  58.     />  
  59.       
  60.      name="OleDb1.1"  
  61.           description="OleDb, provider V1.0.5000.0 in framework .NET V1.1"  
  62.           enabled="true"  
  63.           assemblyName="System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"  
  64.         connectionClass="System.Data.OleDb.OleDbConnection"  
  65.           commandClass="System.Data.OleDb.OleDbCommand"  
  66.           parameterClass="System.Data.OleDb.OleDbParameter"  
  67.           parameterDbTypeClass="System.Data.OleDb.OleDbType"  
  68.           parameterDbTypeProperty="OleDbType"  
  69.           dataAdapterClass="System.Data.OleDb.OleDbDataAdapter"  
  70.           commandBuilderClass="System.Data.OleDb.OleDbCommandBuilder"  
  71.           usePositionalParameters="true"  
  72.           useParameterPrefixInSql="false"  
  73.           useParameterPrefixInParameter="false"  
  74.           parameterPrefix=""  
  75.         allowMARS="false"  
  76.     />  
  77.      name="OleDb2.0"  
  78.       description="OleDb, provider V2.0.0.0 in framework .NET V2"  
  79.       enabled="false"  
  80.       assemblyName="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"  
  81.       connectionClass="System.Data.OleDb.OleDbConnection"  
  82.       commandClass="System.Data.OleDb.OleDbCommand"  
  83.       parameterClass="System.Data.OleDb.OleDbParameter"  
  84.       parameterDbTypeClass="System.Data.OleDb.OleDbType"  
  85.       parameterDbTypeProperty="OleDbType"  
  86.       dataAdapterClass="System.Data.OleDb.OleDbDataAdapter"  
  87.       commandBuilderClass="System.Data.OleDb.OleDbCommandBuilder"  
  88.       usePositionalParameters="true"  
  89.       useParameterPrefixInSql="false"  
  90.       useParameterPrefixInParameter="false"  
  91.       parameterPrefix=""  
  92.       allowMARS="false"  
  93.     />  
  94.       
  95.       name="Odbc1.1"  
  96.       description="Odbc, provider V1.0.5000.0 in framework .NET V1.1"  
  97.       enabled="false"  
  98.       assemblyName="System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"  
  99.       connectionClass="System.Data.Odbc.OdbcConnection"  
  100.       commandClass="System.Data.Odbc.OdbcCommand"  
  101.       parameterClass="System.Data.Odbc.OdbcParameter"  
  102.       parameterDbTypeClass="System.Data.Odbc.OdbcType"  
  103.       parameterDbTypeProperty="OdbcType"  
  104.       dataAdapterClass="System.Data.Odbc.OdbcDataAdapter"  
  105.       commandBuilderClass="System.Data.Odbc.OdbcCommandBuilder"  
  106.       usePositionalParameters="true"  
  107.       useParameterPrefixInSql="false"  
  108.       useParameterPrefixInParameter="false"  
  109.       parameterPrefix="@"  
  110.       allowMARS="false"  
  111.     />  
  112.       
  113.       
  114.       name="Odbc2.0"  
  115.       description="Odbc, provider V2.0.0.0 in framework .NET V2"  
  116.       enabled="false"  
  117.       assemblyName="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"  
  118.       connectionClass="System.Data.Odbc.OdbcConnection"  
  119.       commandClass="System.Data.Odbc.OdbcCommand"  
  120.       parameterClass="System.Data.Odbc.OdbcParameter"  
  121.       parameterDbTypeClass="System.Data.Odbc.OdbcType"  
  122.       parameterDbTypeProperty="OdbcType"  
  123.       dataAdapterClass="System.Data.Odbc.OdbcDataAdapter"  
  124.       commandBuilderClass="System.Data.Odbc.OdbcCommandBuilder"  
  125.       usePositionalParameters="true"  
  126.       useParameterPrefixInSql="false"  
  127.       useParameterPrefixInParameter="false"  
  128.       parameterPrefix="@"  
  129.       allowMARS="false"  
  130.   />  
  131.       
  132.       
  133.       name="oracle9.2"  
  134.       description="Oracle, Oracle provider V9.2.0.401"  
  135.       enabled="false"  
  136.       assemblyName="Oracle.DataAccess, Version=9.2.0.401, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionClass="Oracle.DataAccess.Client.OracleConnection"  
  137.       commandClass="Oracle.DataAccess.Client.OracleCommand"  
  138.       parameterClass="Oracle.DataAccess.Client.OracleParameter"  
  139.       parameterDbTypeClass="Oracle.DataAccess.Client.OracleDbType"  
  140.       parameterDbTypeProperty="OracleDbType"  
  141.       dataAdapterClass="Oracle.DataAccess.Client.OracleDataAdapter"  
  142.       commandBuilderClass="Oracle.DataAccess.Client.OracleCommandBuilder"  
  143.       usePositionalParameters="false"  
  144.       useParameterPrefixInSql="true"  
  145.       useParameterPrefixInParameter="false"  
  146.       parameterPrefix=":"  
  147.       useDeriveParameters="false"  
  148.       allowMARS="false"  
  149.   />  
  150.       
  151.       name="oracle10.1"  
  152.       description="Oracle, oracle provider V10.1.0.301"  
  153.       enabled="false"  
  154.       assemblyName="Oracle.DataAccess, Version=10.1.0.301, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionClass="Oracle.DataAccess.Client.OracleConnection"  
  155.       commandClass="Oracle.DataAccess.Client.OracleCommand"  
  156.       parameterClass="Oracle.DataAccess.Client.OracleParameter"  
  157.       parameterDbTypeClass="Oracle.DataAccess.Client.OracleDbType"  
  158.       parameterDbTypeProperty="OracleDbType"  
  159.       dataAdapterClass="Oracle.DataAccess.Client.OracleDataAdapter"  
  160.       commandBuilderClass="Oracle.DataAccess.Client.OracleCommandBuilder"  
  161.       usePositionalParameters="true"  
  162.       useParameterPrefixInSql="true"  
  163.       useParameterPrefixInParameter="true"  
  164.       parameterPrefix=":"  
  165.       useDeriveParameters="false"  
  166.       allowMARS="false"  
  167.   />  
  168.       
  169.       
  170.       name="oracleClient1.0"  
  171.       description="Oracle, Microsoft provider V1.0.5000.0"  
  172.       enabled="false"  
  173.       assemblyName="System.Data.OracleClient, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" connectionClass="System.Data.OracleClient.OracleConnection"  
  174.       commandClass="System.Data.OracleClient.OracleCommand"  
  175.       parameterClass="System.Data.OracleClient.OracleParameter"  
  176.       parameterDbTypeClass="System.Data.OracleClient.OracleType"  
  177.       parameterDbTypeProperty="OracleType"  
  178.       dataAdapterClass="System.Data.OracleClient.OracleDataAdapter"  
  179.       commandBuilderClass="System.Data.OracleClient.OracleCommandBuilder"  
  180.       usePositionalParameters="false"  
  181.       useParameterPrefixInSql="true"  
  182.       useParameterPrefixInParameter="false"  
  183.       parameterPrefix=":"  
  184.       allowMARS="false"  
  185.   />  
  186.       
  187.       
  188.       name="ByteFx"  
  189.       description="MySQL, ByteFx provider V0.7.6.15073"  
  190.       enabled="false"  
  191.       assemblyName="ByteFX.MySqlClient, Version=0.7.6.15073, Culture=neutral, PublicKeyToken=f2fef6fed1732fc1" connectionClass="ByteFX.Data.MySqlClient.MySqlConnection"  
  192.       commandClass="ByteFX.Data.MySqlClient.MySqlCommand"  
  193.       parameterClass="ByteFX.Data.MySqlClient.MySqlParameter"  
  194.       parameterDbTypeClass="ByteFX.Data.MySqlClient.MySqlDbType"  
  195.       parameterDbTypeProperty="MySqlDbType"  
  196.       dataAdapterClass="ByteFX.Data.MySqlClient.MySqlDataAdapter"  
  197.       commandBuilderClass="ByteFX.Data.MySqlClient.MySqlCommandBuilder"  
  198.       usePositionalParameters="false"  
  199.       useParameterPrefixInSql="true"  
  200.       useParameterPrefixInParameter="true"  
  201.       parameterPrefix="@"  
  202.       allowMARS="false"  
  203.   />  
  204.       
  205.       
  206.       name="MySql"  
  207.       description="MySQL, MySQL provider 1.0.7.30072"  
  208.       enabled="false"  
  209.       assemblyName="MySql.Data, Version=1.0.7.30072, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionClass="MySql.Data.MySqlClient.MySqlConnection"  
  210.       commandClass="MySql.Data.MySqlClient.MySqlCommand"  
  211.       parameterClass="MySql.Data.MySqlClient.MySqlParameter"  
  212.       parameterDbTypeClass="MySql.Data.MySqlClient.MySqlDbType"  
  213.       parameterDbTypeProperty="MySqlDbType"  
  214.       dataAdapterClass="MySql.Data.MySqlClient.MySqlDataAdapter"  
  215.       commandBuilderClass="MySql.Data.MySqlClient.MySqlCommandBuilder"  
  216.       usePositionalParameters="false"  
  217.       useParameterPrefixInSql="true"  
  218.       useParameterPrefixInParameter="true"  
  219.       parameterPrefix="?"  
  220.       allowMARS="false"  
  221.   />  
  222.       
  223.      name="SQLite3"  
  224.       description="SQLite, SQLite.NET provider V0.21.1869.3794"  
  225.       enabled="false"  
  226.       assemblyName="SQLite.NET, Version=0.21.1869.3794, Culture=neutral, PublicKeyToken=c273bd375e695f9c"  
  227.       connectionClass="Finisar.SQLite.SQLiteConnection"  
  228.       commandClass="Finisar.SQLite.SQLiteCommand"  
  229.       parameterClass="Finisar.SQLite.SQLiteParameter"  
  230.       parameterDbTypeClass="System.Data.DbType, System.Data"  
  231.       parameterDbTypeProperty="DbType"  
  232.       dataAdapterClass="Finisar.SQLite.SQLiteDataAdapter"  
  233.       commandBuilderClass="Finisar.SQLite.SQLiteCommandBuilder"  
  234.       usePositionalParameters="false"  
  235.       useParameterPrefixInSql="true"  
  236.       useParameterPrefixInParameter="true"  
  237.       parameterPrefix="@"  
  238.       setDbParameterPrecision="false"  
  239.       setDbParameterScale="false"  
  240.       allowMARS="false"  
  241.   />  
  242.       
  243.       
  244.       name="Firebird1.7"  
  245.       description="Firebird, Firebird SQL .NET provider V1.7.0.33200"  
  246.       enabled="false"  
  247.       assemblyName="FirebirdSql.Data.Firebird, Version=1.7.0.33200, Culture=neutral, PublicKeyToken=fa843d180294369d" connectionClass="FirebirdSql.Data.Firebird.FbConnection"  
  248.       commandClass="FirebirdSql.Data.Firebird.FbCommand"  
  249.       parameterClass="FirebirdSql.Data.Firebird.FbParameter"  
  250.       parameterDbTypeClass="FirebirdSql.Data.Firebird.FbDbType"  
  251.       parameterDbTypeProperty="FbDbType"  
  252.       dataAdapterClass="FirebirdSql.Data.Firebird.FbDataAdapter"  
  253.       commandBuilderClass="FirebirdSql.Data.Firebird.FbCommandBuilder"  
  254.       usePositionalParameters="false"  
  255.       useParameterPrefixInSql="true"  
  256.       useParameterPrefixInParameter="true"  
  257.       parameterPrefix="@"  
  258.       allowMARS="false"  
  259.   />  
  260.       
  261.       
  262.       name="PostgreSql0.99.1.0"  
  263.       description="PostgreSql, Npgsql provider V0.99.1.0"  
  264.       enabled="false"  
  265.       assemblyName="Npgsql, Version=0.99.1.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7"  
  266.       connectionClass="Npgsql.NpgsqlConnection"  
  267.       commandClass="Npgsql.NpgsqlCommand"  
  268.       parameterClass="Npgsql.NpgsqlParameter"  
  269.       parameterDbTypeClass="NpgsqlTypes.NpgsqlDbType"  
  270.       parameterDbTypeProperty="NpgsqlDbType"  
  271.       dataAdapterClass="Npgsql.NpgsqlDataAdapter"  
  272.       commandBuilderClass="Npgsql.NpgsqlCommandBuilder"  
  273.       usePositionalParameters="false"  
  274.       useParameterPrefixInSql="true"  
  275.       useParameterPrefixInParameter="true"  
  276.       parameterPrefix=":"  
  277.       allowMARS="true"  
  278.   />  
  279.       
  280.       
  281.       name="iDb2.10"  
  282.       description="IBM DB2 Provider, V 10.0"  
  283.       enabled="false"  
  284.       assemblyName="IBM.Data.DB2.iSeries, Version=10.0.0.0,Culture=neutral, PublicKeyToken=9cdb2ebfb1f93a26, Custom=null" connectionClass="IBM.Data.DB2.iSeries.iDB2Connection"  
  285.       commandClass="IBM.Data.DB2.iSeries.iDB2Command"  
  286.       parameterClass="IBM.Data.DB2.iSeries.iDB2Parameter"  
  287.       parameterDbTypeClass="IBM.Data.DB2.iSeries.iDB2DbType"  
  288.       parameterDbTypeProperty="iDB2DbType"  
  289.       dataAdapterClass="IBM.Data.DB2.iSeries.iDB2DataAdapter"  
  290.       commandBuilderClass="IBM.Data.DB2.iSeries.iDB2CommandBuilder"  
  291.       usePositionalParameters="true"  
  292.       useParameterPrefixInSql="false"  
  293.       useParameterPrefixInParameter="false"  
  294.       parameterPrefix=""  
  295.       allowMARS="false"  
  296.   />  
  297.       
  298.       name="Informix"  
  299.       description="Informix NET Provider, 2.81.0.0"  
  300.       enabled="false"  
  301.       assemblyName="IBM.Data.Informix, Version=2.81.0.0, Culture=neutral, PublicKeyToken=7c307b91aa13d208"  
  302.       connectionClass="IBM.Data.Informix.IfxConnection"  
  303.       commandClass="IBM.Data.Informix.IfxCommand"  
  304.       parameterClass="IBM.Data.Informix.IfxParameter"  
  305.       parameterDbTypeClass="IBM.Data.Informix.IfxType"  
  306.       parameterDbTypeProperty="IfxType"  
  307.       dataAdapterClass="IBM.Data.Informix.IfxDataAdapter"  
  308.       commandBuilderClass="IBM.Data.Informix.IfxCommandBuilder"  
  309.       usePositionalParameters = "true"  
  310.       useParameterPrefixInSql = "false"  
  311.       useParameterPrefixInParameter = "false"  
  312.       useDeriveParameters="false"  
  313.       allowMARS="false"  
  314.     />  
  315.     
  316.    name="sqlServer2005"  
  317.    enabled="true"  
  318.    description="Microsoft SQL Server, provider V2.0.0.0 in framework .NET V2.0"  
  319.    assemblyName="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"  
  320.    connectionClass="System.Data.SqlClient.SqlConnection"  
  321.    commandClass="System.Data.SqlClient.SqlCommand"  
  322.    parameterClass="System.Data.SqlClient.SqlParameter"  
  323.    parameterDbTypeClass="System.Data.SqlDbType"  
  324.    parameterDbTypeProperty="SqlDbType"  
  325.    dataAdapterClass="System.Data.SqlClient.SqlDataAdapter"  
  326.    commandBuilderClass=" System.Data.SqlClient.SqlCommandBuilder"  
  327.    usePositionalParameters = "false"  
  328.    useParameterPrefixInSql = "true"  
  329.    useParameterPrefixInParameter = "true"  
  330.    parameterPrefix="@"  
  331.    allowMARS="true"  
  332.       />  
  1.   

 

最后这个是我自己加上的

 

5.编写持久层代码Student.cs

[csharp] view plain copy print?

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Web;  
  1.   
  1. namespace useribatis  
  1. {  
  2.     public class Student  
  3.     {  
  4.         public int id { setget; }  
  5.         public String username{ setget; }  
  6.         public String password{ setget; }  
  7.     }  
  8. }  

 

6.编写mybatis的映射文件,需要注意的是名称空间要正确并且完整。我这里只写了一个比较简单的

[html] view plain copy print?

  1.  version="1.0" encoding="utf-8" ?>  
  2.  namespace="Student" xmlns="http://ibatis.apache.org/mapping"  
  1. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >  
  1.     
  2.      id="create" parameterClass="useribatis.Student">  
  3.       insert into m_student(username,password)  
  4.       values (#username#,#password#)  
  5.       
  6.     
  1.   

 

这里建议大家把名称空间写规范些,parameterClass的地方可以使类全名,配置文件的参数我就不在强调了。

 

7.编写SqlMap.config配置文件

[html] view plain copy print?

  1.  version="1.0" encoding="utf-8"?>  
  2.  xmlns="http://ibatis.apache.org/dataMapper"    
  1.               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">  
  2.     
  3.       
  4.      cacheModelsEnabled="true"/>  
  5.       
  6.      useStatementNamespaces="true" />  
  7.   
  8.     
  9.     
  10.    resource="providers.config"/>  
  11.       
  12.          name="sqlServer2005" />  
  13.       
  14.          name="SqlServer" connectionString="data source=.\SQLEXPRESS;AttachDbFilename=G:\source\useribatis\useribatis\App_Data\Student.mdf;Integrated Security=True;User Instance=True;" />  
  15.       
  16.   
  17.       
  18.       
  19.          resource="Maps/StudentInfo.xml"/>  
  20.       
  21.   
  1.   

 

8.编写一个类用来插入数据

[html] view plain copy print?

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Web;  
  5. using IBatisNet.Common;  
  6.   
  7. using IBatisNet.DataMapper;  
  8.   
  9. using IBatisNet.DataMapper.Configuration;  
  10.   
  11. using IBatisNet.Common.Utilities;  
  12.   
  13. using IBatisNet.DataAccess;  
  14.   
  15. using IBatisNet.DataAccess.Configuration;  
  16.   
  17. using IBatisNet.DataAccess.Interfaces;  
  18.   
  19.  using IBatisNet.Common.Logging;  
  20. namespace useribatis  
  21. {  
  22.     public class Insert  
  23.     {  
  24.         public void doCreate() {  
  25.             DomSqlMapBuilder builder = new DomSqlMapBuilder();  
  26.             ISqlMapper Map = builder.Configure("SqlMap.config");  
  27.            // SqlMapper sqlMapper = builder.Configure() as SqlMapper;  
  28.             Student stu=new Student();  
  29.             stu.username="李敏镐3";  
  30.             stu.password="1234567";  
  31.              
  32.             Map.Insert("Student.create", stu);  
  33.         }  
  34.          
  35.     }  
  36. }  
  37. 9.创建单元测试,查看程序是否正确如下所示

  38. net搭建mybatis开发环境_第4张图片

  39. 之后选择要测试的方法

  40. net搭建mybatis开发环境_第5张图片

  41.  

    点击确定,visual studio就会为我们创建单元测试了。之后为单元测试生成以下解决方案,之后就打开测试窗口

    net搭建mybatis开发环境_第6张图片

  42.  

    下面就可以开始单元测试了,如下所示点击之后运行选定内容
  43.  

    net搭建mybatis开发环境_第7张图片

     

    执行完成后来看下数据库是否生成了数据

    net搭建mybatis开发环境_第8张图片

     

    如果程序出错了可以像下面这样做查看异常信息
  44. net搭建mybatis开发环境_第9张图片

     

    到这里程序就写好了,下面我贴一个映射文件出来大家以后开发可以模仿着下面的这个写,注意下名称空间的区别就好

    [html] view plain copy print?

  45.  version="1.0" encoding="UTF-8"?>  
  46. PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"  
  47. "http://www.ibatis.com/dtd/sql-map-2.dtd">  
  48.  namespace="Course">  
  49.   
  50.  id="resultMap" class="com.junze.huiju.module.course.info.CourseInfo">  
  51.      property="REMARK1" column="REMARK1"/>  
  52.      property="FCOURSENATURE" column="FCOURSENATURE"/>  
  53.      property="REMARK2" column="REMARK2"/>  
  54.      property="FCOURSENUM" column="FCOURSENUM"/>  
  55.      property="FID" column="FID"/>  
  56.      property="FNAME" column="FNAME"/>  
  57.   
  58.   
  59.  id="sqlwhere">     
  60.       
  61.          prepend="and" property="REMARK1">  
  62.             A.REMARK1 like #REMARK1#  
  63.           
  64.          prepend="and" property="FCOURSENATURE" compareValue="0">  
  65.             A.FCOURSENATURE = #FCOURSENATURE#  
  66.           
  67.          prepend="and" property="REMARK2">  
  68.             A.REMARK2 like #REMARK2#  
  69.           
  70.          prepend="and" property="FCOURSENUM" compareValue="0">  
  71.             A.FCOURSENUM = #FCOURSENUM#  
  72.           
  73.          prepend="and" property="FID" compareValue="0">  
  74.             A.FID = #FID#  
  75.           
  76.          prepend="and" property="FNAME">  
  77.             A.FNAME like #FNAME#  
  78.           
  79.          prepend="and" property="containIds">  
  80.             A.FID NOT IN ($containIds$)  
  81.           
  82.       
  83.   
  84.   
  85.    
  86.  id="getInfoByID" resultMap="resultMap" parameterClass="int">  
  87.  select A.*  
  88.      from M_COURSE A where A.FID = #id#  
  89.   
  90.   
  91.   
  92.    
  93.  id="read" resultMap="resultMap" parameterClass="com.junze.huiju.module.course.info.CourseInfo">  
  94.  select A.*  
  95.      from M_COURSE A where 1=1   
  96.       refid="sqlwhere"/>  
  97.   
  98.   
  99.    
  100.  id="getList" resultMap="resultMap" parameterClass="com.junze.huiju.module.course.info.CourseInfo">  
  101.  select * from (select rownum numrow ,A.* from (select A.*   
  102.      from M_COURSE A where 1=1   
  103.       refid="sqlwhere"/>  
  104.          Order By A.FID   
  105.  ) A) where numrow > $startRow$ and numrow < $endRow$  
  106.   
  107.   
  108.    
  109.  id="getAllList" resultMap="resultMap" parameterClass="com.junze.huiju.module.course.info.CourseInfo">  
  110.  select A.*  
  111.      from M_COURSE A where 1=1   
  112.       refid="sqlwhere"/>  
  113.      Order By A.FID Desc  
  114.   
  115.   
  116.    
  117.  id="getBusinessList" resultMap="resultMap" parameterClass="com.junze.huiju.module.course.info.CourseInfo">  
  118.  select A.*  
  119.      from M_COURSE A where 1=1   
  120.       refid="sqlwhere"/>  
  121.      Order By A.FID Desc  
  122.   
  123.   
  124.    
  125.  id="getCount" resultClass="java.lang.Integer" parameterClass="com.junze.huiju.module.course.info.CourseInfo">  
  126.  select count(*) from M_COURSE A where 1=1   
  127.       refid="sqlwhere"/>  
  128.   
  129.   
  130.    
  131.  id="create" parameterClass="com.junze.huiju.module.course.info.CourseInfo">  
  132.  resultClass="int" keyProperty="FID">  
  133.             select SEQ_M_COURSE.nextVal as value from dual  
  134.       
  135.  insert into M_COURSE(REMARK1,FCOURSENATURE,REMARK2,FCOURSENUM,FID,FNAME)   
  136.  values (#REMARK1:VARCHAR2#,#FCOURSENATURE#,#REMARK2:VARCHAR2#,#FCOURSENUM#,#FID#,#FNAME:VARCHAR2#)  
  137.   
  138.   
  139.    
  140.  id="update" parameterClass="com.junze.huiju.module.course.info.CourseInfo">  
  141.  update M_COURSE set REMARK1= #REMARK1:VARCHAR2#,  
  142.         FCOURSENATURE = #FCOURSENATURE#,  
  143.         REMARK2 = #REMARK2:VARCHAR2#,  
  144.         FCOURSENUM = #FCOURSENUM#,  
  145.         FID = #FID#,  
  146.         FNAME = #FNAME:VARCHAR2#  
  147.  where FID = #FID#  
  148.   
  149.   
  150.    
  151.  id="deleteByID" parameterClass="int">  
  152.  delete from M_COURSE where FID = #id#  
  153.   
  154.   
  155.    
  156.  id="deleteByCondition" parameterClass="com.junze.huiju.module.course.info.CourseInfo">  
  157.  delete from M_COURSE A where 1=1   
  158.       refid="sqlwhere"/>  
  159.   
  160.   
  161.   
  162.  

    想这样的配置文件应该算是比较完整的了,大家练习一下吧。代码在我的资源里大家自己去下载。如果有写的不对的大家可以拍砖。

     

你可能感兴趣的:(C#)