SqlMapClient对象
这个对象是iBatis操作数据库的接口(执行CRUD等操作),它也可以执行事务管理等操作。这个类是我们使用iBATIS的最主要的类。它是线程安全的。通常,将它定义为单例。(与hibernate中sessionFactory的定义类似)。如:
mport java.io.Reader;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
public class IbatisSQLMapConfig {
private static final SqlMapClient sqlMap;
//在静态区块中初试化返回
static {
try {
//声明配置文件的名称(映射文件被定义在其中)
String resource = "sql_map_config.xml";
//利用工具类Resources来读取到配置文件
Reader reader = Resources.getResourceAsReader(resource);
//创建SqlMapClient接口的变量实例
sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(
"Error initializing MyAppSqlConfig class. Cause: " + e);
}
}
public static SqlMapClient getSqlMapInstance() {
//提供静态方法返回静态区块中得到的SqlMapClient
return sqlMap;
}
}
如何获得刚插入记录的自增长ID值?
<insert id="insertUser" parameterClass="User">
insert into t_user values (
null,#username#,#password#
)
<selectKey resultClass="int" keyProperty="id">
SELECT @@IDENTITY AS ID
</selectKey>
</insert>
User user = new User();
user.setUsername("张三");
user.setPassword("张三密码");
//如果主键是自动生成的,则其返回值可以通过<selectKey>标签来设置
//如果不通过<selectKey>标签来设置,则返回值为空!
//<selectKey >中的keyProperty,是指定User中的id属性,当调用结束之后,
//user对象的id值和insert方法的返回值都是这条记录的ID值!
Object obj = sqlMapper.insert("insertUser", user);
parameterClass的使用
<insert id="insertUser" parameterClass="User">
insert into t_user values (
null,#username#,#password#
)
<selectKey resultClass="int" keyProperty="id">
SELECT @@IDENTITY AS ID
</selectKey>
</insert>
<insert id="insertUser2">
insert into t_user values (
null,#username#,#password#
)
<selectKey resultClass="int" keyProperty="id">
SELECT @@IDENTITY AS ID
</selectKey>
</insert>
insertUser使用了parameterClass,所以必需传入User类型的对象
User user = new User();
user.setUsername("张三");
user.setPassword("张三密码");
//传递进去的对象,必须是User类型
Object obj = sqlMapper.insert("insertUser", user);
insertUser2没有使用parameterClass,所以可以传入任意具有相应属性值的对象
JustAnObject anobj = new JustAnObject();
anobj.setUsername("用户名");
anobj.setPassword("用户密码");
//如果没有指定parameterClass属性,则任何一个具有相应属性值
//的对象都可以被传递进去
Object obj = sqlMapper.insert("insertUser2", anobj);
parameterMap的使用
<parameterMap class="User" id="insertUser-param">
<parameter property="username"/>
<parameter property="password"/>
</parameterMap>
<insert id="insertUser" parameterMap="insertUser-param">
insert into t_user values (
null,?,?
)
<selectKey resultClass="int" keyProperty="id">
SELECT @@IDENTITY AS ID
</selectKey>
</insert>
parameterMap用于传入参数,以便匹配SQL语句中的?号
User user = new User();
user.setUsername("张三dd");
user.setPassword("张三密码dd");
Object obj = sqlMapper.insert("insertUser", user);
利用parameterMap,可以定义参数对象的属性如何映射到SQL查询语句的动态参数上,注意parameterMap中<parameter/>标签的先后顺序不能颠倒!
分享到:
相关推荐
此外,还会介绍如何处理结果集、执行批量操作、使用缓存机制等高级特性。 **iBatis SQL Maps** - **Select**: 用于查询数据,可以返回单个对象、列表或者Map。 - **Insert**: 插入数据,支持自动获取自增主键值。 ...
要开始使用 Ibatis,首先需要从官方网站下载最新版本的 ibatis jar 包,以及 log4j 日志框架的 jar 包。然后,在Java项目中添加这些库,配置log4j.properties以开启SQL日志输出。接着,新建主配置文件sqlMapConfig....
1. **iBATIS概述**:介绍iBATIS的基本概念、设计理念和核心组件,包括SqlMapConfig.xml配置文件、SqlMap接口和SqlMapClient对象等。 2. **映射文件**:详述了SqlMap映射文件的结构和元素,如sql、select、insert、...
### iBATIS缓存介绍 #### 一、缓存介绍 **1.1 缓存对象** 理论上,Web分层设计的各个层都可以有缓存,Web中的任何对象都可以成为缓存的对象。例如: - **HTTP请求结果的缓存**:如页面数据或API响应。 - **...
《iBATIS-SqlMaps-2.pdf》可能是关于iBATIS SQL映射器的详细指南,它会介绍如何编写SQL Map配置文件,这些文件定义了数据库查询和事务处理。SQL Maps是iBATIS的核心部分,它们将数据库查询与Java对象绑定,使得...
使用Ibatis对数据库的访问,实现增删改查的操作 ;
【Ibatis 使用手册】 Ibatis 是一款优秀的对象关系映射(ORM)框架,它使得开发者能够在不脱离 SQL 的强大功能的同时,享受面向对象编程的便利。Ibatis.Net 是其针对 .NET 平台的移植版本,它简化了数据访问层(DAL...
ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园
**Ibatis简介** Ibatis,又称为SQL Map,是一个优秀的持久层框架,它允许开发者将SQL语句直接写在配置文件中,与Java代码进行分离,使得...了解并熟练掌握Ibatis的使用,对于提升Java开发效率和代码质量具有重要意义。
iBatis技术框架介绍。ibatis2.x教程。
Ibatis 是一款轻量级的Java持久层框架,它允许开发者将SQL语句与Java代码分离,从而使得数据库访问更加灵活、易于维护。本篇文章将深入探讨Ibatis的核心概念、最佳实践以及与其他框架如Struts和Spring的整合。 1. ...
3. **结果映射改进**:iBATIS3对结果映射进行了优化,支持更复杂的数据结构映射,包括嵌套对象、集合以及使用构造函数进行结果集映射,这极大地增强了框架处理复杂数据的能力。 4. **缓存机制增强**:iBATIS3引入了...
### 详细介绍Ibatis的用法 #### Ibatis概述与特点 ...以上是对Ibatis核心特性的详细介绍,通过这些内容,读者可以了解到如何使用Ibatis进行数据库操作,以及如何配置Ibatis来满足不同场景的需求。
以下是对iBATIS简易使用的详细解释: 1. **环境准备**: - **jar文件**:iBATIS框架运行需要依赖一些库文件,包括`log4j`用于日志记录,`ibatis`核心库,以及`jdbc`驱动,这些都需要添加到项目的类路径中。 - **...
例如,使用`@Param`注解可以指定参数名,或者在XML中使用`#{paramName}`来引用参数。 6. **结果映射**:结果映射允许我们将查询结果自动映射到Java对象。Ibatis提供了多种方式来实现映射,如自动类型匹配、自定义...
标题 "ibatis使用备注" 暗示了我们即将探讨的是如何在Java应用程序中使用iBatis这个持久层框架。iBatis是一个轻量级的框架,它允许开发者将SQL语句与Java代码分离,提高了代码的可读性和可维护性。 首先,我们需要...
### ibatis和Hibernate的简单介绍 #### 一、ibatis简介 ibatis是Apache软件基金会的一个开源项目,它提供了一种轻量级的Java持久层框架。ibatis的核心功能是将SQL语句与Java代码分离,使开发人员可以更加专注于...
下面我们将详细探讨iBATIS在.NET中的使用方法,以及如何利用提供的文件进行实践。 首先,了解iBATIS的基本概念。iBATIS是一个轻量级框架,它的核心功能是动态SQL映射,允许开发者编写SQL语句并将其封装到XML配置...