ibatis开发和学习总结文档格式.docx

上传人:b****2 文档编号:15055061 上传时间:2022-10-27 格式:DOCX 页数:10 大小:153.90KB
下载 相关 举报
ibatis开发和学习总结文档格式.docx_第1页
第1页 / 共10页
ibatis开发和学习总结文档格式.docx_第2页
第2页 / 共10页
ibatis开发和学习总结文档格式.docx_第3页
第3页 / 共10页
ibatis开发和学习总结文档格式.docx_第4页
第4页 / 共10页
ibatis开发和学习总结文档格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

ibatis开发和学习总结文档格式.docx

《ibatis开发和学习总结文档格式.docx》由会员分享,可在线阅读,更多相关《ibatis开发和学习总结文档格式.docx(10页珍藏版)》请在冰豆网上搜索。

ibatis开发和学习总结文档格式.docx

更多详细请参考:

第三章用eclipse开发ibatis应用8

配置ibatis开发环境:

8

构建应用框架:

第四章开发实例8

编写model类:

Person.java8

编写数据库脚本:

Person.sql9

编写ibatis的数据库初始配置:

SqlMapConfigExample.xml9

Ibatis配置调用的属性文件;

SqlMapConfigExample.properties10

sqlmap的一对一映射文件:

Person.xml10

绑定sqlmap配置并创建pojo实例的工具类:

11

使用工具类并结合ibatis的sqlmap方法实现的查询:

第一章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"

"

sqlMapConfig>

propertiesresource="

maps/SqlMapConfigExample.properties"

/>

settings

cacheModelsEnabled="

true"

enhancementEnabled="

lazyLoadingEnabled="

maxRequests="

32"

maxSessions="

10"

maxTransactions="

5"

useStatementNamespaces="

false"

/>

typeAliasalias="

order"

type="

testdomain.Order"

transactionManagertype="

JDBC"

>

dataSourcetype="

SIMPLE"

propertyname="

JDBC.Driver"

value="

${driver}"

JDBC.ConnectionURL"

${url}"

/dataSource>

/transactionManager>

sqlMapresource="

examples/sqlmap/maps/Person.xml"

/sqlMapConfig>

sqlMapid=”Product”>

selectid=”getProduct”parameterClass=”com.ibatis.example.Product”

resultClass=”com.ibatis.example.Product”>

select

PRD_IDasid,

fromPRODUCT

wherePRD_ID=#id#

/select>

/sqlMap>

配置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)

Integerkey=newInteger

(1);

Productproduct=(Product)sqlMap.queryForObject(“getProduct”,key);

例子3:

用预赋值的结果对象查询成对象(select)

Customercustomer=newCustomer();

sqlMap.queryForObject(“getCust”,parameterObject,customer);

sqlMap.queryForObject(“getAddr”,parameterObject,customer);

例子4:

查询成对象List(select)

Listlist=sqlMap.queryForList(“getProductList”,null);

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数据访问对象类,并

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 其它语言学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1