- 浏览: 38713 次
- 性别:
- 来自: 北京
文章分类
介绍
iBATIS是以SQL为中心的持久化层框架。能支持懒加载、关联查询、继承等特性。
iBATIS不同于一般的OR映射框架(eg:hibernate)。OR映射框架,将数据库表、字段等映射到类、属性,那是一种元数据(meta-data)映射。iBATIS则是将SQL查询的参数和结果集映射到类。因此可以说,iBATIS做的是SQL Mapping的工作。它把SQL语句看成输入以及输出,结果集就是输出,而where后面的条件参数则是输入。iBATIS能将输入的普通POJO对象、Map、XML等映射到SQL的条件参数上,同时也可以将查询结果映射到普通POJO对象(集合)、Map、XML等上面。
iBATIS使用xml文件来映射这些输入以及输出。能大大减少数据库存储部分的代码量,而且可以非常方便的利用SQL中的一些小技巧。
简单示例
基于ibatis-2.3.0.677版本。
1、 创建新的项目,并引入jar包
a) ibatis-2.3.0.677.jar
b) mysql驱动
2、 在类路径中(classes下)提供ibatis的配置文件:sqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <sqlMapConfig> <transactionManager type="JDBC" commitRequired="false"> <dataSource type="SIMPLE"> <property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/> <property name="JDBC.ConnectionURL" value="jdbc:mysql://127.0.0.1/ibatis"/> <property name="JDBC.Username" value="root"/> <property name="JDBC.Password" value="mysql"/> </dataSource> </transactionManager> <sqlMap resource="com/ibatis/model/User.xml"/> </sqlMapConfig> |
3、创建实体类:User.java
package com.ibatis.model; publicclass User { privateintid; private String username; private String password;
publicint getId() { returnid; } publicvoid setId(int id) { this.id = id; } public String getPassword() { returnpassword; } publicvoid setPassword(String password) { this.password = password; } public String getUsername() { returnusername; } publicvoid setUsername(String username) { this.username = username; } } |
4、创建针对User对象的CRUD的xml映射配置:User.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="User"> <!-- Use type aliases to avoid typing the full classname every time. --> <typeAlias alias="User" type="com.ibatis.model.User"/> <!-- Select with no parameters using the result map for Account class. --> <select id="selectAllUsers" resultClass="User"> select * from t_user </select>
<select id="selectUser" resultClass="User" parameterClass="int"> select * from t_user where id=#id# </select>
<insert id="insertUser" parameterClass="User"> insert into t_user values ( null,#username#,#password# ) </insert>
<update id="updateUser" parameterClass="User"> update t_user set username = #username#,password=#password# where id=#id# </update>
<delete id="deleteUser" parameterClass="int"> delete from t_user where id=#id# </delete> </sqlMap> |
5、创建测试程序测试:
package com.crm.model; import java.io.Reader; import java.util.Iterator; import java.util.List; import com.ibatis.common.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; /** *最简单的形式! *@authorq * */ publicclass UserTest { /** *@paramargs */ publicstaticvoid main(String[] args) throws Exception{ //从配置文件中得到SqlMapClient对象 Reader reader = Resources.getResourceAsReader("sqlMapConfig.xml"); SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader); reader.close();
//创建用户数据 for(int i=0; i<10; i++){ User user = new User(); user.setUsername("用户"+i); user.setPassword("密码"+i); sqlMapper.insert("insertUser", user); }
//查询用户数据 List users = sqlMapper.queryForList("selectAllUsers"); for (Iterator iter = users.iterator(); iter.hasNext();) { User user = (User) iter.next(); System.out.println(user.getUsername()); }
//查询特定用户的数据 User user = (User)sqlMapper.queryForObject("selectUser", 1); System.out.println("用户【id="+1+"】的名称是:"+user.getUsername());
//更新用户的信息 user = new User(); user.setId(3); user.setUsername("更改之后的用户名称"); user.setPassword("密码被更改"); sqlMapper.update("updateUser", user);
//删除用户的信息 sqlMapper.delete("deleteUser", 6); } } |
发表评论
-
Tomcat解决URL传中文的方法
2007-09-28 19:03 892在TOMCAT-HOME/conf/server.xm ... -
介绍两个jsp上传组件commons-fileupload和SmartUpload(部分来自网页)
2007-09-28 21:39 1105第1个上传组件commons-fileupload ==== ... -
仍一个能增减行的javascript
2007-10-08 18:52 742<html><head> <s ... -
jFreeChart(动态web应用)
2007-10-09 14:12 763JFreeChart 1.0.2的动态应用,根据数据库中的 ... -
jFreeChart初探(静态应用)
2007-10-09 14:17 589初学JFreeChart,整理一个例子:(部分来自网页) ... -
初探tomcat连接池
2007-10-11 18:30 551相关工具: tomcat版本5.5 ,mysql,drp(数据 ... -
初探struts中的(Converter)的一个例子
2007-10-18 19:09 584Struts中的Converter可以将一些特定对象转换成字符 ... -
other
2007-10-19 18:23 648最近正在抽时间研究jive的源代码,如果有谁想 ... -
struts(il8n)实现国际化的一个例子
2007-10-19 20:45 833struts利用在session中放一个local对象来 ... -
struts中自定义taglib函数例子
2007-10-21 12:43 645首先建立自己的函数:package com.struts; ... -
一个从另一个打开页面返回值的javascript例子
2007-11-16 14:52 776今天写项目的时候用到了需要从另一个打开页面取值的j ... -
struts中利用ExceptionHandler处理异常
2007-11-22 13:33 660在Struts1.X的版本中加入了对异常的处理 ... -
DWR学习及应用
2007-11-25 20:31 645DWR是一个开源的类库,可以帮助开发人员开发包含AJAX技术 ... -
java群
2007-12-03 20:25 63刚健了一个java群,用于大家互相探讨java,共同促进学习, ... -
ibatis学习(三)---ibatis与spring的整合
2007-12-07 18:26 2001Spring通过DAO模式,提供了对iBATIS的良好支持 ... -
ibatis学习(二)--ibatis使用介绍
2007-12-07 18:27 716SqlMapClient对象 这个对象是iBatis操作 ... -
dwr实现级联菜单
2007-12-08 10:39 790Dwr的介绍请见:http://www.blogjava. ... -
JSF学习及应用一-(安装配置)
2007-12-11 09:38 733JSF(JavaServer Faces) JSF是JA ... -
JSF学习及应用二-(用例)
2007-12-11 09:41 567实例1 1、 创建一个JSP 2、 在相同的路径下,用. ... -
JSF学习及应用三-(与spring整合)
2007-12-11 09:46 657JSF与Spring整合的原理是获得彼此的上下文引用,以此 ...
相关推荐
【ibatis入门--对数据库的操作】这篇文章主要...总的来说,这篇文章覆盖了iBatis的基本操作,包括数据库连接、SQL映射配置、数据操作(增、删、改、查)以及事务和异常处理,为初学者提供了一个完整的iBatis入门指南。
标题“ibatis2mybatis-master.zip”所指的是一款工具或服务,用于将基于iBATIS的数据访问框架的代码自动转换为使用MyBatis框架的代码。iBATIS和MyBatis都是Java开发中常用的持久层框架,它们帮助开发者简化数据库...
在压缩包文件"ibatisTest"中,可能包含了测试用例,比如一个简单的Java项目,其中包含了iBatis的相关配置、DAO接口、XML映射文件以及测试类。通过这些文件,你可以了解如何实际应用iBatis进行数据访问操作。 总结...
此外,源码中还包含了丰富的测试用例,这些用例不仅验证了iBatis的功能,也为我们提供了实际应用中的使用示例,对于快速上手和调试都非常有帮助。 总之,通过对iBatis 2.3.0.677源码的分析,我们可以掌握其设计理念...
【标题】"maven版ibatis" 涉及到的知识点主要集中在Maven和iBatis两个核心组件上,Maven是Java项目管理和构建工具,而iBatis则是一个优秀的持久层框架,用于简化数据库操作。以下是这些知识点的详细说明: **1. ...
“SSI_SimpleTest”可能是项目中的一个测试模块,可能包含了一些简单的测试用例,用于验证iBATIS与SQL Server 2000的集成是否正常工作,以及分页、增删改查等功能是否能够正确执行。通常,这样的测试文件会帮助...
在IT行业中,Spring框架和iBatis持久层框架的整合是一个常见的应用场景,旨在提供更加灵活且高效的数据库操作。"spring-ibatis"项目的核心目标就是将Spring的依赖注入特性和iBatis的数据访问能力结合起来,使得开发...
标题“spring与hibernate以及ibatis集成的实例和具体配置图解”表明,这个资料包主要讲解如何将这三个框架结合在一起使用,以构建一个高效、灵活的后端系统。集成这些框架可以实现数据访问层的无缝切换,同时利用...
标题 "ibatis_test测试" 涉及到的是对Ibatis这一知名Java持久层框架的实战测试。Ibatis,作为一个轻量级的ORM(Object-Relational Mapping)框架,允许开发者将SQL语句直接写在配置文件中,使得数据库操作与业务逻辑...
这个项目可能包含了一个或多个Java类(对应Mapper接口),一个或多个XML映射文件(存放SQL语句),以及一些测试用例,用来演示如何使用Ibatis执行SQL并处理结果。 通过这个初级学习案例,你可以了解Ibatis的基础...
本篇文章将深入探讨如何搭建第一个iBatis3工程,以及该工程中涉及到的核心概念和技术点。 首先,我们需要理解iBatis3的基本架构。iBatis3放弃了原先的SqlMapConfig.xml全局配置文件,而是采用更加灵活的注解和XML...
Spring MVC 作为 Model-View-Controller 模式的实现,负责处理用户请求并返回响应,而 iBatis 则是一个轻量级的持久层框架,它简化了 SQL 的操作。在 Maven 的管理下,这两个框架可以更方便地集成和构建项目。下面将...
Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将注意力集中在编写动态的SQL上,而无需关注JDBC代码的繁琐细节。这个"ibatis小例子Demo"是为了帮助初学者快速理解和掌握...
而iBatis则是一个持久层框架,它简化了数据库操作。将这三者与Json整合,可以实现高效的数据交换。下面将详细介绍这三个框架及其整合过程中的关键知识点。 1. **Spring框架**:Spring的核心是依赖注入(Dependency ...
在"工具"这一标签下,我们可以假设博客可能还会讨论如何集成 iBATIS 到项目中,如使用 Maven 或 Gradle 进行依赖管理,以及如何在 IDE(如 IntelliJ IDEA 或 Eclipse)中配置和调试 iBATIS。 至于压缩包文件 ...
通过以上对Struts2和iBatis的介绍以及整合过程的讲解,我们可以理解这两个框架如何协同工作,提高开发效率并提供更优秀的Web应用程序。在实际项目中,开发者可以根据需求选择合适的整合策略,以实现高效、可维护的...
本文将详细介绍如何将这三者进行整合,实现一个高效且灵活的Java Web应用。 Struts2是基于MVC设计模式的开源框架,它提供了一种用于构建Web应用的模型、视图和控制器的结构。Struts2的核心是Action,每个Action对应...
1. **IBatis(现称MyBatis)**:是一个支持普通SQL查询、存储过程以及高级映射的优秀开源持久层框架。它消除了几乎所有的JDBC对象操作并自动将SQL语句执行结果映射成Java对象及其集合。 2. **Abator**:是MyBatis...
标题"DroidPilot-V2.5-Full-Ibatis.rar"暗示了这是一个关于Android应用开发的项目,其中可能包含了Ibatis这一流行的Java持久层框架。...这将是一个深入了解Android应用开发、Ibatis框架以及数据库设计实践的好机会。