MyBatis.Net 配置

假设我们现在有这样的需求,要对学生信息进行管理

学生表有要以下要求


字段名称


数据类型


说明


stuNo


字符


学号,该列必填,为主键递增


stuName


字符


学生姓名,该列必填,要考虑姓氏可能是两个字的,如欧阳俊雄

     

stuSex


字符


学生性别,该列必填,且只能是“男”或“女”。因为男生较多,默认为“男”


stuAge


数字


学生年龄,该列必填,必须在15~50岁之间


stuSeat


数字


学生的座位号


stuAddress


字符


学生地址,该列可不填,如没有填写,默认为“地址不详”



1. – 创建表[student_tb]

create table student_tb (
      StuNo int identity(1,1) primary key,
      StuName varchar(10) not null,
      StuSex varchar(5)  check(StuSex in(‘男‘,‘女‘)) default(‘男‘),
      StuAge int check (StuAge between 15 and 50) not null,
      StuSeat int not null,
      StuAddress varchar (20) default(‘地址不详‘),
    );


2. –创建实体

public class StudentInfo
    {
        public int StuNo { get; set; }

        public string StuName { get; set; }

        public string StuSex { get; set; }

        public int StuAge { get; set; }

        public int StuSeat { get; set; }

        public string StuAddress { get; set; }
    }


3. – 创建SqlMapper Provider

创建SqlMapper的方式有以下几种

a. 第一种方式

ISqlMapper _sqlMapper=IBatisNet.DataMapper.Mapper.Instance()

:此种方式要求SqlMap.config文件位于应用程序根目录下,且文件名是且仅是”SqlMap.config”

b. 第二种方式

ISqlMapper _sqlMapper=new DomSqlMapBuilder().Configure()

注:同上

c. 第三种方式——指定SqlMap.config的路径(使用EmbededResource查找config资源时,要求SqlMap.config生成操作属性为嵌入的资源)

XmlDocument sqlMapConfig = Resources.GetEmbeddedResourceAsXmlDocument("Config.SqlMap.config, Persistence");

ISqlMapper _sqlMapper = new DomSqlMapBuilder().Configure(sqlMapConfig); //---第三种

MyBatisProvider代码如下:

public class MyBatisProvider
    {
        private static ISqlMapper _sqlMapper;
        private static object sysncObj = new object();
        public static ISqlMapper GetInstanse()
        {
            if (_sqlMapper == null)
            {
                lock (sysncObj)
                {
                    if (_sqlMapper == null)
                    {
                        //_sqlMapper = IBatisNet.DataMapper.Mapper.Instance();//---第一种

                        //_sqlMapper = new DomSqlMapBuilder().Configure(); //---第二种

                        XmlDocument sqlMapConfig = Resources.GetEmbeddedResourceAsXmlDocument("MyBatis.SqlMap.config, MyBatis");

                        _sqlMapper = new DomSqlMapBuilder().Configure(sqlMapConfig);  //---第三种

                    }
                }
            }
            return _sqlMapper;
        }
    }


4. –在项目中

添加配置文件

a. provider.config

在网上一搜一大把。

<?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="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>

b. SqlMap.config

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

  <providers embedded="MyBatis.providers.config,MyBatis"/>

  <database>
    <provider name="sqlServer4.0"/>
    <dataSource name="dataSourceName" connectionString="连接语句"/>
  </database>
  <sqlMaps>
    <sqlMap embedded="MyBatis.SqlMaps.StudentInfo.xml,MyBatis"/>
  </sqlMaps>
</sqlMapConfig>

按照代码中的创建实例方式选择不同的位置及名称

注: <setting useStatementNamespaces="true"/>  true表示statementName要使用Namespace ,即实体映射XML中的namespace属性

sqlMaps节点下为实体映射XML文件路径

embedded表示文件的属性生成操作为嵌入的资源



5. –创建实体映射文件

<?xml version="1.0" encoding="utf-8" ?>

<sqlMap namespace="StudentInfo" xmlns="http://ibatis.apache.org/mapping"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <alias>
    <typeAlias alias="StudentInfo" type="Model.StudentInfo,Model" />
  </alias>
  <resultMaps>
    <resultMap id="StudentResult" class="StudentInfo">
      <result property="StuNo" column="stuNo"/>
      <result property="StuName" column="stuName"/>
      <result property="StuSex" column="stuSex"/>
      <result property="StuAge" column="stuAge"/>
      <result property="StuSeat" column="stuSeat"/>
      <result property="StuAddress" column="stuAddress"/>
    </resultMap>
  </resultMaps>
  <statements>
    <insert id="Insert" parameterClass="StudentInfo" resultClass="int">
      INSERT INTO [student_tb]([stuName],[stuSex],[stuAge],[stuSeat],[stuAddress])
      VALUES(#StuName#,#StuSex#,#StuAge#,#StuSeat#,#StuAddress#)
      <selectKey property="StuNo" resultClass="int" type="post" >
        SELECT @@identity AS StuNo
      </selectKey>
    </insert>
    <delete id="Delete" parameterClass="Int32">
      UPDATE [student_tb]
      SET [stuName] = #StuName#,[stuSex] = #StuSex#,[stuAge] = #StuAge#,[stuSeat] = #StuSeat#,[stuAddress] = #StuAddress#
      WHERE [stuNo]=#StuNo#
    </delete>
    <update id="Update" parameterClass="StudentInfo">
      UPDATE [student_tb]
      SET [stuName] = #StuName#,[stuSex] = #StuSex#,[stuAge] = #StuAge#,[stuSeat] = #StuSeat#,[stuAddress] = #StuAddress#
      WHERE [stuNo]=#StuNo#
    </update>
    <select id="Get" parameterClass="Int32" resultMap="StudentResult">
      select * from [student_tb] where stuNo=#StuNo#
    </select>
    <select id="List" parameterClass="map" resultMap="StudentResult">
      select * from [student_tb]
    </select>
  </statements>
</sqlMap>

如上,为一个简单的XML实体映射文件。

通过resultMaps节点,将实体属性与数据库字段对应起来。statements中再写增删改查等相关的操作节点及SQL



6. –DAL操作数据库

public class StudentDAL
    {
        public int Insert(StudentInfo info)
        {
            string stmtName = "StudentInfo.Insert";

            return Convert.ToInt32(MyBatisProvider.GetInstanse().Insert(stmtName, info) ?? "0");
        }

        public int Update(StudentInfo info)
        {
            string stmtName = "StudentInfo.Update";

            return MyBatisProvider.GetInstanse().Update(stmtName, info);
        }

        public StudentInfo Get(int id)
        {
            string stmtName = "StudentInfo.Get";

            return MyBatisProvider.GetInstanse().QueryForObject<StudentInfo>(stmtName, id);
        }

        public IList<StudentInfo> List()
        {
            string stmtName = "StudentInfo.List";

            return MyBatisProvider.GetInstanse().QueryForList<StudentInfo>(stmtName, null);
        }
    }

示例代码:

时间: 2024-10-13 14:49:19

MyBatis.Net 配置的相关文章

笔记:MyBatis XML配置详解

MyBatis 的配置文件包含了影响 MyBatis 行为甚深的设置(settings)和属性(properties)信息.文档的顶层结构如下: configuration 配置 properties 属性 settings 设置 typeAliases 类型命名 typeHandlers 类型处理器 objectFactory 对象工厂 plugins 插件 environments 环境 environment 环境变量 transactionManager 事务管理器 dataSource

Mybatis基本配置(一)

1. Mybatis介绍 MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录. 2. 准备jar包 1)mybatis-3.3.0.jar, Mybatis包. 2)sqljdbc4.jar ,因为我们要用到SQLS

hao947 : Mybatis resultMap配置插入和主键自增返回 : 好947

映射配置文件  好947  <!-- type:映射实体类的数据类型 id:resultMap的唯一标识 -->  <resultMap type="person" id="BaseResultMap">   <!-- column:库表的字段名 property:实体类里的属性名 -->   <id column="person_id" property="personId" /&g

MyBatis MapperScannerConfigurer配置――MyBatis学习笔记之八

MyBatis MapperScannerConfigurer配置——MyBatis学习笔记之八 2012-09-02 20:01:42 标签:Spring MyBatis MapperScannerConfigurer bean默认命名 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://legend2011.blog.51cto.com/3018495/980150 在上一篇博文的示例中,我们在beans.xml中配置了stu

spring和mybatis整合配置

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p&

MyBatis 实践 --配置

MyBatis 实践 Configuration mybatis-configuration.xml是MyBatis的全局配置文件(文件名任意),其配置内容和顺序如下: properties : 属性(文件)加载/配置 settings : 全局配置参数 typeAliases : 定义类型别名 typeHandlers : 类型处理器 objectFactory : 对象工厂 plugins : 插件 environments : 环境集合属性对象 environment transactio

springmvc+spring+mybatis+mysql配置过程

环境:eclipse 项目目录: jar包: web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http:/

Mybatis中配置Mapper的方法

Mybatis中配置Mapper的方法 在这篇文章中我主要想讲一下Mybatis配置文件中mappers元素的配置.关于基础部分的内容可以参考http://blog.csdn.net/elim168/article/details/40622491. 我们知道在Mybatis中定义Mapper信息有两种方式,一种是利用xml写一个对应的包含Mapper信息的配置文件:另一种就是定义一个Mapper接口,然后定义一些相应的操作方法,再辅以相应的操作注解. 现假设我有这样一个实体类: Java代码 

MyBatis的配置和使用原理

MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old JavaObjects,普通的 Java对象)映射成数据库中的记录. MyBatis让程序将主要精力放在sql上,通过MyBatis提供的映射方式,自由灵活生成(半自动化,大部分需要程序员编写sql)满足需要sql语句.

MyBatis -- configuration配置详解

1.configuration有什么作用? configuration管理MyBatis的配置,MyBatis的所有配置信息都存放的在configuration中. 下面我们看看configuration可配置的属性有哪些: 1.1  properties属性 实例: <properties resource="org/mybatis/example/config.properties"> <property name="username" val