我们接这IBATIS入门(第一节)讲:http://yekui.iteye.com/admin/blogs/732256
详解User.xml里面的配置:
<sqlMap namespace="user"> 这是一个命名空间,学过C的人应该了解命名空间这个名词了,其主要作用就是区别,你可以把他理解为java中的包的概念,意思就是不让重名的类名,等等起冲突。
<typeAlias alias="User" type="com.dk.user.UseVO"/>这个是一个JavaBeen的一个路径别名。后面我们就不用写一大串的东东了,把它com.dk.user.UseVO都用User代替了。
<resultMap id="userResult" class="User">
<result property="id" column="uid"/>
<result property="name" column="uname"/>
<result property="age" column="uage"/>
</resultMap>
这个很有必要说一下,你看demo的时候,会有配置这个与我们创建的表结构,映射的东东。但是大多数开发的情况下,我们是不用写这个resultMap的 那么很多人就会问了,特别是学习过hibernate的人就不太明白,如果按照hibernate的里面的配置写法这个是必须的与表结构里面的字段一一对应,事实上 我们先前为什么要配置一个别名 这里就该起作用了。
往下看。
<statement id="createUserTest">
create table usertest
(
uid int primary key identity(1,1),
uname varchar(20),
uage int
)
</statement>
这个地方我们调用的时候是这样子的。
public static void updateUser(UseVO vo){
try {
sqlMapClient.startTransaction();
int i = sqlMapClient.update("updateUser", vo);
sqlMapClient.commitTransaction();
sqlMapClient.endTransaction();
System.out.println("i\t"+i);
} catch (SQLException e) {
e.printStackTrace();
}
}
特别注意一点就是第一调用update方法,第二就是我们写的事务一定要提交,不然表就没有创建到数据库中。虽然它提示了你已经船舰成功,但是你去数据库查的时候就是没有这张表,事务没有提交,好不多说了。
继续
<insert id="insertUser" parameterClass="User">
insert into usertest
(uname,uage)
values
(#name#,#age#)
</insert>
这里记住这里的表还是数据库中的表,学过hibernate的人 老是不明白这里为什么是insert into usertest 这里应该是我的映射啊,按道理他的理解就是insert into User ,请别忘了那句话,在ibatis里面,永远是纯的sql语句编程。
(#name#,#age#)
这#符号是什么意思啊,你暂时可以这样理解他就是以前我们在sql语句中的那个?,也就是占位符的意思。
(#name#,#age#)
那这里的name 与age 有事怎么回事呢,首先我们要先了解 insert into usertest
(uname,uage)是表中的数据的字段
,而values是(#name#,#age#)
你UserBeen里面映射好了JavaBeen参数。
接下来就是
第一:
<select id="selectUser" resultClass="User">
select uid as id,uname as name,uage as age from usertest
</select>
第二:
<select id="selectUser" resultMap="userResult" resultClass="User">
select uid,uname ,uage from usertest
</select>
第三:
<select id="selectUser" resultMap="userResult" resultClass="User">
select * from usertest
</select>
实际上你不计较一下这三种写法,就能看出,第二种和第三种没什么区别都一样。但是第一,和第二第三种的写法就有点不太一样,究竟哪里不一样呢,想了半天,想不明白,没关系我们冲程序中看效果。
原来按照第一种写法我们就可以把
<resultMap id="userResult" class="User">
<result property="id" column="uid"/>
<result property="name" column="uname"/>
<result property="age" column="uage"/>
</resultMap>
注释掉。因为这样写就没有写
resultMap的必要了 ,这是为什么呢??
哦,我们一看 他为什么都是as name ,as age,as id 很明显这里就是在他的字段与表中的字段一个一个的映射起来。
所以事实上我们可以把他之前的一个参数去掉
resultClass="User"。
继续看:
parameterClass="User" parameterClass="int" parameterClass="String" 这个是你传入的参数。
resultClass="User" 这是返回结果集。
继续看:
如果是创建或删除表那么就在statement标签里面操作就好了:例如:
<statement id="createUserTest">
create table usertest
(
uid int primary key identity(1,1),
uname varchar(20),
uage int
)
</statement>
<statement id="dropUser" >
drop table usertest
</statement>
最后还有一个挺囧的问题。那就是like语句的写法,我总结一句like就是见钱眼开。
<select id="selectUserByName" parameterClass="String" resultClass="User">
select * from usertest where uname like '%#name#%'
</select>
这个你怎么写都会报错的,而且无论你怎么改变你所谓正确的写法。
搞了半天正确的下发居然是这样子的:很明显见钱眼看,加上美元符 问题解决。
<select id="selectUserByName" parameterClass="String" resultClass="User">
select * from usertest where uname like '%$name$%'
</select>
有一些报错,如果你查询语句没有报错,但是数据是null 这就是要看你的resultMap=""是否写对了。
ok差不多了应该。基本对这些个东西应该是比较了解了把。到此你入门了基本80%还有写个什么多表映射这个你在工作当中写几个基本就不成问题了 ,至于关于ibaties与spring的整合 这个都应该是google写都能解决了,关键是入门。
希望这些对大家有帮助,谢谢。
分享到:
相关推荐
**Ibatis 入门教程** Ibatis 是一个优秀的 Java ORM(对象关系映射)框架,它允许程序员将数据库操作与业务逻辑分离,提供灵活的 SQL 配置和映射机制,使得开发人员能够自由地编写 SQL 而不被 ORM 的复杂性所束缚。...
### iBatis入门示例解析 #### 1. 数据库准备 在开始编写代码之前,我们需要创建一个数据库和相应的表。示例中使用的是MySQL数据库,创建了一个名为`sample`的数据库,并在其中创建了一个名为`t_user`的表,包含`id...
**ibatis入门教程与开发指南** Ibatis,全称MyBatis-iBATIS,是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。Ibatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。Ibatis可以使用简单...
【IBATIS 入门】 IBATIS 是一个流行的数据访问框架,它在 Java 开发领域中扮演着重要角色,特别适用于那些需要对 SQL 有更多控制权的项目。与 Hibernate 和 Apache OJB 等全面的 ORM(对象关系映射)解决方案不同,...
**iBatis入门** iBatis 是一个优秀的持久层框架,它允许开发者将SQL语句直接写在配置文件中,从而避免了Java代码与数据库之间的繁杂交互。它结合了Java的灵活性和SQL的高效查询能力,使得开发更加便捷。本篇文章将...
其次,"ibatis的入门"PDF文件可能包含了一步步引导你从零开始学习Ibatis的教程。通常,这样的教程会涵盖安装Ibatis、创建第一个映射文件、调用SQL语句、处理结果集等内容。此外,它可能还会介绍如何使用Ibatis的API...
1. "iBATIS-DAO-2_en.pdf":这个文件可能是关于iBATIS DAO层(数据访问对象)的英文版第二版文档,可能涵盖了DAO的设计模式,以及如何使用iBATIS实现DAO接口。 2. "iBATIS-SqlMaps-2_cn.pdf":这可能是关于iBATIS ...
这个"第一个ibatis例子"是一个典型的入门教程,旨在帮助初学者快速理解并掌握Ibatis的基本用法。 首先,Ibatis的核心组件包括XML配置文件、SqlMapConfig.xml、Mapper接口以及Mapper XML文件。在入门例子中,我们...
搭建iBatis开发环境是使用这个框架的第一步,通常涉及以下步骤: 1. **导入依赖**:首先需要将必要的jar包引入到项目中,包括iBatis的核心库(如ibatis-2.3.0.677.jar)以及相应的数据库驱动,例如对于MySQL,需要...
2. **缓存机制**:Ibatis 提供了本地缓存和二级缓存,可以提高数据访问速度。 3. **事务控制**:支持手动和自动的事务管理,可以根据业务需求灵活选择。 4. **动态 SQL**:通过 if, choose, when, otherwise 等标签...
2. **iBATIS SQL Maps入门教程**: 入门教程通常从基础开始,帮助新手快速上手: - 安装与设置:指导如何在项目中引入iBATIS.NET,配置项目文件。 - 第一个例子:通过一个简单的CRUD操作,展示iBATIS的基本用法。...
入门教程通常从简单的Hello World示例开始,逐步引导读者了解如何创建和配置iBatis项目,编写第一条SQL,处理查询结果,以及如何进行异常处理。同时,还会讲解如何在实际项目中结合Spring等框架进行集成使用。 **...
《Ibatis入门详解:从简单案例到深入理解》 Ibatis,作为一个轻量级的Java持久层框架,因其灵活性和易用性而被广大开发者所喜爱。本教程将基于提供的"ibatis1.rar"压缩包文件,带领大家一步步走进Ibatis的世界,...
iBATIS-SqlMaps-2-快速入门教程 iBATIS-SqlMaps-2 是一个 Java 持久层框架,用于简化 Java 应用程序中的数据库交互。快速入门教程旨在帮助开发者快速了解 iBATIS-SqlMaps-2 的使用和配置。 知识点1:iBATIS-Sql...
IBATIS最新最全开发指南 - 通俗易懂IBATIS教程,ibatis基础,ibatis入门.JpetStore_4等!",这说明这份资源不仅全面,还强调了易理解性,特别提到了iBatis的基础知识和入门教程,以及JpetStore_4项目,这是一个经典...
第2章 iBATIS是什么 26 2.1 映射SQL语句 27 2.2 iBATIS如何工作 29 2.2.1 iBATIS之于小型、简单系统 30 2.2.2 iBATIS之于大型、企业级系统 31 2.3 为何使用iBATIS 31 2.3.1 简单性 32 2.3.2 生产效率 32 2.3.3 性能 ...
2. **创建第一个SQL Map**:教程会指导你编写一个简单的SQL Map,展示如何定义SQL查询并映射结果。 3. **SQL Map客户端**:学习如何在Java代码中使用SqlMapClient,执行SQL Map中的SQL语句。 4. **映射POJO(Plain...
2. **第2章 iBATIS是什么**:会详细介绍iBATIS的历史,设计理念,以及它在Java应用中的角色,可能包括它的核心功能,如SQL映射文件,动态SQL等。 3. **第4章 使用已映射语句**:这章节可能深入讲解了如何定义和使用...
根据"01_传智播客ibatis教程_准备ibatis环境"的子文件名,我们可以推测这可能是传智播客(一个知名的在线教育平台)提供的Ibatis教程的第一个部分,专门讲解如何搭建和准备Ibatis开发环境。可能包含视频教程、PPT...