ibatis开发和学习总结.docx
- 文档编号:2137005
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:10
- 大小:153.90KB
ibatis开发和学习总结.docx
《ibatis开发和学习总结.docx》由会员分享,可在线阅读,更多相关《ibatis开发和学习总结.docx(10页珍藏版)》请在冰豆网上搜索。
ibatis开发和学习总结
Ibatis培训资料
2007年4月
目录
第一章Ibatis原理2
SQLMap的概念2
SQLMap如何工作2
SQLMapXML配置文件3
配置SQLMap5
事务处理5
批处理5
代码例子6
更多详细资料请参照:
7
第二章Ibatis生成工具Abator7
简介:
7
使用方法:
7
生成文件的说明:
7
更多详细请参考:
7
第三章用eclipse开发ibatis应用8
配置ibatis开发环境:
8
构建应用框架:
8
第四章开发实例8
编写model类:
Person.java8
编写数据库脚本:
Person.sql9
编写ibatis的数据库初始配置:
SqlMapConfigExample.xml9
Ibatis配置调用的属性文件;SqlMapConfigExample.properties10
sqlmap的一对一映射文件:
Person.xml10
绑定sqlmap配置并创建pojo实例的工具类:
11
使用工具类并结合ibatis的sqlmap方法实现的查询:
11
第一章Ibatis原理
SQLMap的概念
SQLMapAPI让开发人员可以轻易地将JavaBean映射成PreparedStatement的输入参数和ResultSet结果集。
开发SQLMap的想法很简单:
提供一个简洁的架构,能够用20%的代码实现80%JDBC的功能。
SQLMap如何工作
SQLMap提供了一个简洁的框架,使用简单的XML描述文件将JavaBean,Map实现和基本数据类型的包装类(String,Integer等)映射成JDBC的PreparedStatement。
以下流程描述了SQLMaps的高层生命周期:
1)执行mappedstatement。
这是SQLMaps最重要的步骤。
SQLMap框架将创建一个PreparedStatement实例,用参数对象为PreparedStatement实例设定参数,执行PreparedStatement并从ResultSet中创建结果对象。
2)执行SQL的更新数据语句时,返回受影响的数据行数。
执行查询语句时,将返回一个结果对象或对象的集合。
和参数对象一样,结果对象可以是JavaBean,Map实现和基本数据类型的包装类。
安装iBatis需要在类路径下放置以下JAR文件:
文件名
描述
是否必需
ibatis-common.jar
IBATIS公用的工具类
是
ibatis-sqlmap.jar
IBATISSQLMaps框架
是
ibatis-dao.jar
IBATISDAO框架
否
SQLMapXML配置文件
SQLMap使用XML配置文件统一配置不同的属性,包括DataSource的详细配置信息,SQLMap和其他可选属性,如线程管理等。
以下是SQLMap配置文件的一个例子:
xmlversion="1.0"encoding="UTF-8"?
>
DOCTYPEsqlMapConfig
PUBLIC"-//iBATIS.com//DTDSQLMapConfig2.0//EN"
"
cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled="true" maxRequests="32" maxSessions="10" maxTransactions="5" useStatementNamespaces="false" /> resultClass=”com.ibatis.example.Product”> select PRD_IDasid, fromPRODUCT wherePRD_ID=#id# 配置SQLMap SQLMap使用XmlSqlMapClientBuilder来创建。 这个类有一个静态方法叫buildSqlMap。 方法buildSqlMap简单地用一个Reader对象为参数,读入sqlMap-config.xml文件(不必是这个文件名)的内容。 Stringresource=“com/ibatis/example/sqlMap-config.xml”; Readerreader=Resources.getResourceAsReader(resource); SqlMapClientsqlMap=SqlMapClientBuilder.buildSqlMap(reader); 事务处理 缺省情况下,调用SqlMapClient对象的任意executeXxxx()方法将缺省地自动COMMIT/ROLLBACK。 这意味着每次调用executeXxxx()方法都是一个独立的事务。 这确实很简单,但对于需要在同一个事务中执行多个语句的情况(即只能同时成功或失败),并不适用。 这正是事务处理要关心的事情。 如果您在使用GlobalTransaction(在SQLMap配置文件中设置),您可以使用自动提交并且可以得到在同一事务中执行的效果。 但为了提高性能,最好是明确地划分事务的范围,因为这样做可以减少连接池的通讯流量和数据库连接的初始化。 privateReaderreader=newResources.getResourceAsReader( "com/ibatis/example/sqlMapconfig.xml"); privateSqlMapClientsqlMap=XmlSqlMapBuilder.buildSqlMap(reader); publicupdateItemDescription(StringitemId,StringnewDescription)throwsSQLException{ try{ sqlMap.startTransaction(); Itemitem=(Item)sqlMap.queryForObject("getItem",itemId); item.setDescription(newDescription); sqlMap.update("updateItem",item); sqlMmitTransaction(); }finally{ sqlMap.endTransaction(); } } 批处理 如果要执行很多非查询(insert/update/delete)的语句,您可能喜欢将它们作为一个批处理来执行,以减少网络通讯流量,并让JDBCDriver进行优化(例如压缩)。 SQLMapAPI使用批处理很简单,可以使用两个简单的方法划分批处理的边界: sqlMap.startBatch(); //…executestatementsinbetween sqlMap.executeBatch(); 当调用endBatch()方法时,所有的批处理语句将通过JDBCDriver来执行。 代码例子 例子1: 执行update(insert,update,delete) sqlMap.startTransaction(); Productproduct=newProduct(); product.setId (1); product.setDescription(“ShihTzu”); introws=sqlMap.insert(“insertProduct”,product); sqlMmitTransaction(); 例子2: 查询成对象(select) sqlMap.startTransaction(); Integerkey=newInteger (1); Productproduct=(Product)sqlMap.queryForObject(“getProduct”,key); sqlMmitTransaction(); 例子3: 用预赋值的结果对象查询成对象(select) sqlMap.startTransaction(); Customercustomer=newCustomer(); sqlMap.queryForObject(“getCust”,parameterObject,customer); sqlMap.queryForObject(“getAddr”,parameterObject,customer); sqlMmitTransaction(); 例子4: 查询成对象List(select) sqlMap.startTransaction(); Listlist=sqlMap.queryForList(“getProductList”,null); sqlMmitTransaction(); 更多详细资料请参照: http: //ibatis.apache.org/ 第二章Ibatis生成工具Abator 简介: Abator是一款ibatis代码生成工具,现在已经有abatorforeclipse版本的eclipse插件可供下载。 简单易用,能完成绝大部分的代码,和xml配置生成,生成后的代码只需要稍作修改即可使用,很适合于快速建模开发,能从一定程度上提高开发效率。 使用方法: 下载abator最新版,并保存到工程的lib目录中。 编写abatorConfig.xml设置好生成器初始化配置。 在命令行环境下执行java-jarabator.jar\temp\abatorConfig.xmltrue根据配置文件生成java实体,tools类,和绑定的sqlmap映射文件。 生成过程中可以根据实际情况决定是否生成sqlmap,model类,和dao数据访问对象类,并
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ibatis 开发 学习 总结