日期:2014-05-20  浏览次数:20866 次

ibatis里面都啥意思?
ibatis Quick Start 
准备工作
1. 下载ibatis 软件包(http://www.ibatis.com)。
2. 创建测试数据库,并在数据库中创建一个t_user 表,其中包含三个字段: 
. id(int) 
. name(varchar) 《oracle的是不是varchar2》
. sex(int) 。

为了在开发过程更加直观,我们需要将ibatis 日志打开以便观察ibatis 运作的细节。
ibatis 采用Apache common_logging,并结合Apache log4j 作为日志输出组件。
在CLASSPATH 中新建log4j.properties 配置文件,内容如下:

log4j.rootLogger=DEBUG, stdout 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%c{1} -%m%n 
log4j.logger.java.sql.PreparedStatement=DEBUG 
》》》》》》上面的每行代表的啥意思?

ibatis 基础代码包括: 
1. ibatis 实例配置
一个典型的配置文件如下(具体配置项目的含义见后): 
XML code
<?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>
<settings
cacheModelsEnabled="true"
enhancementEnabled="true"
lazyLoadingEnabled="true"
errorTracingEnabled="true"
maxRequests="32"
maxSessions="10"
maxTransactions="5"
useStatementNamespaces="false" 
/>
<transactionManager type="JDBC"> <dataSource type="SIMPLE"> 
<property name="JDBC.Driver" 
value="com.p6spy.engine.spy.P6SpyDriver"/> 
<property name="JDBC.ConnectionURL" 
value="jdbc:mysql://localhost/sample"/> 
<property name="JDBC.Username" ="user"/> 
<property name="JDBC.Password" ="mypass"/> 
<property name=
value="10"/> 
<property name=value="5"/> 
<property name=
value="120000"/> 
<property name="Pool.TimeToWait" ="500"/> 
<property name="Pool.PingQuery" ="select 1 from 
ACCOUNT"/> 
<property name="Pool.PingEnabled" ="false"/> 
<property name=
value="1"/> 
<property name=
value="1"/> 
</dataSource> 
</transactionManager> 
<sqlMap resource="com/ibatis/sample/User.xml"/> 
</sqlMapConfig> 

》》》》上面配置的属性都啥意思?还有哪些属性?

valuevalue"Pool.MaximumActiveConnections" 
"Pool.MaximumIdleConnections" 
"Pool.MaximumCheckoutTime" 
valuevaluevalue"Pool.PingConnectionsOlderThan" 
"Pool.PingConnectionsNotUsedFor" 
2. POJO(Plain Ordinary Java Object) 
下面是我们用作示例的一个POJO: 
public class User implements Serializable { 
private Integer id; 
private String name; 
private Integer sex; 
private Set addresses = new HashSet(); 
/** default constructor */
public User() { 

public Integer getId() {
return this.id; } 
public void setId(Integer id) {
this.id = id; 

public String getName() {
return this.name; 

public void setName(String name) {
this.name = name; 

public Integer getSex() {
return this.sex; 

public void setSex(Integer sex) {
this.sex = sex; 

}



3. 映射文件



------解决方案--------------------
log4j.rootLogger=DEBUG, stdout 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%c{1} -%m%n 
log4j.logger.java.sql.PreparedStatement=DEBUG