Ibatis资料

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 语句的最大现成数,大于这个值的线程将阻塞直到另一个线程执行完成,通常这个数值应该是 maxtransction 10 倍,并且大于 maxtranstion maxsession ,减少这个数可以提高性能
maxSessions="10" // 同一活动时间内的最大 session 的数, maxtranstion<maxsession<maxrequest, 较少可以降低内存的使用
maxTransactions="5" // 同时进入 sqlmapclient startTranscation 的最大数量,减少这个数可以提高性能
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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值