`
noasoso
  • 浏览: 35439 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

iBATIS基本配置

 
阅读更多

 

相对于Hibernate提供了全面的数据库封装机制的“全自动化”ORM实现而言,iBATIS则是一种“半自动”的ORM实现。

所谓“全自动化”ORM实现是指实现了POJO(Plain Old Java Object 简单的Java对象)和数据库表之间的映射,以及SQL的自动生成和执行。而IBatis则不会为程序员在运行期间自动生成SQL语句,需要程序员自己编写,然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定的POJO中。

Java Web 核心框架之 iBATIS - 低调的华丽 - 辉色空间 
iBatis  与 Hibernate 的区别:
Hibernate功能强大,数据库无关性好,O/R映射能力强,如果对Hibernate相当精通,而且对Hibernate进行了适当的封装,那么整个持久层代码会相当简单,需要写的代码很少,开发速度快。Hibernate对数据库结构提供了较为完整的封装,Hibernate的O/R Mapping实现了POJO和数据库表之间的映射,以及SQL的自动生成和执行。程序员只需要定义好POJO到数据表的映射关系,即可通过Hibernate提供的方法完成持久层的操作。程序员甚至不需要对SQL相当熟练的掌握,Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的SQL并调用JDBC接口加以执行。
iBatis 入门简单,即学即用,提供了数据库查询的自动绑定功能,而且延续了很好的SQL使用经验,对于没有那么高的对象模型要求的项目来说,相当完美。当系统数据处理量巨大、性能要求极为苛刻时,这往往意味着我们必须经过高度优化的SQL语句(或存储过程)才能达到性能设计的指标。在这种情况下iBatis会有更好的可控性和表现。
总之:Hibernate比iBatis复杂,学习成本高,iBatis简单容易上手,是基于原生SQL的框架。可以说Hibernate功能强大而复杂,iBatis简单而小巧。

iBATIS的下载与配置:

iBATIS的官方下载地址:http://labs.renren.com/apache-mirror/ibatis/binaries/ibatis.java/

MYBATIS的官方下载地址:http://code.google.com/p/mybatis/downloads/list

注:iBATIS 是 3.0以前的版本的名字,3.0(包括3.0)以后的版本叫MyBatis。MyBatis 和 iBatis有很多的区别,包括包的结构和类名。而我们今天所说的iBatis是指3.0以前的版本。

:所有的持久类属性的类型都不要声明为基本类型(int、long、float、double),应该声明为对应的封装类型(Integer、Long、Float、Double),因为IBatis是面向对象的解决方案。因此所有的属性、参数和结果必须是对象。

Java Web 核心框架之 iBATIS - 低调的华丽 - 辉色空间 

把下载的iBatis文件(jar文件)和数据库驱动文件(jar文件)添加到当前项目的lib文件夹中并添加到当前项目的classpath中。

配置文件样例(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>
           <properties resource="SqlMapConfig.properties" />    /*引用属性文件*/
           <settings 
                     
enhancementEnabled="true"      /*全局性地启用运行时字节码增强*/
                     useStatementNamespaces="true"    /*使用全限定名来应用Mapped statement*/
                     cacheModelsEnabled="true"    /*全局性地启用缓存模式*/
                     lazyLoadingEnabled="true"     /*全局性地使用所有延迟加载*/
            />
            <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}" />
                          <property name="Pool.MaximumActiveConnections" value="10" />   /*数据库连接池可维持的最大容量*/
                          <property name="Pool.MaximumIdleConnections" value="5" />   /*数据库连接池可挂起的连接数*/
                          <property name="Pool.MaximumCheckoutTime" value="120000" /> /*连接某个任务占用的最大时间(ms)*/
                          <property name="Pool.TimeToWait" value="500" /> /*线程等待连接的最大时间(ms)*/
                          <property name="Pool.PingQuery" value="select 1 from users" /> /*数据库连接状态检测语句*/
                          <property name="Pool.PingEnabled" value="false" />  /*是否允许检测连接状态*/
                          <property name="Pool.PingConnectionsOlderThan" value="1" /> /*对连接时间超过设定值将进行连接检测*/
                          <property name="Pool.PingConnectionsNotUsedFor" value="1" /> /*对空闲超过设定值的连接进行检测*/
                   </dataSource>
            </transactionManager>
            <sqlMap resource="com/demo/ibatis/beans/users_SqlMap.xml" />
</sqlMapConfig>

SqlMapConfig.properties 属性文件:

driver=com.microsoft.jdbc.sqlserver.SQLServerDriver
url=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=demo;SelectMethod=cursor(SQL Server数据库必须有)
username=sa
password=joe

注:配置文件和属性文件均在src文件夹和bin文件夹中。

users_SqlMap.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="users">
          <cacheModel id="userCache" type="LRU">
                   <flushInterval hours="24"/>
                   <property name="size" value="1000"/>
          </cacheModel>
          <typeAlias alias="User" type="com.demo.ibatis.beans.User"/>   /*使用别名*/
          <resultMap id="userResult" class="User">
                   <result property="id" column="ID" jdbcType="VARCHAR"/>
                   <result property="username" column="username" jdbcType="VARCHAR"/>
                   <result property="password" column="password" jdbcType="VARCHAR"/>
                   <result property="email" column="email" jdbcType="VARCHAR"/>
          </resultMap>
           <select id="getUser" cacheModel="userCacheresultMap="userResultparameterClass="User">
                          select * from user where id = #id#
           </select>

           <select id="getUserList" cacheModel="userCacheresultMap="userResultparameterClass="User">
                          select * from user
           </select>

            <insert id="insertUser" parameterClass="User">
                      insert into user(ID,username,password,email) 
                      values(#id:NUMERIC#,#username:VARCHAR#,#password:VARCHAR#,#email:VARCHAR#);
            </insert>
            <update id="updateUser" parameterClass="User">
                     update user set username=#username:VARCHAR#,password=#password:VARCHAR#,email=#email:VARCHAR# 
                     where ID=#id:NUMERIC#;
            </update>
            <delete id="deleteUser" parameterClass="User">
                     delete from user where ID="id:NUMERIC";
            </delete>

</sqlMap>

 

分享到:
评论

相关推荐

    Ibatis基本配置---[环境搭建

    Ibatis基本配置---[环境搭建

    iBATIS基本配置和spring中dwr配置

    NULL 博文链接:https://java-frog.iteye.com/blog/377244

    ibatis用xml配置文件配置使用

    ibatis用xml配置文件配置的使用,基本包括了ibatis遇到的所有问题

    ibatis 增删改查 存储过程及分页模拟

    使用ibatis基本配置及连接数据库 进行增删改查 存储过程及分页模拟 根据配置文件输出sql日志

    Struts+spring+ibatis基本框架配置

    主要是我自己配置的SSI,保留在csdn上,以后自己不会配时,再下载去看看.

    iBATIS课件

    iBATIS课件 iBATIS简介 搭建环境 配置文件 读取配置 基本的CRUD操作 模糊查询 iBATIS代码生成工具iBATOR 优缺点 选择Hibernate还是iBATIS

    IBatis完成单表基本的数据库操作 模糊查询

    NULL 博文链接:https://zmx.iteye.com/blog/515757

    ibatis小结

    ibatis小结主要描述ibatis框架的一些基本使用。以及相关的配置,此demo可以运行

    iBATIS实战

    2.5.3 配置iBATIS(预览) 37 2.5.4 构建应用程序 38 2.5.5 运行应用程序 39 2.6 iBATIS未来的发展方向 40 2.6.1 Apache软件基金会 40 2.6.2 更简单、更小且依赖性更少 40 2.6.3 更多的扩展点和插件 41 2.6.4 支持更多...

    iBatis2学习笔记

    1.iBatis2学习笔记:基本原理和配置.doc 2.iBatis2学习笔记:与Spring2的整合.doc 3.iBatis2学习笔记:单表映射 .doc 4.iBatis2学习笔记:SqlMap的配置总结(18条).doc 5.iBatis2学习笔记:入参和返回值的问题.doc ...

    iBatis SQL Maps开发指南.pdf

    开发指南 iBATIS SQL Maps Page 3 of 62 Map类型的Result 复杂类型属性(即自定义类型的属性) 避免N+1 Select(1:1) 延迟加载 VS 联合查询(1:1) 复杂类型集合的属性 避免N+1 Select(1:M和M:N) 组合键值或多...

    iBatis入门教程

    iBatis入门教程,iBatis的基本配置和应用

    ibatis开发指南

    ibatis开发指南 适用于初学ibatis的朋友 介绍ibatis的基本用法与配置

    eclipse+spring+ibatis搭建项目基础代码

    自己亲自用eclipse+spring+ibatis搭建的基本框架,含有所需的JAR包,下载后只需更改sql2005的连接字符串,即WEB-INF/db-context.xml中的配置,并更改ibatis的xml文件中的sql语句即可运行。

    ibatis2.x 详细介绍

    ibatis 配置........................................................................................................... 11 ibatis 基础语义.................................................................

    ibatis 实例可运行

    可运行的ibatis实例,基本配置已写好。 对于入门新手很实用。

    ibatis开发指南中文版

    ibatis配置........................................................................................................... 11 ibatis基础语义....................................................................

    ibatis开发指南_夏昕

    ibatis配置........................................................................................................... 11 ibatis基础语义....................................................................

    ibatis PPT

    iBatis简介 搭建环境 配置文件 基本的CRUD操作 模糊查询 自动主键selectKey 优点

    ibatis 开发指南(pdf)

    5 ibatis 配置........................................................................................................... 11 ibatis 基础语义.......................................................

Global site tag (gtag.js) - Google Analytics