码迷,mamicode.com
首页 > 其他好文 > 详细

Mybatis基础

时间:2015-06-07 01:02:31      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:

 

  

1、什么是Mybatis
  Mybatis最早源自Apache基金会的一个开源项目iBatis,2010年这个项目由Apache software foundation迁移到了google code,并且改名为Mybatis;
  Mybatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。
  Mybatis封装了几乎所有的JDBC代码和参数的手工配置以及结果集的检索;
  Mybatis使用简单的XML或注解做配置和定义映射关系,将Java的POJO(Plan Old Java Objects)映射成数据表中的记录。

2、Mybatis体系结构
  1)加载配置
  2)SQL解析

  3)SQL执行

  4)结果映射

3、Mybatis的配置文件包含下面两种类型

  1)SqlMapConfig.xml(1个)

    主配置文件,用于指定数据库连接参数和框架参数

  2)SqlMap.xml(n个)

    映射定义文件,用于定义SQL语句和映射信息

4、Mybatis配置文件

技术分享
<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE configuration PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN" 
    "http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
<configuration>
    <environments default="environment">
        <environment id="environment">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" 
                    value="oracle.jdbc.OracleDriver" />
                <property name="url"
                    value="jdbc:oracle:thin:@192.168.160.253:1521:orcl" />
                <property name="username" value="openlab" />
                <property name="password" value="open123" />
            </dataSource>
        </environment>
    </environments>  
    <!-- 引入 Dept.xml 配置 -->
    <mappers>
        
        <mapper resource="com/tarena/entity/Dept.xml"/>
         
    </mappers>
</configuration> 
SqlMapConfig.xml
技术分享
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Dept.xml 在com.tarena.entity 包中  -->  
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"      
 "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<!-- namespace 的值是 DeptMapper 接口
  每个Mapper 接口对应一个配置文件  -->
<mapper 
    namespace="com.tarena.entity.DeptMapper">
    <insert id="addDept" 
        parameterType="com.tarena.entity.Dept">
        <selectKey keyProperty="deptno"
            order="BEFORE"
            resultType="int">
            select SEQ_T_DEPT.nextval 
            from DUAL
        </selectKey>
            insert into T_DEPT (deptno, dname, 
            loc) values 
            (#{deptno}, #{dname}, #{loc})
    </insert>
    <delete id="deleteDept"
        parameterType="com.tarena.entity.Dept">
        delete from T_DEPT 
        where deptno = #{deptno}
    </delete>
    <select id="findDeptById"
        parameterType="java.lang.Integer"
        resultType="com.tarena.entity.Dept">
        select deptno,dname,loc 
        from T_DEPT where deptno=#{deptno}
    </select>
    <update id="updateDept"
        parameterType="com.tarena.entity.Dept">
        <!-- #{deptno} 读取参数的Bean属性 -->
        update T_DEPT set dname=#{dname},
        loc = #{loc} where deptno=#{deptno}
    </update>
    <!-- 注意resultType 的值是List中元素类型
     结果集行映射的数据类型-->
    <select id="findAllDept"
        resultType="com.tarena.entity.Dept">
        select deptno, dname, loc 
        from T_DEPT
    </select>
    <select id="findDeptByLoc"
        parameterType="java.lang.String"
        resultType="com.tarena.entity.Dept">
        select deptno, dname, loc 
        from T_DEPT where loc=#{loc}
    </select>
    <select id="findAllDname"
        parameterType="java.lang.String"
        resultType="java.util.Map">
        select dname from T_DEPT
        where loc=#{loc}
    </select>
</mapper>
SqlMap.xml

5、简单框架API简介

  在使用Mybatis框架时,主要涉及以下几个API

    SqlSessionFactoryBuilder

      该对象负责根据Mybatis配置文件SqlMapConfig.xml构建SqlSessionFactory实例

    SqlSessionFactory

      每一个Mybatis的应用程序都以一个SqlSessionFactory对象为核心。该对象负责创建SqlSession对象实例

    SqlSession

      该对象包含了所有执行sql操作的方法,用于执行已映射的SQL语句  

Mybatis基础

标签:

原文地址:http://www.cnblogs.com/Crow00/p/mybatisbasic.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!