ibatis 订阅
iBATIS一词来源于“internet”和“abatis”的组合,是一个由Clinton Begin在2001年发起的开放源代码项目。于2010年6月16号被谷歌托管,改名为MyBatis。是一个基于SQL映射支持Java和.NET的持久层框架。 展开全文
iBATIS一词来源于“internet”和“abatis”的组合,是一个由Clinton Begin在2001年发起的开放源代码项目。于2010年6月16号被谷歌托管,改名为MyBatis。是一个基于SQL映射支持Java和.NET的持久层框架。
信息
时    间
2001年
发起人
Clinton Begin
来    源
"internet"和"abatis"的组合
外文名
iBATIS
ibatis起源
iBATIS提供的持久层框架包括SQL Maps和Data Access Objec ts(DAO),同时还提供一个利用这个框架开发的JPetStore实例。相对Hibernate和ApacheOJB等“一站式”ORM解决方案而言,ibatis 是一种“半自动化”的ORM实现。iBATIS 提供了三种语言实现的版本,包括:Java、.NET以及Ruby。右图是iBATIS的架构图:所谓“半自动化”,可能理解上有点生涩。纵观主流的 ORM(对象关系映射),无论 Hibernate还是Apache OJB,都对数据库结构提供了较为完整的封装,提供了从POJO到数据库表的全套映射机制。程序员往往只需定义好了POJO 到数据库表的映射关系,即可通过 Hibernate或者OJB 提供的方法完成持久层操作。程序员甚至不需要对 SQL 的熟练掌握,Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的 SQL 并调用 JDBC 接口加以执行。大多数情况下(特别是对新项目,新系统的开发而言),这样的机制无往不利,大有一统天下的势头。但是,在一些特定的环境下,这种一站式的解决方案却未必灵光。在笔者的系统咨询工作过程中,常常遇到以下情况:1. 系统的部分或全部数据来自现有数据库,出于安全考虑,只对开发团队提供几条Select SQL(或存储过程)以获取所需数据,具体的表结构不予公开。2. 开发规范中要求,所有牵涉到业务逻辑部分的数据库操作,必须在数据库层由存储过程实现(就笔者工作所面向的金融行业而言,工商银行、中国银行、交通银行,都在开发规范中严格指定)3. 系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的SQL语句(或存储过程)才能达到系统性能设计指标。面对这样的需求,再次举起 Hibernate 大刀,却发现刀锋不再锐利,甚至无法使用,奈何?恍惚之际,只好再摸出JDBC 准备拼死一搏……,说得未免有些凄凉,直接使用 JDBC进行数据库操作实际上也是不错的选择,只是拖沓的数据库访问代码,乏味的字段读取操作令人厌烦。
收起全文
精华内容
下载资源
问答
  • iBatis

    2018-07-10 18:20:37
    iBatis是数据持久层的框架。和ORM框架(如Hibernate)将数据库表直接映射为Java对象相比,iBatis是将SQL语句映射为Java对象。iBatis允许你对SQL有完全控制权,可以视为半自动的数据访问工具。 iBatis的最大优点是简便...

    iBatis是数据持久层的框架。和ORM框架(如Hibernate)将数据库表直接映射为Java对象相比,iBatis是将SQL语句映射为Java对象。iBatis允许你对SQL有完全控制权,可以视为半自动的数据访问工具。 iBatis的最大优点是简便,轻量级,仅需iBatis的一个jar和数据库的驱动即可运行,而且使用iBatis仅需掌握SQL和XML的用法即可。


    1. insert

    2. delete

    3. update

    4. queryForObject

    5. queryForList

    6. queryForMap


    1. 数据库

    CREATE TABLE STUDENT (
    ID NUMBER(5),
    NAME VARCHAR2(10),
    SEX VARCHAR2(10),
    AGE NUMBER(10),
    ADDRESS VARCHAR2(10),
    CONSTRAINT PK_ID PRIMARY KEY(ID)
    );


    2. 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>  
      
        <properties resource="SqlMapConfig.properties" />  
      
        <transactionManager type="JDBC">  
            <dataSource type="SIMPLE">  
                <property name="JDBC.Driver" value="${driver}" />  
                <property name="JDBC.ConnectionURL" value="${url}" />  
                <property name="JDBC.Username" value="${username}" />  
                <property name="JDBC.Password" value="${password}" />  
      
            </dataSource>  
        </transactionManager>  
      
        <sqlMap resource="sqlMap_student.xml" />  
      
    </sqlMapConfig>  
    driver=oracle.jdbc.driver.OracleDriver
    url=jdbc:oracle:thin:@localhost:1521:orcl
    username=ynsb1  
    password=1 


    3. sqlMap_student.xml

    <?xml version="1.0" encoding="UTF-8"?>  
    <!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">  
      
    <sqlMap namespace="Test">  
      
        <statement id="insert_student"  
            parameterClass="com.shangcg.ibatis.StudentDto">  
            insert into student(  
            id,name,age,sex,address) values(  
            #id#,#name#,#age#,#sex#,#address# )  
        </statement>  
      
        <statement id="delete_all_student" 
            parameterClass="com.shangcg.ibatis.StudentDto">  
            delete from student  
        </statement>  
      
        <statement id="updataStudent_test"   
            parameterClass="com.shangcg.ibatis.StudentDto">  
            update student set   
            name=#name#,sex=#sex#,age=#age#,address=#address#   
            where id = #id#  
        </statement>    
          
        <statement id="selectByID_student"  
            parameterClass="com.shangcg.ibatis.StudentDto"  
            resultClass="com.shangcg.ibatis.StudentDto">  
            select * from student   
            where id = #id#   
            order by id  
        </statement>      
      
    </sqlMap>  


    4. StudentDTO

    import java.sql.Date;
    public class StudentDto {
        //注意这里需要保证有一个无参构造方法,因为映射使用反射,如果没有无参构造可能会出现问题
        private int id;    
        private String name;  
        private String sex;  
        private int age;  
        private String address;
      
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getSex() {
            return sex;
        }
        public void setSex(String sex) {
            this.sex = sex;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public String getAddress() {
            return address;
        }
        public void setAddress(String address) {
            this.address = address;
        }  
        
    }


    5. StudentDao

    import java.util.ArrayList;
    import com.ibatis.sqlmap.client.SqlMapClient;
    import com.shangcg.ibatis.StudentDto;
    public interface StudentDao {
        //添加student表的数据   
        public void addStudent(SqlMapClient sqlMap,StudentDto studentdto);  
        //删除student表的指定ID数据   
        public void delStudentByID(SqlMapClient sqlMap,StudentDto studentdto);  
        //更新student表的数据   
        public void updataStudent(SqlMapClient sqlMap,StudentDto studentdto);  
        //查询student表的指定ID数据   
        public StudentDto selectStudentByID(SqlMapClient sqlMap,StudentDto studentdto); 
    }


    6. StudentImpl

    import java.sql.SQLException;
    import java.util.ArrayList;
    import com.ibatis.sqlmap.client.SqlMapClient;
    import com.shangcg.ibatis.StudentDto;
    import com.shangcg.interfaces.StudentDao;
    public class StudentImpl implements StudentDao {
         //添加student表的数据   
        public void addStudent(SqlMapClient sqlMap, StudentDto studentdto) {  
      
            try {  
                sqlMap.insert("insert_student", studentdto);  
            } catch (SQLException e) {  
      
                e.printStackTrace();  
            }  
        }  
          
        //删除student表的指定ID数据   
        public void delStudentByID(SqlMapClient sqlMap, StudentDto studentdto) {  
      
            try {  
                sqlMap.delete("deleteByID_student",studentdto );  
            } catch (SQLException e) {  
      
                e.printStackTrace();  
            }  
        }  
      
        //更新student表的数据   
        public void updataStudent(SqlMapClient sqlMap, StudentDto studentdto) {  
      
            try {  
                sqlMap.update("updataStudent_test",studentdto );  
            } catch (SQLException e) {  
      
                e.printStackTrace();  
            }  
        }  
          
        //查询student表的指定ID数据   
        public StudentDto selectStudentByID(SqlMapClient sqlMap, StudentDto studentdto) {  
      
            //返回后保存在info中   
            StudentDto info = new StudentDto();  
            try {  
                info = (StudentDto)sqlMap.queryForObject("selectByID_student", studentdto);  
            } catch (SQLException e) {  
      
                e.printStackTrace();  
            }  
            return info;  
        }  
    }

    展开全文
  • ibatis

    2008-06-23 20:35:00
    但最近闲来无事想了解下ibatis这个框架。但是没有找到好的文档;请大家帮帮忙.最近去过http://ibatis.apache.org 这个网站! 也看了些里面的文章,感觉不错!在这个网站中我下载了ibatis-2.3.0.677.jar这个包,这个...

    鄙人算是新手程序员。但最近闲来无事想了解下ibatis这个框架。但是没有找到好的文档;

    请大家帮帮忙.最近去过http://ibatis.apache.org 这个网站! 也看了些里面的文章,感觉不错!在这个网站中我下载了ibatis-2.3.0.677.jar这个包,这个包中咋没有关于dao的类呢!?有点纳闷!

    1问:ibatis-2.3.0.677.jar 这个包跟  ibatis-sqlmap-2.jar ,ibatis-dao-2.jar ,ibatis-common-2.jar等这些包的关系?  我个人理解 ibatis-2.3.0.677.jar 包含了  ibatis-sqlmap-2.jar 和 ibatis-common-2.jar 这两个包!

    2问:我在这个官方网站上怎么没有找到 下载ibatis-sqlmap-2.jar,ibatis-common-2.jar 等这几个包的地方呢?照理说应该有下才是啊! 虽然我在JPetStore这个项目中找到了这几个包,但是感觉还是不爽!怎么没让明白一点下的地方呢?

    http://ibatis.apache.org/docs/tools/abator/ 这个文档是对abatorConfig.xml自动生成代码文件这个xml的解释!

    3我最想问:到哪里可以找到对自动代码生成后的xxxxxSqlMap.xml 这个文件的解释!她是通过什么原理实现被调用的! 这样的文档有哪有?

    如有什么不清楚的?我在后续加````` 

    请不要吝惜你的笔墨! 不胜感谢

    展开全文
  • iBATIS

    2008-11-03 16:24:00
    IntroductionThe iBATIS Data Mapper framework will help you to significantly reduce the amount of Java code that younormally need to access a relational database. iBATIS simply maps JavaBeans to SQL st
    Introduction

    The iBATIS Data Mapper framework will help you to significantly reduce the amount of Java code that you
    normally need to access a relational database. iBATIS simply maps JavaBeans to SQL statements using a
    very simple XML descriptor. Simplicity is the key advantage of iBATIS over other frameworks and object
    relational mapping tools. To use the iBATIS Data Mapper you need only be familiar with JavaBeans, XML
    and SQL. There is very little else to learn. There is no complex scheme required to join tables or execute
    complex queries. Using Data Mapper you have the full power of real SQL at your fingertips.


    展开全文
  • org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题,即在mybatis中dao接口与mapper配置文件在做映射绑定的时候出现问题,简单说,就是接口与xml要么是找不到,要么是找到了却...

    org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题,即在mybatis中dao接口与mapper配置文件在做映射绑定的时候出现问题,简单说,就是接口与xml要么是找不到,要么是找到了却匹配不到。

    截图为网络中搜索到的常见原因:

    照着修改之后,问题依旧存在。最终花费了好大的力气才找到自己代码问题的根源。dao接口与xml的文件名不一致。

    接口名与接口文件名都是DepartmentDao, 而配置文件名为DeparmentDao.xml,费了很大的劲才看到两者名字查一个t字母。修改后就一切正常了。

    这是一个很容易忽视的点,记住:接口名与Mybatis的映射文件名一定要一模一样。

    展开全文
  • ibatis

    2005-11-16 16:28:00
    使用ibatis 提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象, 这一层与通过Hibernate 实现ORM 而言基本一致,而对于具体的数据操作,Hibernate 会自动生成SQL 语句,而ibatis 则要求开发者编写具体...
  • ibatis学习 ibatis总结 ibatis ibatis ibatis
  • ibatis的原码 ibatis源码 ibatis源码 ibatis源码
  • iBATIS教程 iBATIS教程

    2011-06-24 07:49:48
    iBATIS教程 iBATIS教程 iBATIS教程 iBATIS教程 iBATIS教程 iBATIS教程iBATIS教程 iBATIS教程
  • ibatis资料ibatis资料

    2011-05-06 12:45:32
    ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料
  • iBATIS 级联iBATIS 级联

    2010-08-25 23:36:04
    iBATIS 级联iBATIS 级联iBATIS 级联
  • org.apache.ibatis.exceptions.PersistenceException:org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession. ### The error may exist in cn.itcast.mybatis.mapper/UserMapper.xml
  • org.apache.ibatis.binding.BindingException原因总结

    万次阅读 多人点赞 2018-06-05 20:33:56
    update custom_dialog status = #{status} where 1=1 and appid = #{appid} and fromUser = #{fromUser} 报错信息如下: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis....
  • ibatis api,ibatis文档,ibatis说明文档
  • iBatis教程

    2020-10-23 13:40:13
    iBATIS教程 iBATIS是什么 iBATIS配置环境 iBATIS创建操作 iBATIS读取操作 iBATIS更新操作 iBATIS删除操作 iBATIS结果映射 iBATIS存储过程 iBATIS动态SQL iBATIS调试 iBATIS和...
  • ibatis简易使用ibatis简易使用ibatis简易使用
  • ibatis学习笔记

    2017-09-19 13:41:00
    ibatis学习笔记 ibatis学习笔记 ibatis学习笔记 ibatis学习笔记 ibatis学习笔记 ibatis学习笔记 ibatis学习笔记
  • IBatis学习

    2011-10-26 00:16:36
    IBatis3.0学习IBatis3.0学习IBatis3.0学习IBatis3.0学习IBatis3.0学习IBatis3.0学习IBatis3.0学习
  • J2EE学习 Ibatis开发资料共享 Ibatis开发资料 Ibatis学习框架 Ibatis开发概要
  • ibatis.net官方组件 IBatis.DataMapper.1.6.2 IBatis.DataAccess.1.9.2
  • ibatis2指南及ibatis

    2010-03-18 17:09:54
    ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南
  • ibatis2.0开发指南 ibatis开发必备ibatis开发指南 ibatis开发必备
  • 其中包含iBatis精讲PDF iBatis实例 iBatis开发指南 iBatis分页 spring+iBatis处理1对多数据表实例等等若干帮助文档。希望可以帮助大家学习iBatis...
  • ibatis

    千次下载 热门讨论 2008-05-22 11:27:52
    ibatis开发包,ibatis开发包,ibatis开发包
  • Ibatis3,手册,Ibatis3手册,Ibatis3使用手册,Ibatis3参考手册
  • ibatis入门

    千次阅读 2014-02-12 12:14:14
    iBatis 简介: iBatis 是apache 的一个开源项目,一个O/R Mapping 解决方案,iBatis 最大的特点就是小巧,上手很快。如果不需要太多复杂的功能,iBatis 是能够满足你的要求又足够灵活的最简单的解决方案,现在的...
  • iBATIS概览+iBATIS十分钟快速上手操练 【iBATIS概览】 iBATIS是一个持久框架,可用来配置 Java 类的属性和 RDBMS 内的表列之间的映射。在配置时,此框架负责处理 JDBC 连接和分配。可以使用 XML 文件配置 iBATIS。...
  • iBATIS实战.pdf

    千次下载 热门讨论 2012-11-19 11:11:41
    iBATIS实战》是讲述iBATIS框架的权威著作。书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。《iBATIS实战》的最后给出了一个...
  • C# IBatis IBatis基础 完整项目

    热门讨论 2011-03-29 12:04:18
    这个是初学 I batis学习的 , 我在网上找了很长时间都没有看到有 关于C#的Ibatis的例子,所以我上次了一个自己做的例子 供鸟儿们学习用。 全是自己写的,并且 很详
  • Ibatis 学习资料

    2011-10-28 14:46:32
    Ibatis 学习资料Ibatis 学习资料Ibatis 学习资料Ibatis 学习资料Ibatis 学习资料Ibatis 学习资料Ibatis 学习资料Ibatis 学习资料Ibatis 学习资料Ibatis 学习资料

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,199
精华内容 16,079
关键字:

ibatis