Mybatis快速入门指南
简介
当下越来越多的企业项目架构中,在持久层部分,抛弃了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快速入门指南的更多相关文章
- MyBatis学习总结(一)——MyBatis快速入门
一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...
- MyBatis快速入门
一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...
- MyBatis学习总结(一)——MyBatis快速入门(转载)
本文转载自http://www.cnblogs.com/jpf-java/p/6013537.html MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了 ...
- MyBatis入门学习教程-MyBatis快速入门
一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...
- AngularJS快速入门指南20:快速参考
thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table ...
- AngularJS快速入门指南19:示例代码
本文给出的大部分示例都可以直接运行,通过点击运行按钮来查看结果,同时支持在线编辑代码. <div ng-app=""> <p>Name: <input ...
- AngularJS快速入门指南18:Application
是时候创建一个真正的AngularJS单页面应用程序了(SPA). 一个AngularJS应用程序示例 你已经了解了足够多的内容来创建第一个AngularJS应用程序: My Note Save Cl ...
- AngularJS快速入门指南17:Includes
使用AngularJS,你可以在HTML中包含其它的HTML文件. 在HTML中包含其它HTML文件? 当前的HTML文档还不支持该功能.不过W3C建议在后续的HTML版本中增加HTML import ...
- AngularJS快速入门指南16:Bootstrap
thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table ...
随机推荐
- 2018.11.25 struts2与OGNL表达式的结合(高级)
两者的结合原理 底层源码分析 栈原理 先进后出 我们的valuestack其实是一个接口 在实现类中有这个参数 CompoundRoot的类继承的是ArrayList,具体实现弹栈和压栈的方法具体实现 ...
- 2018.10.8 Hibernate中解决乱码问题---配置一个过滤器
在web.xml中配置下 <filter> <filter-name>encodeFilter</filter-name> <filter-class> ...
- ABP问题记录
按照<Asp.NET Core2.0与 EF的ABP框架入门视频教程>(https://ke.qq.com/course/287301)下载了3.9版本的ABP,开始学习,下面记录遇到的问 ...
- 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 ...
- NTU Long-Term Positioning Dataset
NTU Long-Term Positioning Dataset 地址:http://www.clarenceliang.com/dataset/ 場景:NTU 博理館外廣場 描述:超過一個月連續拍 ...
- webpack——概念的引入
## 在网页中会引用哪些常见的静态资源?+ JS - .js .jsx .coffee .ts(TypeScript 类 C# 语言)+ CSS - .css .less .sass .scss+ I ...
- Python基础—10-常用模块:time,calendar,datetime
#常用模块 time sleep:休眠指定的秒数(可以是小数) time:获取时间戳(从1970-01-01 00:00:00到此刻的秒数) localtime:将一个时间戳转换为一个对象,对象中包含 ...
- iOS之点击通知栏跳转应用的相关页面
当远程推送通知到达应用,有3个相关的方法是用来处理这个通知的. - (BOOL)application:(UIApplication *)application didFinishLaunchingW ...
- git简单配置
1.安装完git查看版本 git --version 2.配置用户名邮箱 git config --global user.name "chencheng" git config ...
- c++ 数字和字符串的相互转换
需要包含头文件<sstream> 字符串转化为int #include<stdio.h> #include<string.h> #include<iostre ...