iBatis SqlMap文件配置
来源:互联网 发布:华为悦盒电信网络设置 编辑:程序博客网 时间:2024/05/16 20:30
Sql Map配置文件是iBatis配置的核心,从数据库连接到执行SQL时使用的sqlMap文件都是通过此文件中的配置提供给框架的,它通常命名为sqlMapConfig.xml。
一个sqlMapConfig.xml的例子:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"><sqlMapConfig> <properties resource="resource/connection-configs.properties" /> <settings useStatementNamespaces="true"/> <!-- Configure a built-in transaction manager. If you're using an app server, you probably want to use its transaction manager and a managed datasource --> <transactionManager type="JDBC" > <dataSource type="SIMPLE"> <property name="JDBC.Driver" value="${driver}"/> <property name="JDBC.ConnectionURL" value="${url}"/> <property name="JDBC.Username" value="${username}"/> <property name="JDBC.Password" value="${password}"/> </dataSource> </transactionManager> <sqlMap resource="resource/sqlMap.xml"/></sqlMapConfig>
下面介绍下配置文件中的元素
1.<properties>
它在主配置文件外提供一个键/值对应表,是一个properties文件,它可以让sqlmap配置文件更加灵活。上面例子中的connection-configs.properties文件的内容:
driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/cyhusername=rootpassword=root中间的键值就在运行时替换了了下面的<dataSource>元素下的<property>中${driver}等值。
2.<settings>
全局配置选项,有以下属性:
lazyLoadingEnabled:延迟加载,true或者false,默认true
cacheModelsEnabled:
高度缓存,将最近使用过的数据存放在内存中,true或者false
enhancementEnabled:
是否使用cglib中已优化的类来提高延迟加载的性能,true或者false,默认true
useStatementNamespaces
在使用已映射语句时,是否使用限定名,true或者false,默认false
假如有个为Acount的SQL映射,包括insert的映射语句。启用useStatementNamespaces时,需要使用Acount.insert来调用这条sql语句。
假如<sqlMapConfig>下有多个<sqlMap resource="resource/sqlMapxxx.xml"/>这样的配置文件,每个文件中的sql元素id都一样,
<sqlMap resource="resource/sqlMap1.xml"/> <sqlMap resource="resource/sqlMap2.xml"/></sqlMapConfig>sqlMap1.xml:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"> <select id="find_key" resultClass="hashmap"> ...... </select>......sqlMap2.xml:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"> <select id="find_key" resultClass="hashmap"> ...... </select>......
为了防止sql语句的id命名冲突,可以设置useStatementNamespaces参数为true,并且为每个sqlmap文件指定不同的命名空间。
sqlMap1.xml:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"><sqlMap namespace="com.test.namespace1"> .....<select id="find_key" resultClass="hashmap"> ...... </select>.....sqlMap2.xml:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"><sqlMap namespace="com.test.namespace2"> .....<select id="find_key" resultClass="hashmap"> ...... </select>.....
下面3个参数已经废弃,可以不用考虑手动配置:
maxRequests
request:对数据库的一次SQL操作。默认值512
maxSessions:最大会话数
会话是一种线程级机制,用于跟踪一组相关事务和请求的信息,默认值128.
maxTransactions:
最大活动事务数,默认值32
3.<TypeAlias>
用于定义别名,可以通过它用简单的字符替代全限定类名。
iBatis框架为若干类型定义了别名。
一些常用的:
事务管理器:
JDBC替代com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransactionConfig
JTA,EXTERNAL和上面类似
数据类型:
string替代java.lang.String
hashmap替代java.util.HashMap
其他类似
数据源工厂类型:
SIMPLE替代com.ibatis.sqlmap.engine.datasource.SimpleDataSourceFactory
DBCP,JNDI和上面类似
4.<transactionManager>
用于处理事务,type属性用于指定事务管理器。(JDBC,JTA,EXTERNAL)它的子元素:
<dataSource>:
指定DataSourceFactory实现类,iBatis用这个实现类来创建实际的DataSource,它有3个可选的属性:SIMPLE,DBCP,JNDI
SIMPLE:简单数据源工厂,用于配置内置有简单连接池的数据源,除了实际的jdbc驱动程序外,该数据源工厂需要的其他东西都包含在iBatis框架中。
DBCP:用于使用Jakarta Commons数据库连接池实现。
JNDI:用于允许iBatis共享通过JNDI定位的基于容器的数据源。
<dataSource>的子元素:<property>,它定义了数据库连接的配置
5.<typeHandler>
类型处理器,将数据从数据库的类型转换为应用程序中的数据类型。
6.<sqlMap>
指定SQL映射文件的位置
元素有2个属性,resource和url
resource相对于类路径根目录的路径。
0 0
- iBatis SqlMap文件配置
- ibatis 中sqlMap配置
- ibatis sqlmap配置
- IBatis配置sqlmap.config
- iBatis SqlMap的配置
- Ibatis SqlMap文件(转)
- ibatis : sqlMap 的一般配置
- iBATIS SQLMap配置Demo浅析
- iBATIS SQLMap配置Demo浅析
- ibatis中SqlMap的配置
- iBATIS SQLMap配置Demo浅析
- iBatis SqlMap 的配置总结
- iBatis之SqlMap配置总结
- iBatis SqlMap的配置总结
- iBatis SqlMap的配置总结
- iBatis SqlMap的配置总结
- iBatis SqlMap的配置总结
- iBatis SqlMap的配置总结
- java 实现查询一个数据表中记录总数
- 纯C语言:21根火柴源码
- Linux系统错误、对应的值以及解释
- Oracle DataGuard数据备份方案详解
- QTextEdit 总结 - 一 水
- iBatis SqlMap文件配置
- MongoDB使用与深度剖析长篇连载
- 英雄会第二届在线编程大赛·CSDN现场决赛:三元组的数量【水题】
- touch
- 全排序
- LevelDB长篇连载
- [Jweb] Servlet 与 Jsp 张志宇总结重要知识点
- MySQL深度剖析
- 《Thinking in Java》中利用Map测试Random类的随机性实例