iBATIS系统学习笔记一
来源:互联网 发布:linux tftp使用 编辑:程序博客网 时间:2024/05/05 14:41
该笔记是通过学习《iBATIS In Action》和《iBATIS实战》归纳而来。
iBATIS系统学习笔记一
相关链接:
学习笔记零 - 起源
学习笔记二 - 基础配置
学习笔记三 - 高级技巧与进阶
学习笔记四 - 技巧与实践
- iBATIS系统学习笔记一
- 1 iBATIS的SQL映射
- 2 iBATIS的代码执行
- 3 简单的例子
- 31 数据库的创建
- 32 代码的书写
- 33 iBATIS的配置
- 34 添加iBATIS依赖包
- 35 尝试运行
- 31 数据库的创建
- 4 iBATIS的未来方向
- 41 iBATIS已经加入了Apache软件基金会
- 42 更简单更小且依赖性更小
- 43 更多的扩展点与插件
- 44 支持更多的平台和语言
- 5 小结
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 postalCodeFROM ADDRESSWHERE ADR_ID = #id#</select>
sql映射的输入输出关系:
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
- iBATIS系统学习笔记一
- iBATIS学习笔记(一)
- iBatis 系统学习笔记零
- iBATIS系统学习笔记二
- iBATIS系统学习笔记三
- iBATIS系统学习笔记四
- 初学ibatis 学习笔记一
- IBatis.Net学习笔记一--开篇
- Ibatis学习笔记(一)简单介绍
- ibatis学习笔记(一)例子
- ibatis学习总结一
- ibatis学习笔记(一)>>>>>>>sqlMapConfig.xml文件详解
- ibatis学习笔记(一)>>>>>>>sqlMapConfig.xml文件详解
- ibatis 学习笔记
- IBatis.Net学习笔记
- iBatis 学习笔记
- ibatis学习笔记
- iBatis学习笔记
- 从产品经理的角度看《我是歌手》
- Codeforces 513C Second price auction (bruteforce)
- CodeChef STFM - Chef and Strange Formula (康托展开)
- Go语言开发环境配置
- 主流MVC框架的设计模式及遵守的软件设计原则
- iBATIS系统学习笔记一
- 13.3.3 获取指标
- C++ STL 算法:排序组合
- 众数问题
- Weka.jar的导入Eclipse
- Hibernate中常用的HQL语句总结
- 《coredump问题原理探究》Linux x86版6.8节多继承coredump例子
- Remove Element
- Ubuntu 12.04.5使用过程中那些书上不教的东西