写在前面

mybatis是一个持久层框架,可以支持SQL定制和存储过程,实现数据库记录到Java POJO对象之间的映射。

所以说,mybatis是一个ORM框架。

这个ORM可以通过2种方式实现:xml配置,java注解。

使用mybatis可以大大提高数据库应用程序的编写效率,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。

既然mybatis有这么强大的功能,那么如何使用它呢?以及mybatis具体有哪些核心元素和特性呢?

如何使用mybatis

mybatis主要是解决数据库应用程序的中POJO对象与数据库记录之前的映射关系的。

也就是说,只要是涉及关系型数据库的应用编程,都可以使用mybatis作为持久层开发组件。

而多数与数据库打交道的应用程序通常都是B/S架构,如Java Web应用程序;另外,Spring作为Java世界中非常流行的容器框架,所以通常mybatis存在2种应用场景:

其一:在Java Web应用中与Spring框架集成在一起使用,将mybatis中的相关组件交给Spring进行管理;

其二:在普通的数据库应用程序中使用mybatis,此时mybatis的相应组件需要由程序员自己管理;


在使用mybatis之前,需要对其进行一些基础配置,具体包括:

1.properties 属性

2.settings 设置

3.typeAliases 类型别名

4.typeHandlers 类型处理器

5.objectFactory 对象工厂

6.plugins 插件

7.environments 环境

----environment 环境变量

--------transactionManager 事务管理器

--------dataSource

8.databaseIdProvider 数据库厂商标识

9.mappers 映射器


如上这些属性,有些是必须明确配置的,有些可以不用配置,mybatis已经提供了默认值。

具体来讲,environmentsmappers是必须配置的,其他的可以不用明确配置。

举个例子:mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="jdbc.properties"></properties> <settings>
<!-- 指定 MyBatis 所用日志的具体实现,未指定时将自动查找。 -->
<setting name="logImpl" value="LOG4J" />
<!-- 是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN 到经典 Java 属性名 aColumn
的类似映射。 -->
<setting name="mapUnderscoreToCamelCase" value="false" />
</settings> <environments default="development">
<environment id="development">
<transactionManager type="JDBC" /> <!-- 使用自定义的事务管理器: 自动提交事务 -->
<!-- <transactionManager type="org.chench.test.mybatis.transaction.MyJdbcTransactionFactory" /> -->
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments> <mappers>
<!-- 将SQL语句写在xml文件中 -->
<mapper resource="org/chench/test/mybatis/mapper/TestMapper.xml" /> <!-- 将SQL语句写在Java代码中, 这里有2种方式: -->
<!-- 方式一: 注册每一个映射器接口,需要明确注册每一个接口 -->
<!-- 方式二: 指定映射器接口所在包,则该包下的所有映射器接口都会被注册 -->
<!-- <mapper class="org.chench.test.mybatis.mapper.impl.TestMapper" /> -->
<package name="org.chench.test.mybatis.mapper.impl"/>
</mappers>
</configuration>

详细使用mybatis示例:https://gitee.com/cchanghui/test-mybatis.git

mybatis核心组件和特性

1.xml映射文件

2.动态SQL

3.映射器注解:在mybatis3上才可用

4.SQL语句构建器

【参考】

http://www.mybatis.org/mybatis-3/zh/index.html

深入浅出mybatis之入门使用的更多相关文章

  1. 深入浅出Mybatis系列(七)---mapper映射文件配置之insert、update、delete

    上篇文章<深入浅出Mybatis系列(六)---objectFactory.plugins.mappers简介与配置>简单地给mybatis的配置画上了一个句号.那么从本篇文章开始,将会介 ...

  2. 深入浅出Mybatis系列(二)---配置简介(mybatis源码篇)

    上篇文章<深入浅出Mybatis系列(一)---Mybatis入门>, 写了一个Demo简单体现了一下Mybatis的流程.本次,将简单介绍一下Mybatis的配置文件: 上次例子中,我们 ...

  3. 深入浅出Mybatis系列(二)---配置简介(mybatis源码篇)[转]

    上篇文章<深入浅出Mybatis系列(一)---Mybatis入门>, 写了一个Demo简单体现了一下Mybatis的流程.本次,将简单介绍一下Mybatis的配置文件: 上次例子中,我们 ...

  4. 深入浅出Mybatis系列七-mapper映射文件配置之insert、update、delete

    注:本文转载自南轲梦 注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 上篇文章<深入浅出Mybatis系列(六)---objectFactory.p ...

  5. 深入浅出Mybatis系列二-配置简介(mybatis源码篇)

    注:本文转载自南轲梦 注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 上篇文章<深入浅出Mybatis系列(一)---Mybatis入门>, ...

  6. 深入浅出Mybatis系列(三)---配置简介(mybatis源码篇)

    上篇文章<深入浅出Mybatis系列(二)---Mybatis入门>写了一个Demo简单体现了一下Mybatis的流程.本次,将简单介绍一下Mybatis的配置文件: 上次例子中,我们以  ...

  7. MyBatis学习总结(一)——MyBatis快速入门

    一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...

  8. MyBatis快速入门

    一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...

  9. MyBatis学习总结(一)——MyBatis快速入门(转载)

    本文转载自http://www.cnblogs.com/jpf-java/p/6013537.html MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了 ...

随机推荐

  1. httpd配置

    HTTP:Hypertext Transfer Protocol: HTML:Hypertext Markup Language: URL:Uniform Resource Locator,在Inte ...

  2. zabbix监控概念

    监控:数据采集 --> 数据存储 -->  数据展示 报警:采集到的数据超出阈值 SNMP:Simple Network Management Protocol(只能实现数据采集) NMS ...

  3. 每天一个linux命令(1):wc命令

    Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数.字数.行数,并将统计结果显示输出. 1.命令格式: wc [选项]文件... 2.命令功能: 统计指定文件中的字节数. ...

  4. 「NOI2014」购票 解题报告

    「NOI2014」购票 写完了后发现写的做法是假的...然后居然过了,然后就懒得管正解了. 发现需要维护凸包,动态加点,询问区间,强制在线 可以二进制分组搞,然后你发现在树上需要资瓷撤回,然后暴力撤回 ...

  5. 2018 ICPC 焦作网络赛 E.Jiu Yuan Wants to Eat

    题意:四个操作,区间加,区间每个数乘,区间的数变成 2^64-1-x,求区间和. 题解:2^64-1-x=(2^64-1)-x 因为模数为2^64,-x%2^64=-1*x%2^64 由负数取模的性质 ...

  6. [luoguU48574][藏妹子之处]

    题目链接 思路 首先,因为这是曼哈顿距离,所以很容易就可以将这三个点之间的距离转化为一个矩形,那么这三个点在矩形上的分布只有六种可能. 假设当前矩形的长为n,宽为m.那么可以发现,无论是哪一种情况,这 ...

  7. 以Attribute加上Header验证

    建立新FilterAttribute继承AuthorizationFilterAttribute,覆写OnAuthorization拦截传入的HttpActionContext内容判断是否有传入指定的 ...

  8. Tennis Game CodeForces - 496D(唯一分解定理,费马大定理)

    Tennis Game CodeForces - 496D 通过排列组合解决问题. 首先两组不同素数的乘积,是互不相同的.这应该算是唯一分解定理的逆运用了. 然后是,输入中的素数,任意组合,就是n的因 ...

  9. 22. Generate Parentheses(ML)

    22. Generate Parentheses . Generate Parentheses Given n pairs of parentheses, write a function to ge ...

  10. MYSQL Innodb逻辑存储结构

    转载于网络 这几天在读<MySQL技术内幕 InnoDB存储引擎>,对 Innodb逻辑存储结构有了些了解,顺便也记录一下: 从InnoDB存储引擎的逻辑存储结构看,所有数据都被逻辑地存放 ...