1.SqlMapClient:该类是ibatis的核心类,所有的基于数据库的操作都由该类完成。其实是一个线程安全的SQL Maps客户端,继承了 SqlMapExecutor, SqlMapTransactionManager2个类,封装了数据库的操作和事务处理,可以管理多线程,也可以以单线程的方式运行,一般来说,使用单线程是一种高性能的方式,当被定义为static或singleton时也是安全的。
方法一(自定义方法):SqlMapSession openSession(java.sql.Connection conn),该方法返回一个指定数据库连接的session,如果使用该方式打开看一个session,使用完毕后必须关闭。
方法二(从SqlMapExecutor继承):void startBatch(),int executeBatch(),通过这2个方法实现批处理操作,处理一系列的数据库动作。
方法三(从SqlMapExecutor继承):void queryWithRowHandler(java.lang.String id,java.lang.Object parameterObject,RowHandler rowHandler)throws java.sql.SQLException,该方法对于每个查询结果,调用重载的方法handleRow()再次封装,实现一些额外的功能。该方法适用于大数据量时,避免遍历结果集造成较大性能消耗。
2.指定返回类型的resultMap和resultClass
这两个属性都适用于对查询结果的存储,区别在于resultClass适用于一般的操作,insert、update、delete、select等,而resultMap适用于嵌套查询和调用存储过程时。原因是由于存储过程相对而言比较封闭(很多情况下需要调用现有
的存储过程,其参数命名和返回的数据字段命名往往不符合Java编程中的命名习惯,
并且由于我们难以通过Select SQL的as子句进行字段名转义,无法使其自动与POJO
中的属性名相匹配)。此时,使用resultMap建立字段名和POJO属性名之间的映射
关系就显得非常有效。另一方面,由于通过resultMap 指定了字段名和字段类型,
ibatis无需再通过JDBC ResultSetMetaData 来动态获取字段信息,在一定程度
上也提升了性能表现。
3.在配置文件中指明参数类型
通过jdbcType和javaType可以指定属性的类型,例如:<result property="id" column="ID" jdbcType="int" javaType="java.lang.Integer"/>;还可以在SQL语句中指明参数类型,比如:update T_USER set name = #name:VARCHAR#, sex = #sex:NUMERIC# where id = #id:NUMERIC#。建议这2种方式都使用。
4.获取不同的返回类型
如已配置: <select id="selectAllUsers" resultClass="user">select id as id, name as name, sex as sex from T_USER</select>
类型一:返回List, sqlmapper.queryForList("User.selectAllUsers")—返回包含所有用户信息的集合;
类型二:返回指定键的Map,sqlmapper.queryForMap("User.selectAllUsers", null, "id")—返回id为键,对象为值的Map;
类型三:返回指定键值的Map,sqlmapper.queryForMap("User.selectAllUsers", null, "id", "name")—返回id为键,name为值的Map;
分享到:
相关推荐
Ibatis 是一款轻量级的Java持久层框架,它允许开发者将SQL语句与Java代码分离,从而使得数据库访问更加灵活、易于维护。本篇文章将深入探讨Ibatis的核心概念、最佳实践以及与其他框架如Struts和Spring的整合。 1. ...
Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将SQL语句与Java代码分离,从而更好地管理数据库操作。Ibatis的出现,解决了传统JDBC中手动编写SQL和结果集映射的繁琐工作,...
《深入解析iBatis源码》 iBatis,一个优秀的Java持久层框架,以其轻量级、灵活的特性在众多ORM(Object-Relational Mapping)框架中独树一帜。iBatis的核心在于它的SQL映射机制,它将数据库操作与业务逻辑解耦,...
Ibatis是一个轻量级的Java持久层框架,它与Hibernate和MyBatis3等ORM(对象关系映射)工具相比,更加灵活,更注重SQL的编写。本示例旨在提供一个简单的Ibatis运行实例,帮助开发者理解其基本用法。 在开始之前,...
Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将注意力集中在编写SQL语句上,而无需关注JDBC代码的编写。Ibatis消除了几乎所有的JDBC代码和手动设置参数以及获取结果集的...
iBATIS是一个由Clinton Begin创建,目前由Apache基金会支持的持久化框架,它专注于数据库查询的简化,尤其在JDBC编程方面提供了极大的便利。相对于全自动化ORM解决方案如Hibernate,iBATIS被称为“半自动化”ORM实现...
iBATIS DAO是Java开发中的一个持久层框架,它提供了数据访问对象(DAO)的实现,使得数据库操作更加简单和灵活。在这个2.3.4.726版本的源码中,我们可以深入理解iBATIS DAO的工作原理,并通过添加注释来帮助我们更好...
### Ibatis3手册知识点概述 Ibatis3作为一款流行的持久层框架,在软件开发领域具有重要的地位。本篇文章基于“Ibatis3手册 Ibatis3参考手册”的标题及描述,深入解析Ibatis3的核心概念、架构特点以及如何进行实际...
Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,将数据库操作与业务逻辑解耦,使得开发者可以更专注于业务逻辑的实现,而无需关心繁琐的SQL语句编写。本篇文章将深入探讨Ibatis API、文档...
ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南
iBatis是一个轻量级的Java持久层框架,它提供了SQL映射框架,将SQL语句与Java代码分离,使得数据库访问更为灵活和可控。在本压缩包中,你将找到一系列关于iBatis的学习资源,包括PDF文档、实例代码等,这些都是深入...
### ibatis应对批量update 在处理大量数据更新时,传统的for循环方式往往会导致效率低下。这是因为每一次循环都需要执行一次数据库连接操作,对于批量更新来说,这样的处理方式显然不够高效。为了解决这个问题,...
**IBATIS API 帮助文档与IBATIS开发文档详解** IBATIS,一个由iBATIS公司开发的开源持久层框架,是Java世界中广泛使用的数据访问接口(DAO)工具。它允许开发者将SQL语句直接写在XML配置文件中,实现了SQL与Java...
**Ibatis 指南** Ibatis 是一个优秀的开源持久层框架,它允许开发者将 SQL 查询与 Java 代码分离,从而避免了传统的 JDBC 编程中的大量模板代码。作为一个轻量级的框架,Ibatis 提供了灵活的映射机制,使得 XML 或...
Spring与iBATIS的集成 iBATIS似乎已远离众说纷纭的OR框架之列,通常人们对非常流行的Hibernate情有独钟。但正如Spring A Developer's Notebook作者Bruce Tate 和Justin Gehtland所说的那样,与其他的OR框架相比...
《iBATIS实战》是讲述iBATIS框架的权威著作。书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。《iBATIS实战》的最后给出了一个...
Ibatis 是一个优秀的Java持久层框架,它提供了一个SQL映射框架,使开发者能够将SQL语句与Java代码分离,从而实现数据访问层的解耦合。Ibatis 的设计目标是简化开发工作,减少JDBC代码量,提高开发效率,并且在数据库...
《Ibatis 入门经典 实例》 Ibatis 是一款著名的轻量级 Java 持久层框架,它提供了一种映射 SQL 和 Java 对象的简单方式,从而减轻了开发人员在数据库操作中的工作负担。这篇实例教程将带你深入理解 Ibatis 的核心...
这通常意味着内容深入浅出,易于理解,对于初学者或希望提升iBatis技能的开发者来说极具价值。 【标签】"ibatis"直接指出了本教程的核心主题,即iBatis。iBatis是一个优秀的SQL映射框架,它允许开发者将SQL语句与...
根据提供的文件信息,本文将详细解析如何在Spring与ibatis框架整合时,通过特定配置来保留ibatis事务处理机制,并实现对事务的自定义控制。文章将围绕标题、描述及部分代码片段展开讨论。 ### Spring与ibatis整合...