一、查询select

  还记得第一篇示例中的是如何读出数据库里的3条数据吗?

  就是调用了一个QueryForList方法,从方法名就知道,查询返回列表。

  1、QueryForList  返回List<T>强类型数据集合

  来看看方法原型:

public IList<T> QueryForList<T>(string statementName, object parameterObject);
public IList QueryForList(string statementName, object parameterObject);
public void QueryForList<T>(string statementName, object parameterObject, IList<T> resultObject);
public void QueryForList(string statementName, object parameterObject, IList resultObject);
public IList<T> QueryForList<T>(string statementName, object parameterObject, int skipResults,int maxResults);
public IList QueryForList(string statementName, object parameterObject, int skipResults, int maxResults);

  有原型可以看出,其实只是3个参数不同方法,只是分为泛型与非泛型两个版本而已。

  这个主要说说,参数skipResults,表示从结果行掉过skipResults行后返回,maxResults表示返回的行数。这个在分页中应该会用到。

  下面来看一个最简单的示例:

  xml映射文件中

  <statements><select id="SelectAllPerson" resultMap="Person">  <!--id在程序中会被SqlMapper实体类所调用,resultMap就是resultMap节点的id-->select * from person</select></statements>

  程序中的代码:

  IList<PersonModel> ListPerson = mapper.QueryForList<PersonModel>("SelectAllPerson", null); 

  返回就是IList<PersonModel>的集合实例了。这个不多说。

  2、QueryForObject  返回一行数据对应程序的实体类实例

  下面来看看方法原型:

public object QueryForObject(string statementName, object parameterObject);
public T QueryForObject<T>(string statementName, object parameterObject);
public T QueryForObject<T>(string statementName, object parameterObject, T instanceObject);
public object QueryForObject(string statementName, object parameterObject, object resultObject)

  不多说,下面来看看实例:

  xml映射文件:

    <select id="SelectOnePerson" resultMap="Person">select * from person where Id = #Id#  <!--其中#Id就是存入的参数#--></select>

  程序代码:

  PersonModel p = mapper.QueryForObject<PersonModel>("SelectOnePerson", 1);   //1就是存入Sql语句的参数

  返回就是一个PersonModel对象的实例了。

  3、QueryWithRowDelegate  通过委托过滤返回的数据

  下面来看看方法原型:

    IList<T> QueryWithRowDelegate<T>(string statementName, object parameterObject, RowDelegate<T> rowDelegate);IList QueryWithRowDelegate(string statementName, object parameterObject, RowDelegate rowDelegate);

  4、QueryForDictionary

  5、QueryForMap

  以上两个都不懂,看以后有没有用到,再算吧。

二、Insert

  insert插入数据的方式比较简单,就只得一个方法Insert方法:

  <insert id="InsertOne" resultMap="Person">insert into Person (Name)values(#Name#)<selectKey type="post" resultClass="int" property="Id">SELECT CAST(@@IDENTITY as int) as Id</selectKey></insert>

  因此此处Id设为了自增,所以SQL语句里面并不需要再设置Id

  程序代码如下:

  PersonModel p = new PersonModel();p.Name = "曹操";
  return (int)mapper.Insert("InsertOne",p);

三、Update

  Update方法同样简单,也只是条用一下Update方法。

  映射文件:

    <update id="UpdateOne" resultMap="Person">Update Person Set Name = #Name# Where Id = #Id#</update>

  程序代码如下:

  PersonModel p = new PersonModel();p.Id = 5;p.Name = "张三";
  return (int)mapper.Update("UpdateOne", p);

四、Delete

  删除方法与上面一样,我都感觉自己都有点啰嗦了。

  映射文件:

    <delete id="DeleteOne" resultMap="Person">Delete Person Where Id = #Id#</delete>

  程序代码:

  PersonModel p = new PersonModel();p.Id = 5;p.Name = "张三";
  return (int)mapper.Delete("DeleteOne", p);
  //return (int)mapper.Delete("DeleteOne", 5);  //另外这样也可以

原文地址:http://www.cnblogs.com/kissdodog/p/3295577.html

Ibatis.Net 数据库操作(四)相关推荐

  1. SAP ABAP openSQL数据库操作(四)

    SAP ABAP openSQL数据库操作(一) SAP ABAP openSQL数据库操作(二) SAP ABAP openSQL数据库操作(三) 文章目录 5.数据的一致性 1.SAP LUW | ...

  2. 【转】Mybatis/Ibatis,数据库操作的返回值

    该问题,我百度了下,根本没发现什么有价值的文章:还是看源代码(详见最后附录)中的注释,最有效了! insert,返回值是:新插入行的主键(primary key):需要包含<selectKey& ...

  3. Mybatis/Ibatis,数据库操作的返回值

    该问题,我百度了下,根本没发现什么有价值的文章:还是看源代码(详见最后附录)中的注释,最有效了! insert,返回值是:新插入行的主键(primary key):需要包含<selectKey& ...

  4. mysql在cmd命令下执行数据库操作

    2019独角兽企业重金招聘Python工程师标准>>> windows+r 运行cmd命令,执行以下操作! 当mysql 数据库文件相对于来说比较大的时候,这个时候你可能在正常环境下 ...

  5. python数据库self函数_Python常用功能函数系列总结(四)之数据库操作

    本节目录 常用函数一:redis操作 常用函数二:mongodb操作 常用函数三:数据库连接池操作 常用函数四:pandas连接数据库 常用函数五:异步连接数据库 常用函数一:redis操作 # -* ...

  6. 艾伟:基于.NET平台的Windows编程实战(四)—— 数据库操作类的编写

    本系列文章导航 基于.NET平台的Windows编程实战(一)--前言 基于.NET平台的Windows编程实战(二)-- 需求分析与数据库设计 基于.NET平台的Windows编程实战(四)-- 数 ...

  7. 如何将Android数据库操作通用化(四)

    概述 明窗半掩小庭幽夜静灯残未待留 风冷结阴寒落叶别离长倚望高楼 迟迟月影斜依竹叠叠诗余赋旅愁 将欲断肠随断梦雁飞连阵几声秋 概述 上一篇文章,已经解决了前两个问题,那么现在我们继续. 首先,我们回顾 ...

  8. 25-在线考试系统数据库-班级学生信息数据操作(四)

    25-在线考试系统数据库-班级学生信息数据操作(四) 项目描述 伴随着远程教育的蓬勃发展,作为教学当中不可分割的一部分的"在线考试系统"也得到了当今远程教育研究者的关注,考试是考察 ...

  9. IBatis.Net学习笔记四--数据库的缓存模式

    在IBatis中提供了数据库缓存的模式,可以提高访问效率.对于一些不常更新的表可以直接利用IBatis的缓存方式. 要使用IBatis的数据库缓存,只要利用配置文件就可以了,实现起来比较简单:     ...

  10. Java+MyEclipse+Tomcat (四)Servlet提交表单和数据库操作

    前面三篇文章讲述了如何配置MyEclipse和Tomcat开发JSP网站.如何配置Servlet简单实现表单提交.如何配置MySQL实现JSP数据库查询.         这篇文章主要讲述Servle ...

最新文章

  1. java http输出,Java HTTP Client输出空JSON
  2. 用户请求队列化_爬虫架构消息队列应用场景及ActiveMQ、RabbitMQ、RocketMQKafka
  3. 利用XShell上传、下载文件(使用sz与rz命令),超实用!
  4. dotnet core 应用是如何跑起来的 通过自己写一个 dotnet host 理解运行过程
  5. C++Primer学习笔记:第8章 IO库
  6. 1021 个位数统计 (15 分
  7. WSL安装Oracle,折腾记录:WSL(Windows Subsystem for Linux,Windows上的Linux子系统)安装后的环境配置-Go语言中文社区...
  8. ModuleNotFoundError: No module named ‘torch.utils.serialization‘
  9. 面试:一文搞懂Java集合
  10. Spark WordCount
  11. 论高性能机房标识标签管理办法一现状篇
  12. Spring Boot 日志配置 ——logback
  13. Flash(as3.0) CScreen
  14. fiddler运行原理_fiddler工作原理
  15. CPen 使用 PS_DOT 无法画出虚线
  16. 股市中什么是多头、空头
  17. 【计算机网络】网关和路由器功能的有哪些不同
  18. 用Boost::spirit库写C++的源代码解析器(一) 一个简单的例子:解析enum的解析器雏形
  19. 我们软件开发常用的协作工具
  20. Dynamics CRM 数据导出到Excel时列标题不能重复

热门文章

  1. OpenNETCF Smart Device Framework 2.1 发布
  2. [删括号][判断可行性的dp]
  3. python——re模块
  4. dede自定义内容模型会员投稿显示不了
  5. 公司里面用的iTextSharp(教程)---关于PDF的属性设置
  6. IE Developer ToolBar,这是IE用于调试页面的小工具
  7. 让VS2008对JQuery语法的智能感知更完美一点(转载)
  8. docker的源配置
  9. es6 Promise -- 封装
  10. hibernate hql