Your SlideShare is downloading. ×
Ibatis技术讲座
Ibatis技术讲座
Ibatis技术讲座
Ibatis技术讲座
Ibatis技术讲座
Ibatis技术讲座
Ibatis技术讲座
Ibatis技术讲座
Ibatis技术讲座
Ibatis技术讲座
Ibatis技术讲座
Ibatis技术讲座
Ibatis技术讲座
Ibatis技术讲座
Ibatis技术讲座
Ibatis技术讲座
Ibatis技术讲座
Ibatis技术讲座
Ibatis技术讲座
Ibatis技术讲座
Ibatis技术讲座
Ibatis技术讲座
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Ibatis技术讲座

1,420

Published on

ibatis is a ORM framework.if you dont use hibernate,You try ibatis.It's very simple.

ibatis is a ORM framework.if you dont use hibernate,You try ibatis.It's very simple.

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total Views
1,420
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
16
Comments
1
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Java 技术 IBatis2 ---- 广州科苑 彭之军
  • 2. 本次讲座内容大纲
    • IBatis 简介
    • IBatis 入门实例
    • Spring 对 IBatis 的支持
    • IBATIS 和 Hibernate 的对比
  • 3. IBatis 简介
    • iBATIS 是 Clinton Begin 开发,现在由 APACHE 基金会支持的用于 加快 JDBC 编程的经过泛化的框架,是一个持久化框架。
    • 当前支持 JAVA 、 .NET 、 RUBY 三种语言
    • iBATIS 官方站点
    • http:// ibatis.apache.org /
  • 4.  
  • 5. 使用前准备
    • 下载 IBATIS 最新( 2010-02-22 )的 2.x 的版本为 ibatis-2.3.4.726
    • 解压之后将 lib 文件夹下的 jar 文件导入工程中
    • 最小必须 jar 文件 ------- 只有一个 ibatis2.3.xxx.jar 文件
  • 6. 如果需要高级功能
    • 在 jar-dependies 文件中介绍了可能需要的高级功能:
    • 包括如下几个:
    • 字节码增强 CGLIB 2.0
    • 数据源连接池 DBCP 1.1
    • 数据缓存 OSCache 2.0.1
    • 日志 Commons Logging 和 Log4J 1.2.8
  • 7. IBATIS 的作用
    • 如果使用 jdbc 时访问数据库的代码
  • 8.
    • Connection con= null ;
    • PreparedStatement pstmt= null ;
    • ResultSet rs = null ;
    • String sql= "select * from tbl_stu where age>=?" ;
    • try {
    • con=BaseDao. getCon ();// 已经配置好数据库连接字符串
    • pstmt=con.prepareStatement(sql);
    • pstmt.setInt(1, age);
    • rs=pstmt.executeQuery();
    • while (rs.next()){
    • System. out .println( " 学生 id:" +rs.getInt( "stuid" )); // 通过结果集的列索引,也可以列名来获取
    • System . out .println( " 学生姓名 :" +rs.getString( "stuname" ));
    • System. out .println( " 学生 age:" +rs.getInt( "age" ));
    • System. out .println( "-----" );
    • }
    • }
  • 9. 使用 IBATIS 之后的查询代码
    • String resource= "com/peng/entity/SqlMapConfig.xml" ;
    • Reader reader =Resources. getResourceAsReader (resource);
    • SqlMapClient sqlMap =SqlMapClientBuilder. buildSqlMapClient (reader);
    • Student stu=( Student)sqlMap.queryForObject("getStuById",3);
    • System. out .println( " 学生姓名 :" +stu.getSname());
  • 10. 与传统的 JDBC 进行比较
    • 减少了 61% 的代码量
    • 最简单的持久化框架
    • 架构级性能增强
    • SQL 代码从程序代码中彻底分离,可重用
    • 增强了项目中的分工
    • 增强了移植性
  • 11. IBATIS 的思路
    • 将 sql 语句在 xml 文件中定义,将 JDBC 的细节隔离
  • 12. 使用步骤
    • 1. 建立数据库
    • 2. 创建工程
    • 3. 添加 lib
    • 4. 编写 sqlmapconfig.xml
    • 5. 编写 sqlmap.xml
    • 6. 编写代码
  • 13. 核心配置文件 SqlMapConfig.xml
    • 作用:
    • 1 )配置数据库连接 :
    • 驱动类 driver
    • URL
    • 用户名和密码
    • 2 )指明映射文件
  • 14. 核心配置文件一瞥
    • <? xml version = &quot;1.0&quot; encoding = &quot;UTF-8&quot; ?>
    • <! DOCTYPE sqlMapConfig
    • PUBLIC &quot;-//ibatis.apache.org//DTD SQL Map Config 2.0//EN&quot;
    • &quot;http://ibatis.apache.org/dtd/sql-map-config-2.dtd&quot; >
    • < sqlMapConfig >
    • < transactionManager type = &quot;JDBC&quot; commitRequired = &quot;false&quot; >
    • < dataSource type = &quot;SIMPLE&quot; >
    • < property name = &quot;driver&quot; value = &quot;com.microsoft.sqlserver.jdbc.SQLServerDriver&quot; />
    • < property name = &quot;url&quot; value = &quot;jdbc:sqlserver://localhost:1433;DatabaseName=bbsdb2&quot; />
    • < property name = &quot;username&quot; value = &quot;sa&quot; />
    • < property name = &quot;password&quot; value = &quot;123456&quot; />
    • </ dataSource >
    • </ transactionManager >
    • < sqlMap resource = &quot;com/mydomain/data/Account.xml&quot; />
    • </ sqlMapConfig >
  • 15. Sql 语句配置
    • <? xml version = &quot;1.0&quot; encoding = &quot;UTF-8&quot; ?>
    • <! DOCTYPE sqlMap
    • PUBLIC &quot;-//ibatis.apache.org//DTD SQL Map 2.0//EN&quot;
    • &quot;http://ibatis.apache.org/dtd/sql-map-2.dtd&quot; >
    • < sqlMap namespace = &quot;Student&quot; >
    • < typeAlias alias = &quot;Student&quot; type = &quot;com.peng.entity.Student&quot; />
    • < select id = &quot;getStuById&quot; parameterClass = &quot;int&quot; resultClass = &quot;Student&quot; >
    • select stuid as sid,
    • stuname as sname,
    • age
    • from tbl_stu where stuid = #sid#
    • </ select >
    • <!-- 有条件的更新语句 -->
    • < update id = &quot; updateStu &quot; parameterClass = &quot;Student&quot; >
    • update tbl_stu set age=#age# where stuid=#sid#
    • </ update >
    • </ sqlMap >
  • 16. 编写代码
    • 代码示例演示
  • 17. 高级主题列表
    • 1 )关系映射
    • 2) 动态条件构建
    • 3 )事务
  • 18. Spring 对 IBATIS 的支持
    • Spring 对主流的 ORM 框架例如 hibernate 都有支持,它对 IBATIS 支持吗?
  • 19. Spring 对 IBATIS 的支持
    • Spring 提供了 SqlMapClientTemplate 类,非常好的支持 IBATIS
    public class SqlMapAccountDao extends SqlMapClientDaoSupport implements AccountDao { public Account getAccount(String username) throws DataAccessException { return (Account) getSqlMapClientTemplate(). queryForObject( &quot;getAccountByUsername&quot; , username); } }
  • 20. Hibernate VS. IBATis
    • iBATIS 入门简单,即学即用。 Hibernate 入门较难
    • IBATIS 功能简单 , Hibernate 功能齐全
    • iBATIS 的缺点就是框架还是比较简陋,功能尚有缺失
    • IBATIS 灵活性强于 Hibernate.
    • Hibernate 的使用范围更广,采用人数较前者多。
  • 21.
    • 谢谢!
    • 代码示例将放于 FTP 公用账户下
  • 22. Thank you

×