首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Ibatis初学的一个例子,新手可以尽快下手

2012-10-11 
Ibatis初学的一个例子,新手可以尽快上手。IBATIS是优秀的半ORM框架,原先一直在用HIBERNATE,不过对HIBERNATE

Ibatis初学的一个例子,新手可以尽快上手。
    IBATIS是优秀的半ORM框架,原先一直在用HIBERNATE,不过对HIBERNATE过于强大但问题多多的ORM方案十分反感。遂翻阅了一下IBATIS。自己写了一个例子,不用SPRING+STRUTS。

    首先去ibatis.apache.org下载最新的2.X的ibatis包,我用的是JAR包,没有用ibator插件调试安装。本地环境,ORACLE数据库,JDK1.6。

    ibatis的核心是sqlmap框架。
   
    新建一个JAVA工程即可,导入ibatisJAR包。我的是ibatis2.3.4-768.jar。新建一个XML文件,sql-map-config.xml,这个文件用于配置配置JDBC事务管理。

    sql-map-config.xml
   




    我们在表里有一张数据表 :
        create table TAXPAYER
(
  ID       NUMBER(10),
  NSR_NAME VARCHAR2(256),
  ORG_ID   NUMBER,
  NSRSBH   VARCHAR2(20),
  GXSJ     VARCHAR2(20)
)

数据请自行录入。


taxpayer对应的JAVABEAN:
   
        import java.io.IOException;    import java.io.Reader;    import java.sql.SQLException;    import java.util.HashMap;    import java.util.List;    import java.util.Map;    import com.ibatis.common.resources.Resources;    import com.ibatis.sqlmap.client.SqlMapClient;    import com.ibatis.sqlmap.client.SqlMapClientBuilder;    public class IbatisTest {/** * @param args * author by 刘峰 * 2010-6-22下午04:47:21 */public static void main(String[] args) {// TODO Auto-generated method stubSqlMapClient s = null;try {Reader reader = Resources.getResourceAsReader("ibatis/sql-map-config.xml");s = SqlMapClientBuilder.buildSqlMapClient(reader);Map mParameter = new HashMap();mParameter.put("id", new Integer(10533));mParameter.put("org", new Integer(16));mParameter.put("nsrmc", "纳税人名称");Taxpayer t = (Taxpayer)s.queryForObject("getTaxpayer", mParameter);System.out.println(t.getId());System.out.println(t.getNsr_name());System.out.println(t.getNsrsbh());System.out.println(t.getOrg_id());} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}    


    赋值时候,Integer,String, Character等常用的对象类型写到MAP里面去即可。不过Ibatis对Long的支持并不太好。本人是初学,望有知情者告知一下Long的支持情况。

    新增,修改,删除操作请自行完成。

    使用后感想,个人用下来,ibatis等于把业务中的代码部分和数据库操作部分完好地分离开来。使开发过程中的层次清晰。避免了在JAVA里出现SQL语句这样维护极其麻烦的处理方式。同时很好的支持存储过程,动态拼SQL等一些在实际应用中经常碰到的情况。
    缺点:由于是半orm的东西,对于一张表的操作,定义非常繁琐,JAVABEAN和IBATIS里SQL的配置文件其实是没有任何关系。导致的问题是,如果客户在表里新增一个字段,并且要把这个字段作为查询字段,我们不光要改JAVA文件,添加属性,同时还要去改IBATIS的相应SQL文件,相应的查询、新增、修改,只要涉及到的,全部都要统一地做修改。这对开发人员来说,工作量极其繁琐,而且很容易报错。HIBERNATE不存在这个问题,但是HIBERNATE的性能实在有待商榷。

   

热点排行