iBATIS系统学习笔记一

该笔记是通过学习《iBATIS In Action》和《iBATIS实战》归纳而来。

iBATIS系统学习笔记一


相关链接:
学习笔记零 - 起源
学习笔记二 - 基础配置
学习笔记三 - 高级技巧与进阶
学习笔记四 - 技巧与实践


2.1 iBATIS的SQL映射

一下是xml的映射:

<select id="getAddress" parameterClass="int" resultClass="Address">
SELECT
    ADR_ID as id,
    ADR_DESCRIPTION as description,
    ADR_STREET      as street,
    ADR_CITY        as city,
    ADR_PROVINCE    as province,
    ADR_POSTAL_CODE as postalCode
FROM ADDRESS
WHERE ADR_ID = #id#
</select>

sql映射的输入输出关系:
iBATIS映射

2.2 iBATIS的代码执行:

java:

Address address = (Address) sqlMap.queryForObject("getAddress",
new Integer(5));

2.3 简单的例子

这里来尝试一个简单的iBATIS的例子:

2.3.1 数据库的创建

#
# Table structure for table 'user'
#
CREATE TABLE USER_ACCOUNT (
USERID INT(3) NOT NULL AUTO_INCREMENT,
USERNAME VARCHAR(10) NOT NULL,
PASSSWORD VARCHAR(30) NOT NULL,
GROUPNAME VARCHAR(10),
PRIMARY KEY (USERID)
);
#
# Data for table 'user'
#
INSERT INTO USER_ACCOUNT (USERNAME, PASSSWORD, GROUPNAME)
VALUES ('LMEADORS', 'PICKLE', 'EMPLOYEE');
INSERT INTO USER_ACCOUNT (USERNAME, PASSSWORD, GROUPNAME)
VALUES ('JDOE', 'TEST', 'EMPLOYEE');
COMMIT;

2.3.2 代码的书写

import com.ibatis.sqlmap.client.*;
import com.ibatis.common.resources.Resources;
import java.io.Reader;
import java.util.List;
public class Main {
    public static void main(String arg[]) throws Exception {
        String resource = "SqlMapConfig.xml";
        Reader reader = Resources.getResourceAsReader (resource);
        SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
        List list = sqlMap.queryForList("getAllUsers", "EMPLOYEE");
        System.out.println("Selected " + list.size() + " records.");
        for(int i = 0; i < list.size(); i++) 
            System.out.println(list.get(i));
    }
}

2.3.3 iBATIS的配置

iBATIS链接数据库的配置文件:

<?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>
    <transactionManager type="JDBC" >
        <dataSource type="SIMPLE">
        <property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>
        <property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost/test"/>
        <property name="JDBC.Username" value="root"/>
        <property name="JDBC.Password" value="blah"/>
        </dataSource>
    </transactionManager>
    <sqlMap resource="SqlMap.xml" />
</sqlMapConfig>

SQL映射:

<?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>
    <select id="getAllUsers" parameterClass="string"
            resultClass="hashmap">
        SELECT * FROM USER_ACCOUNT WHERE GROUPNAME = #groupName#
    </select>
</sqlMap>

2.3.4 添加iBATIS依赖包

我使用了maven工具,添加以下代码:

        <dependency>
            <groupId>org.apache.ibatis</groupId>
            <artifactId>ibatis-sqlmap</artifactId>
            <version>2.3.4.726</version>
        </dependency>

        <dependency>
            <groupId>com.ibatis</groupId>
            <artifactId>ibatis2-common</artifactId>
            <version>2.1.7.597</version>
        </dependency>

如果依赖中没有jdbc的依赖包,那需要添加。

2.3.5 尝试运行

运行main后结果:

Selected 2 records.
{PASSSWORD=PICKLE, USERNAME=LMEADORS, GROUPNAME=EMPLOYEE, USERID=1}
{PASSSWORD=TEST, USERNAME=JDOE, GROUPNAME=EMPLOYEE, USERID=2}

2.4 iBATIS的未来方向

由于该文章已经过去了很多年,iBATIS甚至已经改名为MyBATIS,许多概念已不适用,故简单归纳。

2.4.1 iBATIS已经加入了Apache软件基金会

2.4.2 更简单、更小且依赖性更小

iBATIS是个目标非常集中的项目,所以期望能更小、更简单、更少的依赖第三方库。
这些将在MyBATIS学习中得到体现

2.4.3 更多的扩展点与插件

2.4.4 支持更多的平台和语言

2.5 小结

  • iBATIS是一个独特的数据映射器,使用SQL映射而不是完全的O/RM映射。
  • iBATIS的代码简单清晰明了,相对于JDBC更容易编写。

iBATIS的有点:

  • 简单性
  • 生产效率
  • 性能
  • 关注点分离
  • 分工明确
  • 可移植性
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值