简介

当下越来越多的企业项目架构中,在持久层部分,抛弃了Hibernate框架,而选用Mybatis框架取而代之,旨在更加深入细致的控制和数据库的交互。

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11日决定迁移到Github。

最新资源地址:

https://github.com/mybatis/mybatis-3/releases/download/mybatis-3.2.8/mybatis-3.2.8.zip

最新源码地址:

https://github.com/mybatis/mybatis-3/archive/mybatis-3.2.8.zip

官方包结构:

集成

简单介绍了这个框架后,下面我们开始来集成使用它,所有的操作都围绕着官方文档来,上手很简单。步骤如下:

1.导入“核心包”和所有的“依赖包”;

2.添加配置文件mybatis.cfg.xlm,配置数据库基本链接和事务

3.创建用户(User)模型,提供基本的id,username,password等字段

4.添加模型对于的Mapper文件(Hibernate是基于对象关系映射,所以会有hbm文件;而Mybatis是基于操作和sql映射,这里就是mapper文件了),参照文档第8页:

5.在Mybatis.cfg.xml中,添加mapper文件配置:

6.如果在mapper文件中,使用了对象的简单名称,需要在mybatis.cfg.xml中,添加如下配置:

7.创建数据库连接工具--MybatisUtils:

8.测试

总结

说的最多的还是Mybatis和Hibernate的对比,在这里总结几点:

1.Hibernate中对象相关的配置文件为hbm文件,而Mybatis中对象相关配置文件为Mapper文件。

2.Hibernate框架对数据库数据的操作,完全是按照面向对象的方式,只需把操作的对象放入API方法就行,不用关心SQL;而Mybatis操作中,对象和对于的SQL都需要自己编写。

3.Hibernate框架的强大在于他的封装,简化和封装了很多细节,虽然减轻开发者负担,但是多了很多未知(很多开发者不知道他怎么做的);Mybatis框架的所有操作的每一个细节都是由开发者自己完成,这样虽然要做的事多了,但是全程可控。

在项目中,你们会选择使用一个一知半解,使用简单;还是选择一个稍微复杂,而全程可控的框架呢 ?

Mybatis快速入门指南的更多相关文章

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

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

  2. MyBatis快速入门

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

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

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

  4. MyBatis入门学习教程-MyBatis快速入门

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

  5. AngularJS快速入门指南20:快速参考

    thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table ...

  6. AngularJS快速入门指南19:示例代码

    本文给出的大部分示例都可以直接运行,通过点击运行按钮来查看结果,同时支持在线编辑代码. <div ng-app=""> <p>Name: <input ...

  7. AngularJS快速入门指南18:Application

    是时候创建一个真正的AngularJS单页面应用程序了(SPA). 一个AngularJS应用程序示例 你已经了解了足够多的内容来创建第一个AngularJS应用程序: My Note Save Cl ...

  8. AngularJS快速入门指南17:Includes

    使用AngularJS,你可以在HTML中包含其它的HTML文件. 在HTML中包含其它HTML文件? 当前的HTML文档还不支持该功能.不过W3C建议在后续的HTML版本中增加HTML import ...

  9. AngularJS快速入门指南16:Bootstrap

    thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table ...

随机推荐

  1. 2018.11.25 struts2与OGNL表达式的结合(高级)

    两者的结合原理 底层源码分析 栈原理 先进后出 我们的valuestack其实是一个接口 在实现类中有这个参数 CompoundRoot的类继承的是ArrayList,具体实现弹栈和压栈的方法具体实现 ...

  2. 2018.10.8 Hibernate中解决乱码问题---配置一个过滤器

    在web.xml中配置下 <filter> <filter-name>encodeFilter</filter-name> <filter-class> ...

  3. ABP问题记录

    按照<Asp.NET Core2.0与 EF的ABP框架入门视频教程>(https://ke.qq.com/course/287301)下载了3.9版本的ABP,开始学习,下面记录遇到的问 ...

  4. spring boot Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration

    java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @Context ...

  5. NTU Long-Term Positioning Dataset

    NTU Long-Term Positioning Dataset 地址:http://www.clarenceliang.com/dataset/ 場景:NTU 博理館外廣場 描述:超過一個月連續拍 ...

  6. webpack——概念的引入

    ## 在网页中会引用哪些常见的静态资源?+ JS - .js .jsx .coffee .ts(TypeScript 类 C# 语言)+ CSS - .css .less .sass .scss+ I ...

  7. Python基础—10-常用模块:time,calendar,datetime

    #常用模块 time sleep:休眠指定的秒数(可以是小数) time:获取时间戳(从1970-01-01 00:00:00到此刻的秒数) localtime:将一个时间戳转换为一个对象,对象中包含 ...

  8. iOS之点击通知栏跳转应用的相关页面

    当远程推送通知到达应用,有3个相关的方法是用来处理这个通知的. - (BOOL)application:(UIApplication *)application didFinishLaunchingW ...

  9. git简单配置

    1.安装完git查看版本 git --version 2.配置用户名邮箱 git config --global user.name "chencheng" git config ...

  10. c++ 数字和字符串的相互转换

    需要包含头文件<sstream> 字符串转化为int #include<stdio.h> #include<string.h> #include<iostre ...