- 浏览: 1051434 次
- 性别:
- 来自: 郑州
文章分类
- 全部博客 (605)
- 数据挖掘 (22)
- spring (40)
- 工具使用 (39)
- java (137)
- JavaScript (40)
- webwork (12)
- web (120)
- 资源 (7)
- SSH (5)
- oracle (20)
- J2ME (1)
- 环境配置 (37)
- 项目管理 (29)
- mysql (14)
- struts (4)
- 项目总结 (27)
- ibatis学习 (33)
- 学习计划 (2)
- 缓存 (7)
- 重构 (3)
- Android (1)
- jquery (12)
- UML (3)
- 用户体验 (4)
- 习惯 (7)
- sakai (1)
- urlrewrite (4)
- rss (5)
- C plus plus (5)
- 算法 (5)
- 海量数据处理 (7)
- office(word、excel) (1)
- 面试题 (3)
- solr (8)
- 大数据 (2)
最新评论
-
hujin19861102:
截图看不见,最后一个webwrok的配置看不见
Ext+Webwork+Json 实现分页表格查询效果 -
蜗牛笔:
弱弱的问一句,要是分出来的词在词典中没有,那么两部分的pos- ...
ICTCLAS 中科院分词系统 -
weipeng1986:
授人予鱼不如授人予鱼,我想问你的是你是怎么总结的。比如第四种情 ...
JAVA中字符串连接效率的测试 -
xiaoqiang2008:
执行两次的原因是什么,好像楼主没弄清楚啊!是不是在web.xm ...
关于Spring中用quartz定时器在定时到达时同时执行两次的问题 -
Kent_Mu:
...
ibatis-dynamic的用法
ibatis配置详解
ibatis与hibernate都是持久层的额技巧框架,这里看看ibatis的配置:作为自己以后的参考:
ibstis的配置重要由两种文件,
(一)有关项目标总体配置,如衔接的数据源,衔接池,缓存等的配置,也即sqlmapconfig.xml文件的配置。
(二)sqlmap.xml文件的配置,也即对象与表的操作映射的配置。
下面分两个部分进行记载
第一部分 sqlmapconfig.xml
在这个文件中总共的构造如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<!-- 这里进行文件的注释阐明 -->
<properties resource=""> ------->在这里将项目(工程)的所有资源文件包括进来,将相对与src路径的资源文件的路径以及文件名包括进来
<settings cacheModelsEnabled="true" --->全局把持sqlMapClient的缓存
enhancementEnabled="true" --->全局把持运行时字节码加强,优化javabean的属性性能
lazyLoadingEnabled="true" --->延迟加载
errorTracingEnabled="true"
maxRequests="32" ---->同时履行sql语句的最大线程数,通常大小是maxTransactions的10倍,并且总是大于maxTransactions和maxSessions的总和。减小这个值能够进步性能。
maxSessions="10"
maxTransactions="5"
useStatementNamespaces="false" --->是否启动全局的sqlmap名字空间。假如启动则利用时,必需加上名字空间:queryForObject(sqlMap的名字空间.statementName)
/> --------->这个节点是设置工程的总体性能,依据名称来设置
<typeAlias alias="person" type="com.Jdnis.ibatis.model.Person" />
----->这个节点是将长的路径名等用短的进行替换,也就是用上面的person来代表右边的person类
<transactionManager type="JDBC"> -->type指定事务治理器:JDBC,JTA,EXTERNAL,三者的差别后面再讲到
<dataSource type="SIMPLE"> -->type值由:SIMPLE,DBCP,JNDI三者的应用后面再讲
<property name="JDBC.Driver" value="com.mysql.jdbc.Driver" />
<property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost/person" />
<property name="JDBC.Username" value="root" />
<property name="JDBC.Password" value="root" />
<property name="Pool.MaximumActiveConnections" value="10" />
<property name="Pool.MaximumIdleConnections" value="5" />
<property name="Pool.MaximumCheckoutTime" value="120000" />
<property name="Pool.TimeToWait" value="500" />
<property name="Pool.PingQuery" value="select 1 from sample" />
<property name="Pool.PingEnabled" value="false" />
<property name="Pool.PingConnectionsOlderThan" value="1" />
<property name="Pool.PingConnectionsNotUsedFor" value="1" />
</dataSource>
</transactionManager>
------->这个节点是来配置数据源,数据库衔接等等信息的。
<sqlMap resource="com/neusoft/ibatis/map/person.xml" />
-->将体系中的对象与数据库表的映射文件都包括进来上面采取的时相对路径,当然也可以用尽对路径:<sqlmap url="file:///C:/config/person.xml"
</sqlMapConfig>
第二部分:sqlmap.xml映射文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="Person">
<!-- 注释阐明 -->
<cacheModel id="personCache" type="LRU">
<flushInterval hours="24"/>
<property name="size" value="1000"/>
</cacheModel>
<typeAlias alias="person" type="com.Jdnis.ibatis.model.Person" />
<parameterMap id="personParam" class="person">
<parameter property="id"/>
......
</parameterMap>
<resultMap id="personResult" class="person">
<result property="id" column="PER_ID"/>
......
</resultMap>
<statement id="insertPerson" parameterClass="person">
INSERT INTO persons VALUES(#id#,#firstName#,#lastName#,#birthDate#,#weight#,#height#)
</statement>
其他<statement>,<insert>,<update>,<select>,<delete>,<procedure>
</sqlMap>
注解:
<1>statement
属性:id(名称),parameterClass(输进参数的类型),resultClass(输出参数的类型),parameterMap(name of parameterMap),resultMap(name of reaultMap),cacheModel(name of cacheModel),其中只有一个必选属性:id
statement 的体时sql语句,当sql有特别字符时,将它放进CDATA块中如:<![CDATA[select * from person where PER_D>#id#]]>
<2>主动天生主键
通过<insert>子元素<selectKey>来支撑主动天生的键值,例如:
----对于oracle
<insert id="insertPerson-Oracl" parameterClass="person">
<selectKey resultClass="int" keyProperty="id">
SELECT STOCKIDSEQUENCE.NEXTVAL AS ID FROM DUAL
</selectKey>
insert into
PERSON(PER_ID,PER_FIRST.....)
values(#id#,#firstName#....);
</insert>
--->对于sqlServer
<insert id="insertPerson-sqlServer" parameterClass="person">
insert into
PERSON(PER_FIRST.....)
values(#firstName#....);
<selectKey resultClass="int" keyProperty="id">
SELECT @@IDENTITY AS ID
</selectKey>
</insert>
<3>存储进程
<parameterMap id="swapParameters" class="map">
<parameter property="email1" jdbcType="varchar" javaType="java.lang.String" model="INOUT"/>
<parameter property="email12" jdbcType="varchar" javaType="java.lang.String" model="INOUT"/>
</parameterMap>
<procedure id="swapEmailAddresses" parameterMap="swapParameters">
{call swap_email_addres(?,?)}
</procedure>
<4>parameterClass 输进参数的类类型
<5>resultClass 输出参数的类类型
<6>parameterMap
用到预处置的PreparedStatement,将要进行预处置的数据,先放到parameterMap元素中,接着引用parameterMap元素:例如:
<parameterMap id="insert-person-param" class="person">
<parameter property="id"/>
<parameter property="firstName"/>
<parameter property="lastName"/>
<parameter property="birthDate"/>
<parameter property="weight">
<parameter property="height"/>
</parameterMap>
<statement id="insertPerson" parameterMap="insert-person-param">
insert into person values(?,?,?,?,?,?);
</statement>
<7>resultMap成果映射到预先定义的resultMap中
<resultMap id="get-person" resultClass="person">
<result property="id" column="PER_ID"/>
<result property="firstName" column="PER_FIRST_NAME"/>
......
</resultMap>
<statement id="getPerson" resuleMap="get-person">
select * from person
<statement>
<8>cacheModel定义查询缓存
<cacheModel id="person-cache" implementation="LRU">
<flushInterval hours="24">
<flushOnExecute statement="insertPerson"/>
<flushOnExecute statement="updatePerson"/>
<flushOnExecute statement="deletePerson"/>
......
<property name="size" value="1000"/>
</cacheModel>
<statement id="getPerson" parameterClass="int" cacheModel="person-cache">
<![CDATA[select * from person where PER_ID=#id#]]>
</statement>
http://blog.sina.com.cn/s/blog_5e0d59fb0100q2kx.html
发表评论
-
list in传参 与批量插入 批量更新
2017-04-01 10:48 817传入一个map的参数,map里有一个tenantIds的Lis ... -
ibatis in ##的问题
2012-11-02 13:25 854http://www.hake.cc/a/biancheng/ ... -
ibatis缓存强制刷新与命中率
2012-10-19 19:06 1393缓存强制刷新: // spring注入 private Sq ... -
数据日志记录讨论
2011-10-26 18:51 952详情见附件中的PPT -
Ibatis的类型处理器TypeHandler解析
2011-10-24 16:28 3327原文来自: http://blog.csdn.net/lovi ... -
ibatis mysql 字段 tinyint(1) map应用要小心
2011-10-20 18:18 4002http://www.mysqlab.net/docs/ref ... -
spring+ibatis注解方式注入
2011-10-15 17:24 1033http://www.cnblogs.com/archie20 ... -
webwork+spring+ibatis注解培训文档
2011-08-15 17:26 1396今天整理了 spring 注解的使用,主要是结合公司 ... -
ibatis知识点收藏
2011-07-08 23:11 9171. 原来如此,所以在遍历之前要设置被跌代对象 h ... -
iBATIS自动生成主键
2011-07-08 22:50 997我们在数据库插入一条 ... -
ibatis配置log4j输出sql语句等日志信息
2011-07-08 22:47 1607总结步骤如下: 建立一个log4j.properties文 ... -
iBATIS一对多/多对多N+1问题解决方案
2011-07-08 22:30 1209对于iBATIS一对多/多对多的问题,传统的办法是在一对多/多 ... -
强制刷新Ibatis中的缓存(OSCache)
2011-07-08 22:21 1450持久层使用Ibatis,并开启动缓存 后台画面可用如下代码强制 ... -
让sqlmap文件 "继承" 起来
2011-07-08 22:18 1451多个项目中使用ibatis , 和数据库表对应的 sqlmap ... -
Ibatis比较少人使用的配置语法
2011-07-08 22:12 1653简单来说,ibatis3虽然没有ognl,不过也支持基本的表达 ... -
ibatis查询返回java.util.HashMap结果列表
2011-07-08 22:00 8211DAO的实现类中的代码: Java代码 ... -
ibatis使用总结(转)
2011-05-27 23:21 1559SqlMap的配置是iBatis中应 ... -
ibatis配置文件的namespace
2011-05-27 10:20 2907ibatis的配置文件中有一个命名空间的属性,如<sql ... -
ibatis配置多表关联(一对一、一对多、多对多)
2011-05-27 08:41 1351iBatis的多表关联。 ibatis的表关联,和数据库语句 ... -
ibatis 调用存储过程(2)
2011-05-26 18:18 1173http://blog.csdn.net/fy_kenny/a ...
相关推荐
### ibatis配置文件详解 #### 一、ibatis概述 ibatis,又称MyBatis,是一种优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。ibatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。ibatis可以...
### Ibatis配置详解 1. **全局配置文件(ibatis-config.xml)** 全局配置文件是Ibatis系统的起点,它包含了数据源、事务管理器、插件、类型别名等整体设置。例如: ```xml <!DOCTYPE configuration PUBLIC "-/...
《log4j与iBatis配置详解》 在软件开发中,日志管理和数据库操作是两个至关重要的环节。Log4j作为Java世界里最流行的日志框架之一,它提供了强大的日志记录功能,帮助开发者追踪应用程序运行过程中的信息、警告、...
**IBATIS 配置详解** IBATIS 是一款优秀的持久层框架,它为Java应用程序提供了灵活的数据库访问层。它的主要目标是简化数据库操作,将SQL与Java代码分离,从而实现更高效的数据库管理和维护。在本教程中,我们将...
SqlMap的配置是iBatis中应用的核心。这部分任务占据了iBatis开发的...Sql Map配置文件是iBatis配置的核心,从数据库连接到执行SQL时使用的sqlMap文件都是通过此文件中的配置提供给框架的,它通常命名为sqlMapConfig.xml
### ibatis配置文件、映射文件详解 #### 1. SQL Map Config 文件详解 在ibatis框架中,`sqlMapConfig.xml`是一个非常重要的配置文件,它主要用于设置ibatis的全局配置信息,包括数据库连接信息、环境配置以及其它...
**Ibatis基础知识详解** Ibatis,全称MyBatis,是一个优秀的开源持久层框架,它支持定制化SQL、存储过程以及高级映射。在Java应用中,Ibatis可以帮助开发者将数据库操作与业务逻辑分离,从而简化开发工作,提高代码...
#### 三、ibatis配置详解 在ibatis中,配置文件通常包括`sqlmap`、`datasource`、`settings`等元素,下面详细介绍这些配置项的作用: ##### 1. SQL Map配置 - ****:用于定义和引用属性值,可以在配置文件中使用...
#### 二、ibatis配置文件详解 ibatis的配置文件主要包括三部分:`SqlMap.properties`、`SqlMapConfig.xml` 和 `Student.xml`。下面将分别对这三个文件进行详细介绍。 ##### 1. SqlMap.properties 文件 `SqlMap....
### Spring与iBatis整合详解 #### 一、前言 在Java企业级应用开发中,Spring框架以其强大的依赖注入(DI)和面向切面编程(AOP)能力深受开发者喜爱,而iBatis(现更名为MyBatis)作为一款优秀的持久层框架,通过...
SqlMapConfig.xml是iBATIS的核心配置文件,它定义了全局的设置和数据源信息,使得整个系统能够正确地运行和管理SQL映射。下面我们将详细解析这个配置文件的各个部分。 首先,配置文件的开头是XML声明和DTD定义,...
#### 三、ibatis配置详解 ibatis的配置主要通过XML文件完成,其中最重要的文件是`sqlMapConfig.xml`,它包含了数据源、事务管理器等全局配置信息。此外,每个具体的数据库操作都通过单独的Mapper XML文件定义。 - *...
### Struts + Spring + iBatis 配置详解 #### 一、概述 在实际的软件开发项目中,为了提高代码的复用性与维护性,通常会采用一系列的框架来构建应用程序。其中,Struts、Spring 和 iBatis 是三个非常流行且互补的...
iBatis 配置详解 iBatis 的配置需要特别注意,因为这关系到 SQL 映射文件的加载以及后续的数据操作。具体的配置内容会在后续的 Java 文件中体现。 #### 五、总结 通过以上步骤,我们可以有效地将 Spring 3.0 与 ...
#### 三、iBatis配置详解 - **Settings节点**:定义全局设置,如是否启用缓存、是否使用字节码增强机制、是否启用延迟加载等。 - **transactionManager节点**:定义iBatis的事务管理器类型,可以选择JDBC、JTA或...