IBatis学习
(1)建立
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">
<!--<properties resource="SqlMap.properties"/>-->
<settings>
<setting useStatementNamespaces="false"/>
<setting cacheModelsEnabled="false"/>
</settings>
<!--<providers embedded="WHTR.PPMoney.DaoCfg.providers.config, WHTR.PPMoney.DaoCfg" />-->
<providers resource="providers.config"/>
<database>
<provider name="sqlServer2005"/>
<dataSource name="pp" connectionString="server=192.168.1.2;database=DB1;user id=sa;password=123"/>
</database>
<sqlMaps>
<sqlMap resource="Person.xml"/>
</sqlMaps>
</sqlMapConfig>
(2) 建立 Person.xml
<?xml version="1.0" encoding="utf-8" ?>
<!--<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">-->
<sqlMap namespace="" xmlns="http://ibatis.apache.org/mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<alias>
<typeAlias alias="Person" type="Ibatis.PersonModel"/>
</alias>
<statements>
<select id="selectAllPerson" resultClass="Person">
select top 1 * from
Person
</select>
<insert id="insertPerson">
insert into Person(name)
values(#name#)
<selectKey property="Id" resultClass="int" type="post">
select value = @@IDentity
</selectKey>
</insert>
</statements>
</sqlMap>
(3)建立 PersonModel类
namespace Ibatis
{
public class PersonModel
{
public int Id
{
get;
set;
}
public string Name
{
get;
set;
}
}
}
(4) 建立Dao
public class BaseDao
{
public static ISqlMapper _sqlMap = null;
static BaseDao()
{
_sqlMap = Mapper.Instance();
}
}
public class PersonDao : BaseDao
{
public IList<PersonModel> GetList()
{
ISqlMapper mapper = _sqlMap;
IList<PersonModel> ListPerson = mapper.QueryForList<PersonModel>("selectAllPerson", null); //这个"SelectAllPerson"就是xml映射文件的Id
return ListPerson;
}
public int AddPerson(PersonModel person)
{
Hashtable ht = new Hashtable();
ht.Add("name",person.Name);
object o = _sqlMap.Insert("insertPerson", ht);
return Convert.ToInt16(o);
}
}
(5) 使用方法
class Program
{
static void Main(string[] args)
{
var person=new PersonModel(){Name="zhang"};
PersonDao dao = new PersonDao();
int id= dao.AddPerson(person);
IList<PersonModel> ListPerson = dao.GetList();
foreach (PersonModel p in ListPerson)
{
Console.WriteLine(p.Id + p.Name);
}
Console.ReadKey();
}
}
IBatis学习的更多相关文章
- 【web开发学习笔记】ibatis学习总结
ibatis学习总结 ibatis数据库配置文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCT ...
- ibatis 学习笔记 3 - pfpfpfpfpf的专栏 - 博客频道 - CSDN.NET
body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...
- Ibatis学习总结6--使用 SQL Map API 编程
SQL Map API 力求简洁.它为程序员提供 4 种功能:配置一个 SQL Map,执行 SQL update操作,执行查询语句以取得一个对象,以及执行查询语句以取得一个对象的 List. 配置 ...
- Ibatis学习总结4--SQL Map XML 映射文件扩展
SQL Map XML 映射文件除了上文提到的属性还有一些其他重要的属性,下文将详细介绍这些属性. 缓存 Mapped Statement 结果集 通过在查询 statement 中指定 cacheM ...
- Ibatis学习总结3--SQL Map XML 映射文件
在前面的例子中,只使用了 SQL Map 最简单的形式.SQL Map 的结构中还有其他更多 的选项.这里是一个 mapped statement 较复杂的例子,使用了更多的特性. <sqlMa ...
- Ibatis学习总结2--SQL Map XML 配置文件
SQL Map 使用 XML 配置文件统一配置不同的属性,包括 DataSource 的详细配置信息, SQL Map 和其他可选属性,如线程管理等.以下是 SQL Map 配置文件的一个例子: Sq ...
- Ibatis学习总结1--ibatis简介和SQL Maps
最佳维护的一个项目使的是ibatis框架,在闲暇之余将手头的开发手册和平时开发的理解做一下总结,言归正传. 简介 使用 SQL Map,能够大大减少访问关系数据库的代码.SQL Map 使用简单的 X ...
- Ibatis学习记录
几大要素:1.jdbc.properties //数据库连接配置2.SqlMapContext.xml //主配置文件3.user_SqlMap.xml //映射文件4.三层框架 创建Ibatis工程 ...
- ibatis学习之道:ibatis的<[CDATA]>dynamic属性跟#$的应用
ibatis的<![CDATA]>,dynamic属性和#,$的应用 <![CDATA[ ]]>的正确使用 ibatis作为一种半自动化的OR Mapping工具,其灵活性 ...
随机推荐
- kill 根据PID终止进程
根据PID终止进程 kill [option] PID-list kill 通过向一个或多个进程发送信号来终止进程.除超级用户外,只有进程的所有者才可以对进程执行kill 参数 PID-list为ki ...
- RabbitMQ 路由选择 (Routing)
让日志接收者能够订阅部分消息.例如,我们可以仅仅将致命的错误写入日志文件,然而仍然在控制面板上打印出所有的其他类型的日志消息. 1.绑定(Bindings) 在前面中我们已经使用过绑定.类似下面的代码 ...
- 三大范式与BCNF
引用:http://www.cnblogs.com/ybwang/archive/2010/06/04/1751279.html 参考: 1.范式间的区别 http://www.cnblogs.com ...
- ES6新特性:Javascript中Generator(生成器)
ES6的很多特性都跟Generator扯上关系,而且实际用处比较广, 包含了任何需要异步的模块, 比如ajax, filesystem, 或者数组对象遍历等都可以用到: Generator的使用: G ...
- C#-WinForm-公共控件的基本属性及练习
视图→工具箱 基本操作:控件的取值.赋值.改值.事件 1.Button --按钮 AutoSize-指示该控件是否自动调整自身的大小以适应其内容的大小. 默认False,此时文字内容超过其宽度时自动 ...
- 2.python算法之回形矩阵
代码: #!/usr/bin/env python # encoding: utf-8 """ @author: 侠之大者kamil @file: 2.回形矩阵.py @ ...
- 79.Android之动画基础
转载:http://a.codekk.com/detail/Android/lightSky/%E5%85%AC%E5%85%B1%E6%8A%80%E6%9C%AF%E7%82%B9%E4%B9%8 ...
- BZOJ1012 [JSOI2008]最大数maxnumber
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- css选择器([class*=" icon-"], [class^=icon-] 的区别)
官方解释: [attribute^=value],a[src^="https"],选择其 src 属性值以 "https" 开头的每个 <a> 元素 ...
- poj 2945 trie树统计字符串出现次数
用记录附加信息的val数组记录次数即可. trie的原理:每个可能出现的字目给一个编号c,那么整个树就是一个c叉树 ch[u][c]表示 节点u走c边过去之后的节点 PS:trie树还有种动态写法,使 ...