Ibatis资料

原创 2006年06月07日 10:08:00
Ibatis已经提提升为apache的开源一级项目,是作为j2ee持久层框架实现的一个开源的项目。有两个版本,一个是forjava,一个是fornet。
本身还有一个jpetstore的实例,使用了struts+ibatis来实现
http://www.ibatis.org
2          Ibatis-dao
Dao-database access object 数据库访问对象,是业务层和持久层的中间层,提供了访问数据库的接口,而不用考虑具体的持久层是用什么来实现的。。
Dao.xml
<daoConfig>
       <context>
              <transactionManager type="SQLMAP">
                     <property name="SqlMapConfigResource" value="com/aspire/ibatis/persistence/sqlmapdao/sql/sqlMapConfig.xml" />
              </transactionManager>
              <dao inter implementation="com.aspire.ibatis.persistence.sqlmapdao.UserSqlMapDao" />
       </context>
</daoConfig>
目录结构
       Com.aspire.ibatis //存放dao.xml以及daoConfig.java文件
      
       Com.asprie.ibatis.iface //存放dao的接口文件
       Com.aspire.ibatis.sqlmapdao//实现了dao接口文件类
       baseSqlMapDao extends SqlMapDaoTemplate
3          Ibatis-sqlmap
SqlmapApi能使开发人员很轻易的将javabean,parameter,等映射成为perparedstatement的参数,并轻松返回result结果集合
Sqlmap的流程图
3.1       sqlmapconfig。Xml配置文件
<sqlmapconfig>
         <proerties>//用来在配置文件中查找标准的java属性文件name=value
</sqlmapconfig>.
<settings  //用来配置和优化sqlmapclient的实例的选项
cacheModelsEnabled="true" //全局性的启动或者关闭sqlmapclient的所有cache
enhancementEnabled="true" //全局性的启动或者关闭运行时字节码增强的功能,建议true
lazyLoadingEnabled="true" // 全局性的启用或者关闭sqlmapclient的延迟加载
maxRequests="32" //同时执行sql语句的最大现成数,大于这个值的线程将阻塞直到另一个线程执行完成,通常这个数值应该是maxtransction10倍,并且大于maxtranstionmaxsession,减少这个数可以提高性能
maxSessions="10" // 同一活动时间内的最大session的数,maxtranstion<maxsession<maxrequest,较少可以降低内存的使用
maxTransactions="5" //同时进入sqlmapclientstartTranscation的最大数量,减少这个数可以提高性能
useStatementNamespaces="false"//启用本属性必须使用全局限定名来引用mappedstatement
 />
<typealias> //别名
在sqlmap中预定义了别名
JDBC com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransactionConfig
JTA com.ibatis.sqlmap.engine.transaction.jta.JtaTransactionConfig
EXTERNAL com.ibatis.sqlmap.engine.transaction.external.ExternalTransactionConfig
SIMPLE com.ibatis.sqlmap.engine.datasource.SimpleDataSourceFactory
DBCP com.ibatis.sqlmap.engine.datasource.DbcpDataSourceFactory
JNDI com.ibatis.sqlmap.engine.datasource.JndiDataSourceFactory
 
<transactionManager> //用来配置事务管理,三种事务管理的类型JDBC,JTA,EXTERNAL
<datasource>//提供三种datasourceFactory
1.      SIMPLE
基于ibatis的simpledatasource连接池实现
JDBC.Driver
JDBC.connectionURL
JDBC.UserName
JDBC.Password
Pool.MaximunActionConnections
Pool.MaximunIdleConnections
Pool.MaxnumCheckOutTime
Pool.TimeToWait
Pool.PingQuery
Pool.PingEnabled
Pool.PingConnectionsOlderThan
Pool.PingConnectionsNotUserdFor
 
2.      DBCP
JDBC.Driver
JDBC.ConnectionURL
JDBC.Username
JDBC.Password
Pool.MaximumActionConections
Pool.MaximumIdleConnections
Pool.MaximumWait
 
3.      JNDI
 
</datasource>
</transactionmanager>
<sqlmap resource=””> //指定sqlmap所在的路径
3.2       Sqlmap
Parameterclass
Parametermap
Inline parameter
如果在内镶的parameter中指定null的替代值,必须指定类型#parameter:type:替代值#
Resultclass
Resultmap
       Property对应的javabean的get方法
       Column对应的数据库的字段名
       columnIndex用户resultset赋值费javabean字段的顺序号
jdbctype resultset中用于赋值javabean的数据库字段类型
javatype
nullvalue
select用于描述对象之间的关系
cacheModel /定义了mappedstatement的缓存方案
       readonly标识缓存是否可修改
       serialize标识可读写缓存
       缓存的类型:MEMORY,LRUFIFO,OSCACHE
<select resultClass=”xml” xmlResultName=”root”>//将返回一个xml文档,root是根节点
3.3       动态mapstatement
<dynamic>
Prepend的父的属性可以覆盖子的prepend的属性,使用$parameter$
二元条件
       <isEqual>
       <isNotEqual>
       <isGreaterThan>
       <isGreaterEquals>
       <isLessThan>
       <isLessEqual>
一元条件
       <isPropertyAvaliable>
<isNotPropertyAvaliable>
<isNull>
<isNotNull>
<isEmpty>
<isNotEmpty>
 Other
           <isParameterPresent>
           <isNotParameterPresent>
<iterate>
3.4       sqlmapApi
queryforList的三个版本
1.直接返回查询结果
2.可以允许跳过结果的数目,以及返回结果的最大数目
3.可以让你使用结果对象,而不是数据表的行和列来逐行的处理结果集,
4          Others
Log4j来配置ibatis
Log4j.rootLogger=ERROR,stdout
 
Log4j.logger.com.ibatis=DEBUG
Log4j.logger.com.ibatis.common.jdbc.SimDataSource=DEBUG
Log4j.logger.com.ibatis.Common.jdbc.ScriptRunner=DEBUG
Log4j.logger.com.ibatis.sqlmap.engine.impl.sqlmapClientDelegate=DEBUG
Log4j.logger.java.sql.Connection=DEBUG
Log4j.logger.java.sql.Statement=DEBUG
Log4j.logger.java.sql.PreparedStatement=DEBUG
Log4j.logger.java.sqlResultSet=DEBUG
 
Log4j.appender.stdout=org.apache.log4j.ConsoleAppender
Log4j.appender.stdout.layout=org.apache.log4j.PatternLayOut
Log4j.appender.stdout.layout.ConversionPattern=%5p[%t]-%m%n
其他开源项目
Log4j
JMock – 用于单元测试
Junit
struts

相关文章推荐

axis2 ibatis spring简单资料

  • 2017年05月04日 11:42
  • 757KB
  • 下载

复杂对象ibatis插入,属性为list,怎么一次性插入

转自:http://mzhj.iteye.com/blog/1030359 public class PfStuffInfoVo implements Serializable { ...
  • jubincn
  • jubincn
  • 2012年04月06日 16:47
  • 6355

ibatis 学习资料

  • 2012年06月26日 09:49
  • 854KB
  • 下载

ibatis三本资料

  • 2012年10月29日 22:18
  • 711KB
  • 下载

iBatis Date类型时间丢失有关问题

在此前,遇到过使用Ibatis操作Oracle时时间精度丢失的问题,昨天又遇到JDBC操作MySQL时间字段的问 题 ,从网上看到各种式样的解释这些问题的博文/帖子,但多是雾里看花,不得要领。 ...
  • gyy823
  • gyy823
  • 2014年08月07日 12:33
  • 311

Ibatis示例资料

  • 2011年12月29日 15:40
  • 13.36MB
  • 下载

ibatis 学习资料

  • 2009年08月17日 08:52
  • 384KB
  • 下载

iBatis查询select详解

是iBatis已经映射的语句类型,就是查询了,为了配合说明,这里再介绍两个标记:和,前者用来创建一个文本片段,这些片段可以组合起来创建完整的SQL语句;后者很显然就是包含的意思了。假设我们有如下代码段...

ibatis学习资料

  • 2010年03月02日 17:11
  • 430KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Ibatis资料
举报原因:
原因补充:

(最多只允许输入30个字)