一,MyBatis基础概述

原创 2016年08月29日 15:04:47

1,MyBatis概述

MyBatis是一个简化和实现Java数据持久化的开源框架,它抽象了大量的JDBC冗余代码,并且提供了一个简单易用的APO和数据库交互。

1.1,MyBatis优点

  • 减少大量JDBC冗余代码
  • 学习曲线低
  • 与传统数据库协同工作
  • 接受SQL语句
  • 与Spring和Guice框架集成支持
  • 提供第三方缓存类库的集成支持
  • 拥有更好的性能

2,MyBatis引导

以下为mybatis-config.xml文件详细内容

<configuration>

      <properties resource="application.properties"/>

     <typeAliases>
        <package name="com.mybatis.entities"/>
     </typeAliases>

      <environments default="development">
        <environment id="development">
          <transactionManager type="JDBC"/>
          <dataSource type="POOLED">
            <property name="driver" value="${jdbc.driverClassName}"/>
            <property name="url" value="${jdbc.url}"/>
            <property name="username" value="${jdbc.username}"/>
            <property name="password" value="${jdbc.password}"/>
          </dataSource>
        </environment>
      </environments>

      <mappers>
        <mapper resource="mappers/StudentMapper.xml"/>
      </mappers>


</configuration>

以下为application.properties文件内容

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=root

配置文件解读:

  • <properties resource=”application.properties”/>:引入外部配置文件,将数据库连接的具体信息引入到该文件中。
  • <enviroments/>:可以配置多个dataSource环境,可以将应用部署到不同的环境上。
  • <dataSource/>:用来配置数据库的连接属性。dataSource的类型可以配置成UNPOOLED,POOLED,JNDI
    • unpooled:mybatis会为每个数据库的操作创建一个新的连接,并关闭它,该方式适合用于小规模数量并发的应用程序。
    • pooled:mybatis会创建一个数据库连接池,连接池中的一个连接会被用作数据库操作。操作完成,将此连接放回连接池中。
    • jndi:mybatis从在应用服务器向配置好的jndi数据源dataSource获取数据库连接,在生产环境中优先考虑。
  • <transactionManager/>:支持两种类型的事务管理器JDBC和MANAGED。
    • JDBC 事务管理器被用作当应用程序负责管理数据库连接的生命周期(提交、回退等等)的时候。当你将TransactionManager 属性设置成 JDBC,MyBatis 内部将使用 JdbcTransactionFactory 类创建TransactionManager。
    • MANAGED 事务管理器是当由应用服务器负责管理数据库连接生命周期的时候使用。当你将TransactionManager 属性设置成 MANAGED 时, MyBatis 内部使用 ManagedTransactionFactory 类创建事务管理器 TransactionManager。

2.1,properties

    <properties resource="application.properties">
    <property name="jdbc.username" value="db_user" />
    <property name="jdbc.password" value="verysecurepwd" />
    </properties>

该元素可以配置在mybatis的配置文件中,如果外部文件拥有和内部配置数据相同的key值,则外部的key值属性会覆盖内部的配置属性。

2.2,typeAliases

在 SQLMapper 配置文件中,对于 resultType 和 parameterType 属性值,我们需要使用 JavaBean 的完全限定名。我们可以为完全限定名取一个别名(alias),然后其需要使用完全限定名的地方使用别名,而不是到处使用完全限定
名。

    <typeAliases>
        <!--Student的类被使用别名Student-->
        <typeAlias alias="Student" type="com.mybatis.entities.Student" />
        <typeAlias alias="Tutor" type="com.mybatis.entities.Tutor" />
        <!--该包下的所有实体类别名为类名开头小写的字符串-->
        <package name="com.mybatis.entities" />
    </typeAliases>

或者在定义实体类的代码中,使用注解@Alias

    @Alias("Student")
    public class Student
    { 
        ...
    }
版权声明:本文为博主原创文章,未经博主允许不得转载。

Python爬虫进阶一之爬虫框架概述

爬虫入门之后,我们有两条路可以走。
  • qq_37267015
  • qq_37267015
  • 2017年03月20日 10:06
  • 1148

MyBatis基础知识

dao:RoleMapper.java package cn.bdqn.dao; import java.util.List; import cn.bdqn.pojo.Role; public ...
  • yang_ai
  • yang_ai
  • 2016年07月29日 16:57
  • 637

计算机网络基础知识点学习(一)(概述)

1.通常所说的网络是指“三网”,即电信网络、有线电视网络、计算机网络。发展最快并起到核心作用的是计算机网络。 2.计算机网络向用户提供的最重要的功能:连通性-计算机网络使上网用户之间都可以交换信息;...
  • fenxinzi557
  • fenxinzi557
  • 2016年07月23日 09:37
  • 900

23种基本设计模式-概述

设计模式,可以使代码更简洁、更优美、更效率、扩展性型更强。 本文对基础知识就不过多阐述了。 对于接口,引申出两个概念:标识接口(没有声明任何方法的接口)和桩(实现了接口,但是实现方法体为空的类)。 标...
  • grp3143167
  • grp3143167
  • 2016年04月19日 13:48
  • 1141

【Mock】之基础介绍

测试驱动开发(TDD)这个概念想必大家都有所了解了,在以往内部逻辑开发完成进行单元测试,抑或是在协同作战、并行工作、跨部门、跨行业协作的过程中,可能都会发现一些测试无从下手,因为被测试模块需要和一些不...
  • webwalker
  • webwalker
  • 2012年09月21日 12:06
  • 695

MyBatis概述及学习资料整理

MyBatis这个名字真的是如雷贯耳,但一直没仔细研究过,最近闲来无事,收集了些资料并写了些Demo,算是有了个初步的认识。必须得说MyBatis的相关资料确实不算多,收集的过程也花了我不少的时间,还...
  • qiubabin
  • qiubabin
  • 2015年11月30日 15:59
  • 985

Mybatis概述(一)

近期抽空阅读了mybatis 3.3.1版本源码,受益匪浅,遂记录一下学习笔记,难免有理解或者写的不恰当的地方,请多谅解。 一、概述 以下是官方文档的原文。 What is MyBatis?...
  • juded
  • juded
  • 2016年09月28日 13:47
  • 348

Libuv库概述

[-] 序言 本书为谁而写背景本书代码 Libuv 基础 事件循环Event loopsHello World libuv 的默认事件循环Default loop 监视器Watchers 空...
  • zhu2695
  • zhu2695
  • 2016年04月25日 22:55
  • 832

NoSQL的入门和概述

一、入门概述 ①互联网时代背景下大机遇,为什么用nosql? A.单机的MySQL的美好年代   在90年代,一个网站的访问量一般不大,用单个数据库完全可以轻松应对,在那个时候,更多的是静态网页,动态...
  • kfengqingyangk
  • kfengqingyangk
  • 2016年11月28日 23:13
  • 256

Spring mvc基本概述

Spring mvc主要是围绕DispatcherServlet这个核心控制器来开展的,DispatcherServlet是Spring mvc的总导演、总策划,它负责截获请求并且将其分发给对应的处理...
  • u012832964
  • u012832964
  • 2016年07月22日 23:08
  • 1134
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一,MyBatis基础概述
举报原因:
原因补充:

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