ibatis学习1

原创 2012年03月28日 10:58:04

摘《ibatis开发指南》

1.SQL MAP工作原理

将一个对象作为参数,为sql修改语句和查询语句设定参数值

1).执行mapped statement 。sql map框架将创建一个preparedStatement实例,用参数对象为preparedstatement实例设定参数,执行preparedStatement并从resultset中创建结果对象

2).执行sql的更新数据库语句时,返回受影响的数据行数。执行查询语句时,将返回一个结果对象或对象的集合。和参数对象一样,结果对象可以使javabean,map实现和基本数据类型的包装类

 

2.sql map配置文件(包括sqlmapconfig.xml 和sql map映射文件)

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>
         <properties resource="sqlmap.properties"/>
          <!--sql map配置文件拥有唯一的<properties>元素 用于在配置文件中使用标准的java属性文件(name=value)
                           这样做后,在属性文件中定义的属性可以作为变量在sql map配置文件及其所包含的所有sql map映射文件中引用。例:
                           属性文件中包含:driver=org.hsqldb.jdbcDriver
                            sql map配置文件及其每个映射文件都可以使用占位符${driver}来代表值org....
                            <property name="JDBC.Driver" value="${driver}"/>
           -->

          <!--
         <typeAlias>元素为一个较长的,全限定类名指定一个较短的别名
                           sql map配置文件预定义了几个JDBC别名等
          -->
        <typeAlias alias="String" type="java.lang.String" />
          <!--为sql map配置事务管理服务  type指定所使用的事务管理器类型
                         jdbc,jta,external
                       jdbc通过常用的connection commit()和rollback()方法,让jdbc管理事务
             -->
         <transactionManager type="JDBC" >
           <!--
                             <datasource>是<transactionManager>的一部分,为sql map数据源设置了一系列参数
             -->
           <dataSource type="SIMPLE">
                                       <property name="JDBC.Driver" value="${jdbc.driverClass}" />  
                                      <property name="JDBC.ConnectionURL" value="${jdbc.url}" /> 
                                      <property name="JDBC.Username" value="${jdbc.username}" />  
                                      <property name="JDBC.Password" value="${jdbc.password}" />  
             </dataSource>

          <!---

                     注:sqlmap.properties内容:

                            jdbc.driverClass=oracle.jdbc.driver.OracleDriver
                            jdbc.url=jdbc:oracle:thin:@oracle服务器ip:1521:unieap
                            jdbc.username=scott
                            jdbc.password=tiger

           -->
           </transactionManager>
          <!--
                  <sqlMap>元素用于用于包括sql map映射文件和其他的sql map配置文件
                   每个sqlmapclient对象使用的所有的sql map映射文件都要在此声明,必需在这里指定
                 所有的sqlmap文件

           -->
           <sqlMap resource="com/zzl/dao/sql/User_tab.xml" />
</sqlMapConfig>

2)sql map映射文件

一个sql map xml映射文件可以包含任意多个mapped statement,parameter map和result map
sqlmap的名称是全局的,所有的sqlmap文件中的名称必须唯一

sql map的核心概念是 mapped statement 。mapped statement可以使用任意的sql语句
并拥有parame map(输入)和result map(输出)

<?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="User_tab">
            <typeAlias alias="String" type="java.lang.String" />

             <typeAlias alias="user_tab" type="com.zzl.entity.User_tab">

             <!--resultClass和resultMap等具体内容  ibatis学习2将在下一节讲到-->  
            <select id="login" parameterClass="user_tab" resultClass="user_tab">
                       select user_name, user_pwd, user_is_admin from user_tab where user_name=#user_name# and user_pwd=#user_pwd#
            </select>
  </sqlMap>

 

 

ibatis源码学习1_整体设计和核心流程

转自http://www.iteye.com/topic/1121467 本文主要从ibatis框架的基本代码骨架进行切入,理解ibatis框架的整体设计思路,各组件的实现细节将在后文进行分析。...
  • sjf8013
  • sjf8013
  • 2012年12月01日 13:27
  • 668

ibatis(学习1)--sqlMapConfig sqlMap的配置,和sqlMap中的各种语法

Java代码   "1.0" encoding="UTF-8" ?>       PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN...

ibatis(学习1)--sqlMapConfig sqlMap的配置,和sqlMap中的各种语法

Java代码   "1.0" encoding="UTF-8" ?>       PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN...

ibatis学习笔记(1)--环境搭建和CRUD

1.准备jar包:

Ibatis学习笔记,文档,资源6合1

  • 2013年04月09日 11:04
  • 2.6MB
  • 下载

hibernate ibatis n+1

转载自: 当Hibernate或Ibatis在处理一对多的时候都存在n+1问题。  创建数据库  ACCOUNT 表  ACCOUNT_ID 1 2 ...

各种系统架构图及其简介(Spring+IBatis+Struts1+Struts2+Hibernate+Java EE+Oracle)

原文出处:http://space.itpub.net/6517/viewspace-609654 1.Spring架构图  Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。...

struts1.x+ibatis+spring配置整合

SSH想必为大家所熟悉,其应用也相当之广泛;SSI其实也是一种很好的组合,应用与小中型系统,且简单快捷,下面就说一下struts+spring+ibatis的配置 web.xml ...
  • yyw6637
  • yyw6637
  • 2013年04月10日 15:35
  • 526

[ibatis]:延迟加载和N+1问题

数据库I/O可以很好的度量数据库的使用情况,同时也是影响数据库性能的主要瓶颈之一。数据从磁盘到内存或则从内容写到磁盘这种操作时非常耗时。高速缓存能很好的应到到这一问题来提高性能。    N+1问题是...
  • zztp01
  • zztp01
  • 2011年11月17日 14:03
  • 551

spring+ibatis实现DB的动态切换1(如何配置)

Spring动态配置多数据源,即在大型应用中对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效提高系统的水平伸缩性。而这样的方案就会不同于常见的单一数据实例的方案,这就要程序在运行时根据当时...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ibatis学习1
举报原因:
原因补充:

(最多只允许输入30个字)