ibatis环境搭建



首先介绍一下SqlMapClient实例有哪些常用的方法,提供给我们进行操作的:

增加:sqlMapClient.insert("Sql语句的id",参数)——返回受影响的行数

删除:sqlMapClient.delete("Sql语句的id",参数)——返回受影响的行数

修改:sqlMapClient.update(“Sql语句的id”,参数)——返回受影响的行数

查询1:sqlMapClient.queryForObject("Sql语句的id",参数)——返回object(该方法可以用来调函数和过程)

查询2:sqlMapClient.queryForList("Sql语句的id",参数)——返回List(该方法可以用来返回查询的多行结果)

环境搭建:

1.SqlMapConfig.xml文件

   <?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
   
<sqlMapConfig>
    <!-- 引用JDBC属性的配置文件 -->
    <properties resource="com/jdbc/test/db.properties"/>
    <!-- 使用JDBC的事务管理 -->
    <transactionManager type="JDBC">
    <!-- 数据源 -->
    <dataSource type="SIMPLE">
    <property name="JDBC.Driver" value="${accntMysqlDriver}"/>
    <property name="JDBC.ConnectionURL" value="${accntMysqlDburl}"/>
    <property name="JDBC.Username" value="${accntMysqlUsername}"/>
    <property name="JDBC.Password" value="${accntMysqlPassword}"/>
    </dataSource>
    </transactionManager>
   
    <sqlMap resource="com/jdbc/test/CreateFile.sql.xml" />
</sqlMapConfig>   

2、db.properties
accntMysqlDriver=com.mysql.jdbc.Driver
accntMysqlDburl=jdbc:mysql://localhost:3306/ecs_upf
accntMysqlUsername=root
accntMysqlPassword=root


3、sql.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap
    PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
    "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="CreateFile">
  <typeAlias alias="HashMap" type="java.util.HashMap"></typeAlias>

  <select id="GetConfig" parameterClass="HashMap" resultClass="com.jdbc.bean.CreateFileTaskBean">
    <![CDATA[
      SELECT CREATE_FILE_CODE     as createFileCode,
             CREATE_FILE_DESC     as createFileDesc,
             ACCOUNTS_CODE        as accountsCode,
             DOWNLOAD_TYPE        as downloadType
      FROM TD_P_CREATEFILE
      WHERE ACCOUNTS_CODE = #ACCOUNTS_CODE#
      AND STATUS = '0'
    ]]>
  </select>
 
</sqlMap>

4、Test
private static SqlMapClient sqlMapClient = null;
   
 // 读取配置文件
   static {
       try {
           Reader reader = Resources.getResourceAsReader("com/jdbc/test/sqlMapConfig.xml");
           sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
           reader.close();
       } catch (IOException e) {
           e.printStackTrace();
       }
    }
   @org.junit.Test
   public static void test() {
       try {
           Map<String, String> map = new HashMap<String, String>();
           map.put("ACCOUNTS_CODE", "150003");
         /*List li=sqlMapClient.queryForList("GetConfig",map);
           System.out.println("++++++++"+li);*/
           CreateFileTaskBean b= (CreateFileTaskBean) sqlMapClient.queryForObject("GetConfig",map);
           System.out.println(b.getAccountsCode()+b.getCreateFileDesc());
     } catch (SQLException e) {
        
         e.printStackTrace();
     }

   }


Hibernate是当前最流行的O/R mapping框架,当前版本是3.05。它出身于sf.net,现在已经成为Jboss的一部分了。
iBATIS是另外一种优秀的O/R mapping框架,当前版本是2.0。目前属于apache的一个子项目了。
相对Hibernate"O/R"而言,iBATIS 是一种"Sql Mapping"的ORM实现。
Hibernate对数据库结构提供了较为完整的封装,Hibernate的O/R Mapping实现了POJO和数据库表之间的映射,以及SQL的自动生成和执行。程序员往往只需定义好了POJO到数据库表的映射关系,即可通过Hibernate提供的方法完成持久层操作。程序员甚至不需要对SQL的熟练掌握,Hibernate/OJB会根据制定的存储逻辑,自动生成对应的SQL并调用JDBC接口加以执行。
而iBATIS的着力点,则在于POJO与SQL之间的映射关系。也就是说,iBATIS并不会为程序员在运行期自动生成SQL执行。具体的SQL需要程序员编写,然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定POJO。使用iBATIS提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象,这一层与通过Hibernate 实现ORM而言基本一致,而对于具体的数据操作,Hibernate会自动生成SQL语句,而iBATIS则要求开发者编写具体的SQL语句。相对Hibernate而言,iBATIS以SQL开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。
二者的对比:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值