上一篇简单介绍了本文所需的数据表结构,接下来开始iBatis的核心内容讲解。
玩转ibatis,主要包括五个部分内容:一是iBatis的主配置文件-sqlMapConfig.xml配置文件,用来描述与数据之间的连接;,二是pojo用来与数据库打交道的持久层对象,即java bean对象,也是我们通过iBatis要操作的对象;三是sqlMap.xml配置文件,用来自己手动填写的sql语句,即数据库操作CRUD语句;四是sqlMapConfig.xml文件中添加这个资源的位置。最后在dao中把参数(也就是pojo)传到该配置文件中。
首先生成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>
<settings
cacheModelsEnabled=”true” <!–是否启用缓存机制–>
lazyLoadingEnabled=”true” <!–是否启用延迟加载机制–>
enhancementEnabled=”true” <!–是否启用字节码增强机制–>
errorTracingEnabled=”true” <!–是否启用错误处理机制–>
maxRequests=”20″ <!–最大并发请求数–>
maxSessions=”10″ <!–最大Session数–>
maxTransactions=”10″ <!–最大并发事务数–>
useStatementNamespaces=”true”/> <!–是否启用名称空间–>
<transactionManager type=”JDBC”> <!–定义了ibatis的事务管理器有3中(JDBC,JTA,EXTERNAL)–>
<dataSource type=”SIMPLE”> <!–type属性指定了数据源的链接类型,也有3种类型(SIMPLE,DBCP,JNDI)–>
<property name=”JDBC.Driver” value=”com.mysql.jdbc.Driver”/>
<property name=”JDBC.ConnectionURL” value=”jdbc:mysql://localhost/ibatis”/>
<property name=”JDBC.Username” value=”root”/>
<property name=”JDBC.Password” value=”12345″/>
<!–连接池维持的最大容量–>
<property name=”Pool.MaximumActiveConnections” value=”10″/>
<!–连接池允许挂起的最大连接–>
<property name=”Pool.MaximumIdleConnections” value=”5″/>
<!–连接被某个任务所允许占用的最大时间–>
<property name=”Pool.MaximumCheckoutTime” value=”120000″/>
<!–线程允许等待的最大时间–>
<property name=”TimeToWait” value=”500″/>
</dataSource>
</transactionManager>
<!–指定我们手写的CRUD配置文件位置–>
<sqlMap resource=”com/sf/User.xml”/>
</sqlMapConfig>
一 transactionManager节点
transactionManagerab 定义了ibatis的事务管理器,目前提供了以下几种选择:
1) JDBC, 通过传统JDBC Connection.commit/rollback实现事务支持.
2) JTA,使用容器提供的JTA服务实现全局事务管理.
3) EXTERNAL,外部事务管理,如在EJB中使用ibatis,通过EJB的部署配置即可实现自动的事务管理机制.此时ibatis将把所有事务委托给外部容器进行管理.此外,通过Spring等轻量级容量实现事务的配置化管理也是一个不错的选择.
二 dataSource 节点
dataSource 从属于 transactionManager, 用于设定ibatis运行期使用DataSource属性.
type 属性: dataSource 元素的 type 属性指定了 dataSource 的实现类型.可选项目:
1) SIMPLE:
SIMPLE 是 ibatis 内置的 dataSource 实现,其中实现了一个简单的数据库连接池机制,对应 ibatis 实现类为
com.ibatis.sqlmap.engine.datasource.SimpleDataSourceFactory.
JDBC 使用 数据库自己的事务(局部事务),connect.beginTranstion(), connect.commit()等.
2) DBCP
基于Apache DBCP连接池组件实现的DataSource封装,当无容器提供DataSource服务时,建议使用该选项,对应ibatis实现类为
com.ibatis.sqlmap.engine.datasource.DbcpDataSourceFactory.
JTA : 使用jta 事务管理器管理事务(全局事务),使用userTranstion对象.
3) JNDI
使用J2EE容器提供的DataSource实现, DataSource将通过指定的JNDI Name从容器中获取.对应ibatis实现类为
com.ibatis.sqlmap.engine.datasource.JndiDataSourceFactory.
Ibatis 不控制事务,事务交由外部控制,一般在CTM,或spring托管事务中使用.JNDI的配置大部分都在应用服务器中进行,所以在ibatis中的配置相对简单
(1)jdbc事务控制的JNDI配置
<transctionManager type=”JDBC”>
<dataSource type=”JNDI”>
<property name=”DataSource” value=”java:comp/env/jdbc/myDataSource”/>
</dataSource>
</transctionManager>
(2)JTA事务控制的JNDI配置
<transctionManager type=”JTA”>
<property name=”UserTransaction” value=”java:/ctx/con/UserTransaction”/>
<dataSource type=”JNDI”>
<property name=”DataSource” value=”java:comp/env/jdbc/myDataSource”/>
</dataSource>
</transctionManager>
三sqlMap 节点
sqmMap节点指定了映射文件的位置,即我们手写的CRUD配置文件位置
注意:
sqmMap节点是个重点,初学者容易忘记。
转自: http://www.cnit1818.com/?p=80 | 随风大侠的博客
分享到:
相关推荐
总结来说,Ibatis是一个实用的持久层框架,它提供了灵活的SQL操作和高效的映射机制,使得开发者可以更好地管理和控制数据库操作,提高了代码的可读性和可维护性。对于Java开发者来说,掌握Ibatis的基本知识是提升...
### Spring与iBatis整合详解 #### 一、前言 在Java企业级应用开发中,Spring框架以其强大的依赖注入(DI)和面向切面...对于需要处理大量数据库操作的企业级应用而言,Spring与iBatis的结合是一种非常实用的选择。
1. **配置文件**:Ibatis的主配置文件定义了数据源、事务管理器和环境等基本信息,是整个框架的基础。 2. **映射文件(SqlMapConfig.xml)**:映射文件包含了SQL语句和结果映射,通过`<select>`, `<insert>`, `...
iBatis3放弃了原先的SqlMapConfig.xml全局配置文件,而是采用更加灵活的注解和XML映射文件来定义数据访问层。这一改变使得iBatis3能够更好地融入到现代的MVC框架中,如Spring MVC。 搭建iBatis3工程的第一步是添加...
安装完成后,需要在项目中配置IBatis的主配置文件(如:ibatis.config),这个文件包含了数据库连接信息、映射文件路径等关键设置。 **三、基本概念** 1. **SqlMapConfig.xml**: 这是IBatis的核心配置文件,定义了...
作为一个轻量级的ORM(Object-Relational Mapping)框架,iBATIS允许开发者将SQL语句直接写入XML配置文件,避免了JDBC代码的繁琐编写,同时也方便了SQL的管理和优化。本学习资料集是针对中文用户设计的,旨在帮助...
iBatis,一个由Apache软件基金会维护的开源项目,是一款优秀的Java持久层框架,它允许开发者将SQL语句直接写在配置文件中,避免了传统的DAO层繁杂的代码编写。iBatis的核心理念是将SQL语句与Java代码分离,使数据库...
除了核心组件之外,ibatis还提供了一系列实用工具,如SimpleDataSource、JDBCDataSource 2.0 (也支持3.0版本)以及ScriptRunner等,这些工具可以简化数据库连接管理、脚本执行等工作。 - **SimpleDataSource**:用于...
通过使用简单的XML配置文件来映射JavaBean到SQL语句,iBATIS提供了一种更加灵活的方式来处理数据库操作,与传统的ORM框架相比,它在保持简洁的同时提供了更多的控制权。 #### 二、核心概念与功能 ##### 2.1 SQLMap...
**SQL Map XML映射文件**是iBATIS的核心配置文件之一,用于定义具体的SQL语句及其对应的Java对象映射规则。主要包括: 1. **MappedStatements**:定义SQL语句以及它们的操作类型(如insert、update、delete和select...
【配置文件详解】 - `SqlMapConfig.xml`:这是iBatis的总配置文件,其中包含了JDBC连接的相关属性,如数据驱动(`driver`)、数据库URL(`url`)、用户名(`username`)和密码(`password`)。 ```xml <!-- 示例配置片段 -...
它将SQL语句与Java代码分离,通过XML或注解配置文件来定义SQL与Java方法的映射关系,以及参数模型、结果模型等。这样既避免了JDBC的繁琐,又不失SQL的灵活性。 2. **SQL转换工具的必要性** 在使用iBATIS时,可能会...
它可以解析数据库中的表信息,自动生成Mapper接口、XML配置文件、DAO接口及实现类、实体类等。与Ibatis Helper相比,Mybatis Generator提供了更多高级特性,例如自动添加主键生成策略、自定义模板支持、JavaBean规范...
6. **MyBatis Generator**:这是一个实用工具,可以根据数据库表自动生成Java模型类、Mapper接口和XML配置文件,简化开发工作。 SpringMVC和iBatis结合使用: 1. **整合**:SpringMVC可以管理iBatis的...
通过使用XML配置文件来定义SQL查询语句,并结合Java对象映射关系,ibatis提供了一种灵活的方式来处理数据库操作。其中,动态SQL是ibatis的一个非常强大的特性,允许开发者根据不同的条件构建出复杂的SQL查询语句。 ...
2. **SqlMapConfig.xml**:这是Ibatis的核心配置文件,用于定义数据源、事务管理器以及映射文件的位置等信息,它是整个Ibatis系统运行的基础。 3. **Mapper接口与XML映射文件**:Ibatis使用Mapper接口和对应的XML...
在Java Web开发领域,Struts2、Ibatis(现更名为MyBatis)与Spring框架的组合是一种非常流行且实用的技术栈。这种组合充分利用了各自的优势:Struts2负责处理用户的请求并调用业务逻辑层;Ibatis作为持久层框架,...
**SSI(Struts2+Spring2.5+Ibatis2.3)项目实例详解** **一、Struts2框架** Struts2是一个基于MVC设计模式的Java Web开发框架,它继承了Struts1和WebWork的优点,提供了一种更灵活、更强大的控制层解决方案。在SSI...
Ibatis 是一款优秀的轻量级Java持久层框架,它简化了Java应用与数据库之间的交互,提供了SQL映射文件和Java接口的灵活配置,使得数据库操作更为便捷。然而,即使有Ibatis的支持,开发人员仍需要手动编写大量的DAO...
通过对Spring3.0x MVC中的依赖关系及其JAR文件的详细介绍,我们可以看到Spring框架的强大之处在于它提供了高度模块化的设计,使开发者可以根据自己的实际需求灵活地选择和配置所需的组件和技术栈。了解这些依赖关系...