zoukankan      html  css  js  c++  java
  • ibatis学习笔记 全新时代

    Ibatis支持.net开发。

    sqlMap文件

    <alias> <resultMaps> <statements>

    $ #符号

    Mobile like '%$mobile%' ->mobile like '%'+#mobile#+'%'

    ApplicationContext-ibatis.xml

    1. 数据源配置dataSource
    2. sqlMapClient 关联sqlmap-config.xml和数据源dataSource
    3. dao bean配置,关联sqlMapClient

    sqlMapClient架构

    设置配置,如缓存模式(cacheModelsEnabled 缺省true),增加模式(字节码增强 enhancementEnabled 缺省false),延迟加载(lazyLoadingEnabled 缺省true),错误跟踪,最大线程数(maxRequests),最大会话数(maxSession),最大事务数(maxTransaction),使用命名空间(useStatementNamespaces 缺省false 例如:queryForObject("sqlMapName.statementName"); )。

    maxRequests > maxSession,maxTransactions, 缺省512

    maxSession >= maxTransactions && maxSession < maxRequest 缺省128

    maxTransactions <= maxSession && maxTransaction <远远小于 maxRequest 缺省32

    数据源配置参数说明:

    Pool.MaximumActiveConnections: 数据库连接池可维持的最大容量

    Pool.MaximumIdelConnections: 数据库连接池中允许的挂起(idle)连接数

    SIMPLE模式:

    Pool.MaximumCheckoutTime: 连接被某个任务所允许占用的最大时间。

    Pool.TimeToWait: 设定线程所允许等待的最长时间

    Pool.PingQuery: select 1 from t_user

    Pool.PingConnectionsOlderThan: 对持续连接时间超过设定值的连接进行检测。

    Pool.PingConnectionsNotUsedFor: 对空闲超过设定值的连接进行检测。

    1. 关联sqlMap xml文件

    sqlMap文件

    1.<typeAlias>

    2.resultMap  <result />

    3.parameterMap <parameter />

    4.select,insert,update,delete,statement,sql

    <dynamic> 动态SQL,分页查询。

    isEmpty,isEqual,isGreaterEqual,isGreaterThan,isLessEqual,isLessThan,isNotEmpty,isNotEqual,isNotNull,isNull

    </dynamic>

    5.procedure调用存储过程,优点:减少sql网络传输。对业务关系复杂的sql语句的封装,sql语句以程序块的形式被封装在数据库中,写好之后,无论是java,还是.net,抑或其他开发语言,可以像使用sql语句那样随意的调用,这就是数据库开发。

    Jdbc: CallableStatement cs  = ct.prepareCall("{call paging_pro(?)}");

    cs.setString(1, "emp");

    cs.registerOutParameter(2,oracle.jdbc.OracleTypes.INTEGER); //注册输出类型。

    <parameterMap class="map" id="swap">

                  <parameter property="nameStr" javaType="java.lang.String" jdbcType="varchar" mode="IN"/>

                  <parameter property="returnid" javaType="java.lang.Integer" jdbcType="int" mode="OUT"/>

           </parameterMap>

           <procedure id="insertProcedure" parameterMap="swap">

                  {call paging_pro(?,?)}

           </procedure>

    特殊字符的处理:写在<![CDATA[    ]]>

    缓存与查询

    LRU: 最近最少使用算法

    FIFO: 先进先出队列

    LFU: 最近最不常用调度算法

    OPT: 根据未来实际使用情况将未来的近期里不用的页替换出去,这种算法是用来评价期它替换算法好坏的标准,不可能实现。

    <cacheModel type="LRU" id="ttt">

    <flushInterval hours="24" />

    <flushOnExecute statement="saveT" />

    <flushOnExecute statement="modifyT" />

    <flushOnExecute statement="deleteT" />

    <property name="size" value="1000" />

    </cacheModel>

    <select … cacheModel="ttt">

     

    sqlMapConfig.xml 中的异同.

     

    iBATIS_v1

    iBATIS_v2

    iBATIS_v3

    DOCTYPE

    sql-map-config.dtd

    sql-map-config-2.dtd

    ibatis-3-config.dtd

    configuration标签

    <sql-map-config>

    </sql-map-config>

    <sqlMapConfig>

    </sqlMapConfig>

    <configuration>

    </configuration>

    sqlMap标签

    <sql-map recource../>

    <sqlMap recource../>

    <mappers>

    <mapper recource.. />

    </mappers>

     

    sqlMap 映射中的异同

     

    iBATIS_v1

    iBATIS_v2

    iBATIS_v3

    DOCTYPE

    sql-map.dtd

    sql-map-2.dtd

    ibatis-3-mapper.dtd

    sqlMap标签

    <sql-map>

    </sql-map>

    <sqlMap>

    </sqlMap>

    <mapper>

    </mapper>

    statement标签

    <mapped-statement>

    </mapped-statement>

    <select></select>

    <update></update>

    <statement></>…

    <select></select>

    <update></update>

     

    参数表示

    #id#

    #id#

    #{id}

     

    sqlMap API的异同

     

    iBATIS_v1

    iBATIS_v2

    iBATIS_v3

    执行对象

    SqlMap

    SqlMapClient

    SqlSession

    得到执行

    XMLSqlMapBuilder->

    builderSqlMap

    SqlMapClientBuilder->

    builderSqlMap

    SqlSessionFactory->

    openSession

    执行

    excuteQueryForObject

    queryForObject..

    queryForList…

    update…

    selectOne…

    selectList…

    update…

    http://www.iteye.com/topic/847698

     

  • 相关阅读:
    完整安装IIS服务
    IIS支持json、geojson文件
    C# ODP.Net oracle数据库操作 支持不安装客户端
    RabbitMQ —— spring标签整合实现(API介绍)
    RabbitMQ —— spring标签整合实现
    RabbitMQ —— spring整合发送异步消息
    RabbitMQ —— spring整合发送同步消息
    RabbitMQ Spring 相关类信息
    RabbitMQ 消息流转示意图
    RabbitDemo —— 延迟队列(在消息上设置TTL)
  • 原文地址:https://www.cnblogs.com/simpledev/p/3059881.html
Copyright © 2011-2022 走看看