ibatis使用起来非常简单,没有hibernate那么复杂,具体原理如下:
1,通过DaoManagerBuilder.buildDaoManager(reader, props);加载sql-map-config.xml文件,在加载sql-map-config.xml文件的时候,会在sql-map-config.xml文件中初始化数据源连接和sql配置文件,样本如下:
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>
- <properties resource="properties/database.properties"/>
- <transactionManager type="JDBC">
- <dataSource type="SIMPLE">
- <property value="${driver}" name="JDBC.Driver"/>
- <property value="${url}" name="JDBC.ConnectionURL"/>
- <property value="${username}" name="JDBC.Username"/>
- <property value="${password}" name="JDBC.Password"/>
- </dataSource>
- </transactionManager>
- <sqlMap resource="com/ibatis/jpetstore/persistence/sqlmapdao/sql/Account.xml"/>
- </sqlMapConfig>
其中的Account.xml文件就是sql配置文件,sql配置文件的样本文件如下:
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="Account">
- <typeAlias alias="account" type="com.ibatis.jpetstore.domain.Account"/>
- <select id="getAccountByUsername" resultClass="account" parameterClass="string">
- SELECT
- SIGNON.USERNAME,
- ACCOUNT.EMAIL,
- ACCOUNT.FIRSTNAME,
- ACCOUNT.LASTNAME,
- ACCOUNT.STATUS,
- ACCOUNT.ADDR1 AS address1,
- ACCOUNT.ADDR2 AS address2,
- ACCOUNT.CITY,
- ACCOUNT.STATE,
- ACCOUNT.ZIP,
- ACCOUNT.COUNTRY,
- ACCOUNT.PHONE,
- PROFILE.LANGPREF AS languagePreference,
- PROFILE.FAVCATEGORY AS favouriteCategoryId,
- PROFILE.MYLISTOPT AS listOption,
- PROFILE.BANNEROPT AS bannerOption,
- BANNERDATA.BANNERNAME
- FROM ACCOUNT, PROFILE, SIGNON, BANNERDATA
- WHERE ACCOUNT.USERID = #username#
- AND SIGNON.USERNAME = ACCOUNT.USERID
- AND PROFILE.USERID = ACCOUNT.USERID
- AND PROFILE.FAVCATEGORY = BANNERDATA.FAVCATEGORY
- </select>
- </sqlMap>
sql-map-config.xml和sql语句配置文件配置好之后,就可以进行dao操作了
2,dao操作,可以通过继承SqlMapDaoTemplate类,执行sql语句,在执行sql语句的时候,首先获取通过DaoManagerBuilder.buildDaoManager(reader, props);初始化加载的daoManager对象,功过daoManager对象可以得到一个dao类,然后就可以执行这个dao类里面的dao方法了,比如
public BusinessInfo getBusinessInfo(String id) {
// XXX Auto-generated method stub
return (BusinessInfo) queryForObject("getBusinessInfo", id);
}
ibatis在你调用dao方法的时候,根据你传入的sql语句id,到sql语句配置文件中查找相应的sql语句,然后执行这个sql语句,并返回执行结果.
分享到:
相关推荐
### Spring、Struts、iBatis框架搭建流程详解 #### 一、框架下载与准备 在构建基于Spring、Struts和iBatis的项目时,首先需要下载这些框架的最新版本,并进行相应的准备工作。 ##### 1. Struts2框架 Struts2是一...
iBatis,作为一款开源的持久层框架,其在Java应用中扮演了数据库操作的关键角色。本文将基于“ibatis开始流程”的标题与描述,深入探讨iBatis的开发流程,解析其配置与使用方法,旨在为初学者及开发者提供一份详尽的...
**Ibatis 工作流程** 1. 应用程序通过 MyBatis 的 SqlSessionFactoryBuilder 创建 SqlSessionFactory。 2. SqlSessionFactory 根据配置文件或类路径下的配置文件创建 SqlSession。 3. 使用 SqlSession 获取 Mapper ...
以下是一个典型的应用流程: 1. **前端请求**:用户在Web页面上触发一个事件(如点击按钮),JavaScript通过Ajax调用发起HTTP请求,携带必要的参数。 2. **服务器处理**:服务器接收到请求后,解析参数,交由...
标题 "ibatis在web工程中的应用笔记" 涉及的主要知识点是MyBatis(原名iBatis)在Web应用程序开发中的使用。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。下面将详细阐述MyBatis的基本...
通常情况下,当我们修改了iBatis的SQL映射文件(sqlmap)后,需要重启应用服务器来使改动生效。这无疑降低了开发效率。然而,通过手动控制加载sqlmap文件,我们可以实现在不重启应用的情况下更新SQL映射,从而提高...
通过数据库准备、SQL Map 编写和 Java 代码集成,我们可以轻松地进行数据库操作,这对于初学者理解 Ibatis 的工作原理及其在实际项目中的应用非常有帮助。同时,这个实例也鼓励学习者进一步探索 Ibatis 的高级特性,...
- **ibatis-2.3.4.726.jar**:这是Ibatis的核心库,包含了所有必要的类和接口,用于构建Ibatis应用。 - **iBatis教程中文版.doc**:这份文档详细介绍了Ibatis的使用方法,包括配置、SQL映射、结果映射、动态SQL等...
而"IbatisStudy"可能是一个示例项目,包含了一个简单的Ibatis应用场景,如用户管理模块,包含实体类、Mapper接口、Mapper XML文件以及相关的测试代码。通过运行这个项目,你可以更直观地了解Ibatis的工作流程。 ...
SpringMVC和iBatis是两个非常流行的Java Web开发框架,它们在企业级应用中广泛使用。SpringMVC作为Spring框架的一部分,负责处理HTTP请求,而iBatis则是一个轻量级的持久层框架,专注于数据库操作。接下来,我们将...
Spring 是一个轻量级的Java应用开发框架,提供了依赖注入、面向切面编程等功能,而ibatis则是一个基于Java的持久层框架,它提供了一种简单的方式来执行SQL语句并映射结果到Java对象上。当这两个框架结合起来时,可以...
iBATIS的工作流程主要包括: 1. 接收对象参数,该参数用于设置更新语句的输入值或查询语句的WHERE子句。 2. 执行映射的Statement,iBATIS创建PreparedStatement,填充参数,执行SQL并从结果集中构建返回对象。 3. ...
**iBATIS 使用流程** 1. **创建SQL映射文件**: 在XML文件中定义SQL语句,包括查询、插入、更新和删除操作。 2. **配置数据源**: 配置数据库连接信息,如驱动、URL、用户名和密码。 3. **创建DAO层**: 创建Data ...
Struts2作为MVC(Model-View-Controller)架构的一部分,主要负责处理用户请求并控制应用流程,而iBatis则是一个优秀的持久层框架,它简化了数据库操作,使得SQL与Java代码可以更好地分离。当这两个框架结合Spring...
在IT行业中,构建高效、可扩展的Web应用是至关重要的,而"Maven搭建SpringMVC+Spring+Ibatis"的组合则提供了一种强大的解决方案。本文将深入探讨这些技术及其集成,帮助你理解和掌握如何利用它们来构建现代化的Java ...
- 集成测试:模拟真实环境,测试整个应用的数据库操作流程,包括事务处理、缓存等。可以使用如Spring Boot Test、MyBatis-Spring-Boot-Starter-Test等工具。 - 数据库初始化:在测试前,需要准备测试数据,可以...
Struts作为一个MVC(Model-View-Controller)框架,主要用于控制应用程序的流程,而iBatis则是一个持久层框架,它简化了数据库操作,将SQL语句与Java代码解耦合。在这个“Struts+ibatis登录”实例中,我们将探讨如何...
二、iBatis的工作流程 1. 加载配置:iBatis读取配置文件(mybatis-config.xml),获取数据源、事务管理器等信息。 2. 创建SqlSessionFactory:基于配置信息创建SqlSessionFactory对象。 3. 获取SqlSession:使用...
《Ibatis代码自动生成工具—Abator的应用详解》 Ibatis作为一款轻量级的Java持久层框架,因其灵活的SQL映射机制深受开发者喜爱。然而在实际开发中,面对大量的数据库表,手动编写对应的Java实体类、Mapper接口以及...
在这个项目中,Ibatis作为数据访问层,负责与数据库交互,而Struts2则处理HTTP请求,控制业务流程。 2. emis08(Struts1+iBATIS).zip:这个版本使用的是较早的Struts1框架,同样结合了Ibatis。尽管Struts1的功能相对...