学习MyBatis.Net 之路(一)

MyBatis.NET的前身为IBatis,是JAVA版MyBatis在.NET平台上的翻版,相对NHibernate、EntityFramework等重量级ORM框架而言,MyBatis.NET必须由开发人员手动写SQL,相对灵活性更大,更容易保证DB访问的性能,适用开发团队里有SQL熟手的场景。

下面是使用步骤:
1.到官网http://code.google.com/p/mybatisnet/ 下载相关dll和文档
学习MyBatis.Net 之路(一)_第1张图片

2.创建一个Web程序
创建一个MVC4的Web应用程序,并引用我们下载的IBatisNet程序包中的IBatisNet.DataMapper.dllIBatisNet.Common.dll,这里我只引用了这两个,log4net我没有引用也没有配置使用,全部程序结构如下
学习MyBatis.Net 之路(一)_第2张图片

3.添加Providers.config,并复制到项目根目录下
把下载的IBatisNet程序包打开,就能找到providers.config文件,里面定义了MyBatis.Net支持的各种数据库驱动,这里我以sqlServer为例,把其他不用的全部删除,只留下sqlServer的并且把版本号全部改为4.0,同时把enabled属性设置成true,如下:


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

  <clear/>
  
  <provider
     name="sqlServer4.0"
     enabled="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="false"
    />
providers>

把这个文件复制到Web项目根目录下

4.在项目目录下添加SqlMap.config,它的作用主要是指定db连接串,告诉系统providers.config在哪? 以及db与entity的映射文件在哪?如下:


<sqlMapConfig
  xmlns="http://ibatis.apache.org/dataMapper"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <settings>
    <setting useStatementNamespaces="false"/>
    
    <setting cacheModelsEnabled="true"/>
  settings>

  <providers resource="providers.config"/>
  

  
  <database>
    <provider name="sqlServer4.0"/>
    
    <dataSource name="DB" connectionString="Data Source=.;Initial Catalog=School;uid=sa;pwd=123456"/>
  database>

  
  <sqlMaps>
    <sqlMap resource="Maps/PersonAndCourse.xml"/>
    <sqlMap resource="Maps/PersonMap.xml"/>
  sqlMaps>
sqlMapConfig>

5.这里在数据库建两张表一个是个人信息还有一个是课程表,如下:
学习MyBatis.Net 之路(一)_第3张图片
第一张表是Person表,第二张表为Cour课程表,课程表名字是错的只敲一半,大家略过,第一张表的ID和第二张表的PerID关联,建两张表是为了后面的联合查询,这里先不多说

下面为创建表的SQL语句


create database School
go 
use School
go 
create table Person
(
ID int not null primary key Identity(1,1),
Name nvarchar(50),
Age int ,
Sex nvarchar(50)
)
go
create table Course
(
ID int not null primary key Identity(1,1),
PerID int not null ,
CourseName nvarchar(50)
)

go 
insert into Person values
('sasa',15,'女'),
('ff',20,'男')
go
insert into Course values
(1,'计算机'),
(1,'标准'),
(1,'物理')
go
--给两个表添加主外键关系
alter table Course add
Constraint FK_Curse_Per foreign key (PerId) references Person(ID)
go

select * from Person
select * from Course

6.接下来在Models文件夹里建两个实体类。一个为Person类,另一个为PersonAndCourse类. 后者只比前者多了一个课程名称的字段.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace PratiseMyBatis.Models
{
    public class Person
    {

        public int ID { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
        public string Sex { get; set; }
    }

  public class PersonAndCourse
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
        public string Sex { get; set; }
        public string CourseName { get; set; }
    }
}

博主也是才开始学这个东东的,如果大家有疑问的地方欢迎来交流。这个Demo里没有用到log4net日志。 所以我也没配置。主要讲的是MyBatis的功能。 如果大家希望学log4net配置这方面,我后面会讲到的.
好了,今天先到此为止了。 接下来看第二章

你可能感兴趣的:(工作中成长)