- 浏览: 577561 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (237)
- Java (48)
- Flex3 (43)
- Spring (7)
- Hibernate (7)
- 杂文 (2)
- 设计模式 (3)
- 数据库相关 (32)
- Eclipse开发环境 (10)
- C/C++ (1)
- 随笔 (1)
- 生活点滴 (2)
- Flex4 (3)
- Oracle (6)
- SQLServer (6)
- Degrafa (1)
- ActionScript (2)
- JavaScript (11)
- MySQL (8)
- 开源项目 (4)
- AspectJ (0)
- Spring Security (1)
- SSO (0)
- PV3D (2)
- JBPM (1)
- JBoss (0)
- Tomcat (5)
- Struts (1)
- WebService (2)
- 算法 (1)
- 数据结构 (1)
- POI (2)
- Lucene (2)
- 其他 (3)
- Blazeds (2)
- Alternative 3D (0)
- Ibatis (3)
- Intellij (3)
- freemaker (0)
- Maven (5)
- web (4)
- Eclipse (1)
- velocity (1)
- Linux (7)
- CXF (3)
- html (2)
- JVM (1)
最新评论
-
jpsb:
多谢楼主,问题解决,主要就是svn版本不同导致的
Eclipse 导入本地svn项目的问题 -
yycdaizi:
lanmolsz 写道无法同意楼主的说法,楼主所谓的晚捕捉就是 ...
Java异常处理原则 -
lanmolsz:
无法同意楼主的说法,楼主所谓的晚捕捉就是典型的让异常控制程序的 ...
Java异常处理原则 -
cici_new_1987:
...
Java异常处理原则 -
雁行:
倒是怀疑这个功能来着
Eclipse 导入本地svn项目的问题
转载自:http://pf-miles.iteye.com/blog/82020
iBatis学习笔记:(versions 2.2.0 and higher)
配置文件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">
<!-- Always ensure to use the correct XML header as above! -->
<sqlMapConfig>
<!-- The properties (name=value) in the file specified here can be used placeholders in this config
file (e.g. “${driver}”. The file is relative to the classpath and is completely optional. -->
<properties resource=" examples/sqlmap/maps/SqlMapConfigExample.properties " />
<!-- These settings control SqlMapClient configuration details, primarily to do with transaction
management. They are all optional (more detail later in this document). -->
<settings
cacheModelsEnabled="true"
enhancementEnabled="true"
lazyLoadingEnabled="true"
maxRequests="128"
maxSessions="10"
maxTransactions="5"
useStatementNamespaces="false"
defaultStatementTimeout="5"
statementCachingEnabled="true"
classInfoCacheEnabled="true"
/>
<!-- This element declares a factory class that iBATIS will use for creating result objects.
This element is optional (more detail later in this document). -->
<resultObjectFactory type="com.mydomain.MyResultObjectFactory" >
<property name="someProperty" value="someValue"/>
</resultObjectFactory>
<!-- Type aliases allow you to use a shorter name for long fully qualified class names. -->
<typeAlias alias="order" type="testdomain.Order"/>
<!-- Configure a datasource to use with this SQL Map using SimpleDataSource.
Notice the use of the properties from the above resource -->
<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}"/>
<property name="JDBC.DefaultAutoCommit" value="true" />
<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 ACCOUNT"/>
<property name="Pool.PingEnabled" value="false"/>
<property name="Pool.PingConnectionsOlderThan" value="1"/>
<property name="Pool.PingConnectionsNotUsedFor" value="1"/>
</dataSource>
</transactionManager>
<!-- Identify all SQL Map XML files to be loaded by this SQL map. Notice the paths
are relative to the classpath. For now, we only have one… -->
<sqlMap resource="examples/sqlmap/maps/Person.xml" />
</sqlMapConfig>
其中:
<properties>元素指定了一个标准java properties文件的位置,用classpath相对位置或URL形式指定,之后整个配置文件以及所有被包含进来的映射文件都可以用${key}形式的占位符来获取properties文件中的value值。
<settings>元素:
设置一些全局属性,如延迟加载、缓存模式等。
所有可设置属性及其说明如下:
maxRequests This is the maximum number of threads that can execute an SQL
statement at a time. Threads beyond the set value will be blocked until
another thread completes execution. Different DBMS have different
limits, but no database is without these limits. This should usually be at
least 10 times maxTransactions (see below) and should always be greater
than both maxSessions and maxTransactions. Often reducing the
maximum number of concurrent requests can increase performance.
Example: maxRequests= ”256”
Default: 512
maxSessions This is the number of sessions (or clients) that can be active at a given
time. A session is either an explicit session, requested
programmatically, or it is automatic whenever a thread makes use of an
SqlMapClient instance (e.g. executes a statement etc.). This should
always be greater than or equal to maxTransactions and less than
maxRequests. Reducing the maximum number of concurrent sessions
can reduce the overall memory footprint.
Example: maxSessions= ”64”
Default: 128
maxTransactions This is the maximum number of threads that can enter
SqlMapClient.startTransaction() at a time. Threads beyond the set value
will be blocked until another thread exits. Different DBMS have
different limits, but no database is without these limits. This value
should always be less than or equal to maxSessions and always much
less than maxRequests. Often reducing the maximum number of
concurrent transactions can increase performance.
Example: maxTransactions= ”16”
Default: 32
cacheModelsEnabled This setting globally enables or disables all cache models for an
SqlMapClient. This can come in handy for debugging.
Example: cacheModelsEnabled= ”true”
Default: true (enabled)
lazyLoadingEnabled This setting globally enables or disables all lazy loading for an
SqlMapClient. This can come in handy for debugging.
Example: lazyLoadingEnabled= ”true”
Default: true (enabled)
enhancementEnabled This setting enables runtime bytecode enhancement to facilitate
optimized JavaBean property access as well as enhanced lazy loading.
Example: enhancementEnabled = ”true”
Default: false (disabled)
useStatementNamespaces With this setting enabled, you must always refer to mapped statements
by their fully qualified name, which is the combination of the sqlMap
name and the statement name. For example:
queryForObject(“sqlMapName.statementName”);
Example: useStatementNamespaces= ”false”
Default: false (disabled)
defaultStatementTimeout (iBATIS versions 2.2.0 and later)
This setting is an integer value that will be applied as the JDBC query
timeout for all statements. This value can be overridden with the
“statement” attribute of any mapped statement. If not specified, no
query timeout will be set unless specified on the “statement” attribute of
a mapped statement. The specified value is the number of seconds the
driver will wait for a statement to finish. Note that not all drivers
support this setting.
classInfoCacheEnabled With this setting enabled, iBATIS will maintain a cache of introspected
classes. This will lead to a significant reduction in startup time if many
classes are reused.
Example: classInfoCacheEnabled= “true”
Default: true (enabled)
statementCachingEnabled (iBATIS versions 2.3.0 and later)
With this setting enabled, iBATIS will maintain a local cache of
prepared statements. This can lead to significant performance
improvements.
Example: statementCachingEnabled= “true”
Default: true (enabled)
<resultObjectFactory>元素:
指定对象生成工厂类,用于将查询结果封装成对象返回。这是可选设置,若不指定,ibatis将使用Class.newInstance()的方式生成查询结果类。对象工厂类必须实现com.ibatis.sqlmap.engine.mapping.result.ResultObjectFactory接口。
<typeAlias>元素:
用来为一些亢长的类名起“别名”,例如:
<typeAlias alias="shortname" type="com.long.class.path.Class"/>
以后就能用“shortname”来取代“com.long.class.path.Class”了。
除了自己定义别名外,iBatis框架预先定义了一些别名,以方便使用,他们是:
Transaction Manager Aliases:
JDBC com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransactionConfig
JTA com.ibatis.sqlmap.engine.transaction.jta.JtaTransactionConfig
EXTERNAL com.ibatis.sqlmap.engine.transaction.external.ExternalTransactionConfig
Data Source Factory Aliases:
SIMPLE com.ibatis.sqlmap.engine.datasource.SimpleDataSourceFactory
DBCP com.ibatis.sqlmap.engine.datasource.DbcpDataSourceFactory
JNDI com.ibatis.sqlmap.engine.datasource.JndiDataSourceFactory
<transactionManager>元素:
设置事务类型和<dataSource>元素,如上文所说,预定义的事务类型有JDBC, JTA, EXTERNAL;数据源类型有SIMPLE, DBCP, JNDI;若指定EXTERNAL或JTA,那就还有额外的属性需要设置:
<dataSource>元素:
在transactionManager元素中,定义数据源。预定义三种数据源工厂:SIMPLE, DBCP, JNDI,不过也可以自己写一个。
SIMPLE:在没有容器数据源支持的情况下使用的最简单的数据源实现,具体设置见刚才的例子。
DBCP:使用apache的DBCP数据源,ibatis框架对其直接提供支持,设置方法如下:
<transactionManager type="JDBC">
<dataSource type="DBCP">
<property name="driverClassName" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
<!-- OPTIONAL PROPERTIES BELOW -->
<property name="maxActive" value="10"/>
<property name="maxIdle" value="5"/>
<property name="maxWait" value="60000"/>
<!-- Use of the validation query can be problematic.
If you have difficulty, try without it. -->
<property name="validationQuery" value="select * from ACCOUNT"/>
<property name="logAbandoned" value="false"/>
<property name="removeAbandoned" value="false"/>
<property name="removeAbandonedTimeout" value="50000"/>
<property name="Driver.DriverSpecificProperty" value="SomeValue"/>
</datasource>
</transactionManager>
所有的设置属性请参考:http://jakarta.apache.org/commons/dbcp/configuration.html
注:以‘Driver.’开头的属性会被加入到JDBC的属性中(有些JDBC需要)。
JNDI:指定配置的JNDI数据源。设置格式:
<transactionManager type="JDBC" >
<dataSource type="JNDI">
<property name="DataSource" value="java:comp/env/jdbc/jpetstore"/>
</dataSource>
</transactionManager>
上面只是使用普通的JDBC事务,但通常设置JNDI数据源更愿意用JTA全局事务:
<transactionManager type="JTA" >
<property name="UserTransaction" value="java:/comp/UserTransaction"/>
<dataSource type="JNDI">
<property name="DataSource" value="java:comp/env/jdbc/jpetstore"/>
</dataSource>
</transactionManager>
<sqlMap>元素:
用来包含SQL映射文件或另一个配置文件,以classpath或URL的形式:
<!-- CLASSPATH RESOURCES -->
<sqlMap resource="com/ibatis/examples/sql/Customer.xml" />
<sqlMap resource="com/ibatis/examples/sql/Account.xml" />
<sqlMap resource="com/ibatis/examples/sql/Product.xml" />
<!-- URL RESOURCES -->
<sqlMap url="file:///c:/config/Customer.xml " />
<sqlMap url="file:///c:/config/Account.xml " />
<sqlMap url="file:///c:/config/Product.xml" />
发表评论
-
【转载】8张图理解Java
2015-12-23 13:44 856一图胜千言,下面图解均来自Program Creek 网站 ... -
【转载】JAVA多线程与并发学习总结
2015-12-17 13:23 971本文转载自:http://www.cnblogs.co ... -
关于MAT分析工具中的Shallow heap & Retained heap
2015-11-26 10:58 1389本文转载自:http://bjyzxxds.iteye.c ... -
触发JVM进行Full GC的情况及应对策略
2015-11-10 14:10 3203转载自:http://blog.csdn.net/chen ... -
JVM内存参数详解以及配置调优
2015-10-26 20:21 882本文转载自:http://www ... -
[转载]在线数据迁移经验:如何为正在飞行的飞机更换引擎
2015-02-25 15:49 919转载自:http://www.infoq.c ... -
java.lang.OutOfMemoryError: unable to create new native thread问题诊断
2014-10-27 18:34 618转载自:http://www.blogjava.net/l ... -
JVM调优总结 -Xms -Xmx -Xmn -Xss
2014-10-14 09:28 825本文转载自:http://unixboy.iteye.co ... -
JVM参数分析
2014-01-26 19:54 1161转载自: http:// ... -
Java的getByte()方法解析
2014-01-17 13:28 1506转载自: http://bijian1013. ... -
httpClient处理乱码
2014-01-10 12:08 800利用HttpClient模拟Http请求访问页面 ... -
Tomcat 生产服务器性能优化
2013-11-13 19:45 901转载自:http://www.oschina.net/tra ... -
JVM内存配置
2013-07-11 09:34 1291原文地址:http://vanadiu ... -
Jackson序列化和反序列化
2013-04-29 16:29 2247Jackson使用备忘 Jackson主要使用 ... -
Mysql连接异常
2013-04-29 15:47 1110在连接Mysql数据库后,查询时报错: The l ... -
浅谈SQL Server中的快照
2012-12-31 09:32 1211简介 数据库快照,正如其名称所示那样,是数据库在 ... -
使用IBM heapAnalyzer分析heap dump文件步骤
2012-12-18 21:38 298951. ... -
Spring防止重复ID命名
2012-08-17 16:34 12111、同一个spring配置文件不允许重复ID,这个不需要 ... -
Java异常处理原则
2012-02-21 16:36 8789关于异常处理的一篇文章 异常处理机制 ... -
Intellij常用快捷键收集
2012-01-04 15:22 1108Alt+回车 导入包,自动修正 Ctrl+N 查 ...
相关推荐
对于复杂场景,如多表联查、分页、存储过程等,你可以继续深入学习XML配置文件的高级用法,例如使用`<association>`, `<collection>`处理嵌套结果,使用`<resultMap>`定义复杂的映射关系等。 总的来说,iBATIS的XML...
本话题主要探讨如何自动将MySQL数据库中的表结构转换为Java实体类以及生成相应的iBatis配置文件。 首先,我们需要理解Java实体类(Entity Class)的作用。在Java应用中,实体类通常代表数据库中的表,每个属性对应...
### ibatis配置文件详解 #### 一、引言 在Java开发领域中,持久层框架是连接业务逻辑层与数据库的重要桥梁。ibatis(现已更名为MyBatis)作为一款优秀的持久层框架,提供了灵活的数据访问层支持。本文将对ibatis的...
Ibatis的主要配置文档,可以方便大家学习使用
在传统的XML配置文件中,Ibatis允许我们定义SQL语句、参数映射以及结果集映射。然而,随着Java注解的普及,Ibatis也支持使用注解来进行配置,使得代码更加简洁易读。 1. **@Select**: 这个注解用于标记一个方法,该...
"spring+ibatis配置实例"这个项目提供了一个完整的开发环境,包含所需的依赖包和标准化的项目结构,对初学者或开发者来说极具价值。 Spring是一个全面的Java应用框架,它提供了依赖注入(Dependency Injection,DI...
2. **配置文件**: Ibatis的配置文件通常为`mybatis-config.xml`,包含了数据源、事务管理器、环境、插件、类型别名、映射文件等全局配置信息。在描述中提到的配置已经成功,意味着这个配置文件被正确解析并且能够...
在IT行业中,SpringMVC和iBatis是两个非常重要的框架,它们分别负责Web应用程序的控制层和数据访问层。...在压缩包"springibatis"中,可能包含了完成这个整合过程所需的配置文件和示例代码,可供参考学习。
标题 "ibatis学习" 暗示我们即将探讨的是关于Ibatis,一个著名的Java持久层框架,它允许开发者将SQL语句直接写在配置文件中,以实现灵活的数据访问。Ibatis提供了简单易用的API,使得数据库操作与业务逻辑解耦,提高...
深入研究iBatis源码有助于理解其内部工作原理,包括如何解析XML配置文件,如何执行SQL语句,以及如何进行结果映射。源码分析可以帮助开发者更好地定制和优化自己的应用。 六、iBatis实践项目 通过实践项目,可以...
在Ibatis中,DTD(Document Type Definition)文件扮演着关键角色,它们定义了XML配置文件的结构和规则,使得XML配置能够被正确解析和理解。下面我们将深入探讨Ibatis的DTD文件及其在学习和开发过程中的应用。 首先...
iBATIS的配置文件主要包括SQL Map的配置,用于设定属性、JDBC DataSources和SQL Maps。配置文件通常为XML格式,用于集中管理不同DataSource的配置。iBATIS支持自己的SimpleDataSource、Jakarta DBCP以及任何可以通过...
Ibatis 是一个轻量级的Java持久层框架,它提供了SQL映射框架,使得开发者能够将SQL语句直接写在配置文件中,从而避免了Java代码与SQL的紧密耦合,提高了开发效率和代码可读性。Ibatis 的核心概念包括...
iBatis通过XML配置文件(sql-map.xml)定义SQL语句,然后在Java代码中调用SqlMapClient接口执行这些语句。这使得数据库操作更易于维护和扩展。 5. **分页功能**:描述中提到有分页功能,这通常涉及到前端展示和后端...
### ibatis配置教程详解 #### 一、简介与准备工作 ibatis是一款优秀的持久层框架,它简化了数据访问层的繁琐工作,使开发者能够更加专注于业务逻辑的开发。本教程将详细讲解如何配置ibatis环境,并通过实际示例来...
首先,Ibatis的主要功能在于它将SQL语句与Java代码解耦,通过XML配置文件或注解的方式定义SQL映射,使得业务逻辑和数据访问逻辑分离,提高了代码的可维护性。在"ibatistest2"项目中,我们可以看到各种类型的SQL映射...
3. iBatis配置文件(mybatis-config.xml):iBatis的全局配置文件,定义了数据源、事务管理、日志等。在Spring整合中,我们通常不直接在mybatis-config.xml中配置数据源,而是由Spring管理并传递给SqlSessionFactory...
1. **安装与设置**:首先,你需要下载并添加Ibatis.net库到你的项目中,然后配置相应的配置文件,包括数据库连接字符串以及SQL映射文件的位置。 2. **SQL映射文件**:这是Ibatis.net的核心部分,它定义了如何将数据...
Ibatis 提供了XML配置文件和动态SQL的支持,使得SQL的编写更加灵活。 在配置Ibatis时,首先你需要在项目中引入Ibatis的依赖库,通常通过Maven或Gradle管理。在你的`pom.xml`或`build.gradle`文件中添加相应的依赖...
MappedStatements是iBATIS配置中最核心的部分,它包含了具体执行的SQL语句或存储过程的声明。共有六种不同的语句类型可供选择: 1. **statement**:通用型语句,涵盖所有类型的SQL语句和存储过程。 2. **select**、...