参考夏昕的开发指南,做了最简单的Ibatis例子,其中版本变化很大,配置文件写法有一些差异,我下了很多版本,以至于搞混了,花了不少冤枉时间,建议初学者直接参考2.0的使用。
程序文件如下
String resource = "SqlMapConfig.xml";
Reader reader = Resources.getResourceAsReader(resource);
SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
String key = new String("2");
Person person = (Person) sqlMap.queryForObject("getPerson", key);
System.out.println(person.getLastName());
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>
<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.jnetdirect.jsql.JSQLDriver"/>
<property name="JDBC.ConnectionURL" value="jdbc:JSQLConnect://127.0.0.1/database=sample"/>
<property name="JDBC.Username" value="sa"/>
<property name="JDBC.Password" value="12345"/>
<property value="15" name="Pool.MaximumActiveConnections"/>
<property value="15" name="Pool.MaximumIdleConnections"/>
<property value="1000" name="Pool.MaximumWait"/></dataSource>
</transactionManager>
<sqlMap resource="examples/sqlmap/maps/Person.xml"/>
</sqlMapConfig>
Person.xml文件
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="Person">
<select id="getPerson"
parameterClass="java.lang.String"
resultClass="Person">
<![CDATA[
SELECT PER_ID as id, PER_FIRST_NAME as firstName,PER_LAST_NAME as lastName FROM Person WHERE PER_ID = #value#
]]>
</select>
<!--
<delete id="deletePerson"
parameterClass="java.lang.String">
delete from Person
where PER_ID = #value#
</delete>
-->
</sqlMap>
Person.java 文件
public class Person {
private Integer id;
private String firstName;
private String lastName;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public static void main(String[] args) {
}
}
数据库脚本为
CREATE TABLE [Person] (
[PER_ID] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[PER_FIRST_NAME] [char] (40) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[PER_LAST_NAME] [char] (40) COLLATE Chinese_PRC_CI_AS NOT NULL ,
CONSTRAINT [PK_Person] PRIMARY KEY CLUSTERED
(
[PER_ID]
) ON [PRIMARY]
) ON [PRIMARY]
GO