iBATIS.NET
下载主页:
http://ibatis.apache.org/dotnet.cgi?Preferred=http%3A%2F%2Fapache.etoak.com
Demo是从网上搜的,有一个数据库文件附加到SQL Server中来,其中有一个Person表,表中有主键,字符型,浮点型和日期型的字段,下面通过这个代码来入门IBatis.Net (看他并不是要用他,我不会去使用IBatis.Net )
IBatis.Net的版本很久没有个更新过了。
配置文件
1.在Web.Config文件中加入配置信息,用于配置操作日志,日志会保存在程序的根目录的Txt文件中。(具体内容参考代码)
2.配置文件 ,Demo中的sqlmap.config文件
3.PO 简单对象,Domain中的只有属性的类
4.映射文件,Map文件夹下面的XML配置文件,用来配置SQL语句的。
下面的说明复制于“善友”的博客
……
<update id=" UpdatePerson" ⑴
parameterClass="Person"> ⑵
<![CDATA[⑶
update Person set ⑷
PER_FIRST_NAME =#FirstName#,⑸
PER_LAST_NAME =#LastName#, ⑹
PER_BIRTH_DATE =#BirthDate#,
PER_WEIGHT_KG=#WeightInKilograms#,
PER_HEIGHT_M=#HeightInMeters#
where
PER_ID = #Id# ⑺]]>
</update>
……
⑴ ID指定了操作ID,之后我们可以在代码中通过指定操作id 来执行此节点所定义的操作,如:SqlMap.Update("UpdatePerson", person);ID设定使得在一个配置文件中定义两个同名节点成为可能(两个update节点,_____以不同id区分)
⑵ parameterClass指定了操作所需的参数类型,此例中update 操作以IBatisNetDemo.Domain.Person类型的对象作为参数,目标是将提供的Person实例更新到数据库。parameterClass="Person"中,Person为“IBatisNetDemo.Domain.Person”类的别名,别名可通过typeAlias节点指定,如示例配置文件中的:<typeAlias alias="Person" type="IBatisNetDemo.Domain.Person,IBatisNetDemo" />
⑶ <![CDATA[……]]>通过<![CDATA[……]]>节点,可以避免SQL 中与XML 规范相冲突的字符对XML映射文件的合法性造成影响。
⑷ 执行更新操作的SQL,这里的SQL 即实际数据库支持的SQL 语句,将由IBatisNet填入参数后交给数据库执行。
⑸ SQL中所需的用户名参数,“# FirstName #”在运行期会由传入的Person对象的FirstName属性填充。
⑹ SQL 中所需的用户性别参数“# LastName #”,将在运行期由传入的Person对象的LastName属性填充。
⑺ SQL中所需的条件参数“#id#”,将在运行期由传入的Person对象的Person属性填充。
使用方法:
private static SqlMapper sqlMap;
public BaseService(){Assembly assembly = Assembly.Load("IBatisNetDemo");Stream stream = assembly.GetManifestResourceStream("IBatisNetDemo.sqlmap.config");DomSqlMapBuilder builder = new DomSqlMapBuilder();sqlMap = builder.Configure(stream);}
public IList<Person> GetAllPerson(){IList<Person> list = null;list = SqlMap.QueryForList<Person>("SelectAllPerson", null);return list;}
SqlMapper是IbatisNet运作的核心,所有的操作均通过SqlMapper实例完成。
配置节点说明参照: http://www.cnblogs.com/shanyou/articles/388598.html
Dao 是容器
Map 是定义
PO 是简单对象
转载于:https://www.cnblogs.com/finehappy/archive/2009/09/03/1559770.html
iBATIS.NET相关推荐
- iBatis的CRUD操作详细总结
昨天晚上看了一下关于iBatis的一个讲解的视频,讲的和我的这个简单的总结差不多.... 思考了一下还是把主要操作都总结一下吧,当然这里也不是全的,知识简单的CRUD... 首先我觉得持久层的操作主要 ...
- IBatis.Net学习笔记九--动态选择Dao的设计分析
在IBatis.Net中可以通过配置文件动态选择数据库.动态选择Dao对象. Dao对象也就是操作数据库的类,通过配置文件我们可以选择DataMapper的方式.Ado的方式.NHibernet的方式 ...
- 【转】ibatis的简介与初步搭建应用
[转]ibatis的简介与初步搭建应用 一.ibatis的简介 ibatis是什么东西就不介绍了,自己去找谷老师. 这里讲下自己的使用体会.之前自己学过Hibernate,是看尚学堂的视频教学的,看完 ...
- iBatis自动生成的主键 (Oracle,MS Sql Server,MySQL)【转】
iBatis的sqlMap配置文件的selectKey元素有个type属性,可以指定pre或者post表示前生成(pre)还是后生成(post). Oracle设置 Xml代码 <!-- O ...
- DNN和IBatis.Net几乎同时发布新版本
DotNetNuke发布了最新的版本4.5.0,确实让人期待了很久,据说这个版本在性能上有很大的提升. IBatis.NET几乎在同一时间也发布了新版本DataMapper 1.6.1,也有不少的改进 ...
- Hibernate和iBATIS 优缺点比较
选择Hibernate还是iBATIS都有它的道理: Hibernate的特点: Hibernate功能强大,数据库无关性好,O/R映射能力强,如果你对Hibernate相当精通,而且对Hiberna ...
- nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping
今天mybatis报了个错误 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type ...
- ibatis的there is no statement named xxx in this SqlMap
报错情况如下: com.ibatis.sqlmap.client.SqlMapException: There is no statement named Control.insert-control ...
- ibatis源码浅析- 初探
ibatis核心类 SqlMapExecutor:定义了数据库curd操作api SqlMapTransactionManager : 主要定义了事务管理功能 SqlMapClient:继承SqlMa ...
- Ibatis调用Oracle存储过程,以及返回Cursor结果集的问题
最近开始接触Oracle了,接触的越多越感受到自己的渺小!(oracle10g ,Ibatis) 昨天需要通过数据库查询一组数据,数据中包含一个表中的一条数据.2个String类型的字符串,想通过Or ...
最新文章
- 人字拖藏SIM卡、戴微型蓝牙耳机!为考教师岗,多人作弊被抓
- 自定义控件:下拉刷新
- openwrt l7过滤qos配置
- 产品优化成果过关?监控数据说了算
- eclipse opengl java_eclipse openGL glut运行环境配置
- 1. Spring boot 之热部署
- qt+visa实现程控实例
- JWT 实现微服务鉴权
- oracle awr报告生成_5.性能测试 - Oracle体系结构和性能优化简介
- Matlab中imadjust函数的用法
- HDU2084 数塔【DP】
- 在阿里云上安装MongoDB,并且远程连接
- TinyWeb--C++构建高性能Web服务器
- afx_msg void OnHScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar )的参数和作用分析
- idea中的万能快捷键(alt + enter)
- iphone android 功能清单,iPhone的这几个App,让你的工作效率翻倍(1)
- 团队管理,领导的“无为”就是最大“有为”
- 2018看得见的未来:超融合六大趋势
- Flashback archive
- java 重写equals方法的种种“坑”
热门文章
- oracle对substr去重,oracle使用笔记
- C++中 引用与取地址的区别
- 阅读分析下列html,阅读下列说明和 HTML 文本,分析其中嵌入的 JavaScript. 脚本..._考试资料网...
- 1024 科学计数法 (20 分)(c语言)
- Mysql(7)——auto_increment简介
- 华为鸿蒙os什么运行内存多大,华为公布鸿蒙OS 2.0硬件安装要求:只要128K内存就能跑...
- 解决 iOS 12.4 Killed: 9 的问题
- 关于go语言中的JWT(JSON WEB TONKE)ECHO
- Linux学习-漫游根目录和/usr目录
- python博弈论代码_使用 40 多行的 Python 代码实现一个简单的演化过程