• iBatis框架使用 4步曲


          iBatis是一款使用方便的数据訪问工具,也可作为数据持久层的框架。和ORM框架(如Hibernate)将数据库表直接映射为Java对象相比。iBatis是将SQL语句映射为Java对象。

    相对于全自己主动SQLHibernateiBatis同意你对SQL有全然控制权,能够视为半自己主动的数据訪问工具。 
           iBatis的最大长处是简便,轻量级,仅需iBatis的一个jar和数据库的驱动就可以执行,并且使用iBatis仅需掌握SQL和XML的使用方法就可以,而不像Hibernate那样须要配置对象间的关系。学习iBatis的过程要比Hibernate快非常多,在项目中,若人员水平不大一致时。使用iBatis取代Hibernate作为数据訪问工具能够有效提升开发效率。 
          无论是iBatis还是Hibernate。都作为訪问数据库的工具,它们必定基于JDBC而来,目的解决是JDBC程序开发的繁琐性和代码的冗余性(如载入驱动,建立连接,初始化语句对象,运行数据库操作。返回结果,关闭各个对象这一反复且无技术含量的过程)。

     

    iBatis框架是Java持久层开发框架,说白了就是前人写了一部分代码(针对数据库操作),我们要做的就是再次开发,拿来框架直接使用。

           我们自己开发时,dao层的sql语句都是写死在程序中的。假设查询条件改变什么的都须要改动sql语句,这样就得去改动原代码,违背了开发原则中的开闭原则。有没有一种实现让sql不再写死在程序里,iBatis框架就能够使sql文活起来。

           iBatis是一个开源的项目。有兴趣的能够去看看那些元老级的人物是怎么将封装的框架。本文旨在介绍它的使用。


    第一步:搭建好开发环境

           所谓的搭建好开发环境就是拷贝iBatis的jar包到我们的项目中。这样我们就能够使用框架中的相关类啦。

           因为iBatis是数据库方面的操作,所以还有加入数据库方面的jar包,我用的是oracle的数据库,所以得到oracle的安装文件夹以下去找链接数据库的ojdbc6.jar


    第二步:编写实体类和dao层接口及实现

           这里须要做的就是将数据库的表相应封装成对象实体。定义Dao层的接口和实现,接口的详细实现这里不须要写,仅仅须要把类准备出来,把接口准备出来就能够拉。


    第三步:拷贝xml文件

           将iBatis中的两个xml文件复制到项目中(下载的iBatis资料中会有相应的jar包和简单的样例,样例中有xml文件),一个是SqlMapConfig.xml是完毕数据库配置的文件。还有一个是实体类相应的xml文件,本文以User.xml为例。

           须要注意的是这两个文件所放的位置,一般都是将SqlMapConfig.xml文件复制到项目的根文件夹以下。放在src下。实体类相应的xml文件跟相应的实体放在一块即可了。

            一个系统中就仅仅有一个SqlMapConfig.xml文件。文件的名称能够更改,是数据库配置文件,文件内容參考例如以下:

    1. <?xml version="1.0" encoding="UTF-8" ?>  
    2.   
    3. <!DOCTYPE sqlMapConfig        
    4.     PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"        
    5.     "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">  
    6.   
    7. <sqlMapConfig>  
    8.   <transactionManager type="JDBC" commitRequired="false">  
    9.     <dataSource type="SIMPLE">  
    10.       <property name="JDBC.Driver" value="oracle.jdbc.driver.OracleDriver"/>  
    11.       <property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@localhost:1521:Orl"/>  
    12.       <property name="JDBC.Username" value="scott"/>  
    13.       <property name="JDBC.Password" value="tiger"/>  
    14.     </dataSource>  
    15.   </transactionManager>  
    16.     
    17.   <sqlMap resource="com/ibatis/bean/User.xml"/>  
    18.   
    19. </sqlMapConfig>  


     实体类的配置文件则有多个。是和实体类相应的。

    内容參考例如以下:

    1. <?xml version="1.0" encoding="UTF-8" ?>  
    2.   
    3. <!DOCTYPE sqlMap        
    4.     PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"        
    5.     "http://ibatis.apache.org/dtd/sql-map-2.dtd">  
    6.   
    7. <sqlMap>  
    8.   
    9.   <!--起别名-->  
    10.   <typeAlias alias="UserType" type="com.ibatis.bean.User"></typeAlias>  
    11.     
    12.   <!--insert操作,parameterClass为參数的类型-->  
    13.   <insert id="insertUserID" parameterClass="UserType">  
    14.     insert into t_user (  
    15.       username,  
    16.       userpswd)  
    17.     values (  
    18.       #username#, #userpswd#  
    19.     )  
    20.   </insert>  
    21.   <delete id="deleteUser" parameterClass="java.lang.String">  
    22.     delete from t_user where username=#username#  
    23.   </delete>  
    24. </sqlMap>  

    第四步:编写dao层接口实现

     用了框架后。实现类中就没有sql语句了。在上面參考代码中看到,sql语句都配置到相应的实体类相应的配置文件里拉,这样实现类的代码就会变得非常easy。例如以下:



      这样就能够实现对User的加入和删除了,假设此时还不放心。能够加入个測试类測试一次。

      

      使用框架,前提配置工作一定要做好。主要在配置文件上面。一定要细致。



    版权声明:本文为博主原创文章。未经博主同意不得转载。

  • 相关阅读:
    通过命令行指定 Java 程序运行时使用的字符集
    Ubuntu Linux 开启 root 用户及其它登录问题的解决
    SLF4J 的几种实际应用模式 SLF4J+Log4J 与 SLF4J+LogBack
    Java 获取当前时间的年月日方法
    Eclipse 全屏插件
    Linux 下的纯 C 日志函数库: zlog
    如何使用 Log4j
    DAO 设计模式
    为什么要用 /dev/null 2>&1 这样的写法
    NSDate和NSString之间的转换
  • 原文地址:https://www.cnblogs.com/llguanli/p/7068958.html
Copyright © 2020-2023  润新知