论坛首页 Java企业应用论坛

ibatis的使用以及实例源码开放

浏览 7986 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (6) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-12-11  

相对Hibernate和Apache OJB 等“一站式”ORM解决方案而言,ibatis 是一种“半
自动化”的ORM实现。
所谓“半自动”,可能理解上有点生涩。纵观目前主流的ORM,无论Hibernate 还是
Apache OJB,都对数据库结构提供了较为完整的封装,提供了从POJO 到数据库表的全
套映射机制。程序员往往只需定义好了POJO 到数据库表的映射关系,即可通过Hibernate
或者OJB 提供的方法完成持久层操作。程序员甚至不需要对SQL 的熟练掌握,
Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的SQL 并调用JDBC 接口加以执
行。

iBATIS是以SQL为中心的持久化层框架。能支持懒加载、关联查询、继承等特性。

iBATIS不同于一般的OR映射框架(eg:hibernate)OR映射框架,将数据库表、字段等映射到类、属性,那是一种元数据(meta-data)映射。iBATIS则是将SQL查询的参数和结果集映射到类。因此可以说,iBATIS做的是SQL Mapping的工作。它把SQL语句看成输入以及输出,结果集就是输出,而where后面的条件参数则是输入。iBATIS能将输入的普通POJO对象、MapXML等映射到SQL的条件参数上,同时也可以将查询结果映射到普通POJO对象(集合)、MapXML等上面。iBATIS使用xml文件来映射这些输入以及输出。能大大减少数据库存储部分的代码量,而且可以非常方便的利用SQL中的一些小技巧。废话不说了,直接看源码吧,见附件有sql文件这里提供的是mysql数据库。直接下载后导入就可以直接使用。

   发表时间:2009-01-21  
例子有点太简单了。最起码把1:1,N:1,1:N,N:N加上去吧
0 请登录后投票
   发表时间:2009-01-21  
你这样写是很危险的,特别是事务处理那里

public void updateStudentById(Student student) {
        try {
          sqlMapClient.update("updateStudent", student);
        } catch (Exception e) {
        e.printStackTrace();
        }
}

}
如果出现异常的话你的事务根本就没有回滚!!!!!直接报了异常,数据库可能有脏数据
0 请登录后投票
   发表时间:2009-01-21  
提出的意见,我会及时的更新源码的。谢谢!
0 请登录后投票
   发表时间:2009-01-21  
提供一点ibatis的高级特性运用了
0 请登录后投票
   发表时间:2009-01-21  
1:1,N:1,1:N,N:N
究竟是什么, 大家别笑话我, 我很少研究这东西, 谁能举例说下。
0 请登录后投票
   发表时间:2009-01-21  
有时间来好好研究下!
0 请登录后投票
   发表时间:2009-01-21  
sdh5724 写道
1:1,N:1,1:N,N:N
究竟是什么, 大家别笑话我, 我很少研究这东西, 谁能举例说下。

打死不信
0 请登录后投票
   发表时间:2009-06-19  
有没有哪位大侠对ibatis的源代码有深入的研究的呀。。。该怎么入手的
0 请登录后投票
   发表时间:2009-06-29  
qinjingkai 写道
你这样写是很危险的,特别是事务处理那里

public void updateStudentById(Student student) {
        try {
          sqlMapClient.update("updateStudent", student);
        } catch (Exception e) {
        e.printStackTrace();
        }
}

}
如果出现异常的话你的事务根本就没有回滚!!!!!直接报了异常,数据库可能有脏数据

没有仔细读楼主的代码,但是感觉如果是spring来做中间层的话,事务处理会没有问题的
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics