【Mybatis框架 学习】专栏总集篇
时间:2020-05-21
本文章向大家介绍【Mybatis框架 学习】专栏总集篇,主要包括【Mybatis框架 学习】专栏总集篇使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
基本概念:
图标:
概念:
MyBatis 是一款优秀的持久层框架
它支持定制化 SQL、存储过程 以及 高级映射
MyBatis 避免了几乎所有的 JDBC 代码 、 手动设置参数 以及 获取结果集
MyBatis 可以使用简单的 XML配置文件 或 注解 来配置和映射 原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为 数据库中的记录
诞生背景:
- MyBatis 本是apache公司 的一个 开源项目 —— iBatis
- 2010年这个项目由apache software foundation 迁移到了google code,
并且改名为MyBatis- 2013年11月迁移到Github
特点:
- 自动化
- 简单易学
- 灵活
- sql和代码的分离,提高了可维护性
- 提供映射标签,支持对象与数据库的orm字段关系映射
- 提供对象关系映射标签,支持对象关系组建维护
- 提供xml标签,支持编写动态sql
- 最重要的一点:使用的人多!
在本人之前的博文中,本人讲到:dao层的框架,是由hibernate衍变到MyBatis的
那么,hibernate和MyBatis之间,有哪些区别呢?
hibernate 与 MyBatis 之间的 区别:
- 在hibernate框架中:
不需要 写 sql
每new一个对象,就调用hibernate的api,使得对象直接映射到数据库中了
因此被称之为 全自动化 持久层框架
hibernate更强大,难懂- 在mybatis框架中:
sql 是需要 程序员自己写 的
因此被称之为 半自动化 持久层框架
mybatis更灵活,易学
Maven导入:
<!-- mybatis核心 -->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!--数据库驱动,根据自己的配置选择版本-->
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.2</version>
</dependency>
Mybatis初使用:
请观看本人博文 —— 《【Mybatis框架 学习】Mybatis初使用》
相信许多同学看了上面的初始用的例子,对于好多知识点一头雾水
那么,现在本人就来讲解下上文中的CRUD操作的细节:
CRUD操作 的细节:
namespace:
namespace中的包名 要和 Dao/mapper 接口的包名一致!
例如:
select操作:
- 功能:
查询语句
- 属性:
- id:
就是对应的namespace中的方法名- resultType:
Sql语句执行的返回值类型- parameterType:
参数类型
例如:
insert操作:
- 功能:
插入语句
- 属性:
- id:
就是对应的namespace中的方法名- resultType:
Sql语句执行的返回值类型- parameterType:
参数类型
例如:
delete操作:
- 功能:
删除语句
- 属性:
- id:
就是对应的namespace中的方法名- resultType:
Sql语句执行的返回值类型- parameterType:
参数类型
例如:
update操作:
- 功能:
修改语句
- 属性:
- id:
就是对应的namespace中的方法名- resultType:
Sql语句执行的返回值类型- parameterType:
参数类型
例如:
使用mapper定义的sql:
1. 获取SqlSession对象:
格式:
InputStream stream = Resources.getResourceAsStream("配置文件的路径名");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(stream);
SqlSession session = sessionFactory.openSession();
例如:
2. 根据 需求 调用 相应方法:
相关方法:
- selectOne()
- selectList()
- delete()
- update()
- insert()
例如:
注意点:
增、删、改操作 必须要 提交事务
而凡是dao层框架,都用到了一个技术 —— ORM技术
那么,现在,本人就来介绍并实现下ORM技术:
ORM技术 的基本实现:
请观看本人博文 —— 《详解 ORM技术 的基本实现》
官方文档:
若同学们还对于Mybatis框架的基本知识点抱有疑问,请访问下面的官方文档链接:
Mybatis 的 官方文档:
原文地址:https://www.cnblogs.com/codderYouzg/p/12932445.html
- 趣味理解朴素贝叶斯
- 碎片化 | 第七阶段-11-小明的故事之集群、负载、并发-视频
- 碎片化 | 第五阶段-05-需求变更如何处理-视频
- 浏览器的UI线程
- 碎片化 | 第五阶段-06-BUG如何去处理-视频
- 碎片化 | 第六阶段-04-搭建nginx和Tomcat集群环境-视频
- SQL注入攻防入门详解
- jQuery插件编写步骤详解
- 深入探秘Neutron API
- 碎片化 | 第七阶段-10-session共享解决方案-视频
- CSS选择器是如何确定优先级的?
- JS中控制好this关键字的指向
- 碎片化 | 第四阶段-46-值栈valueStack介绍和原理-视频
- Laravel中运行Gulp任务的利器(一) —— Laravel Elixir简介及入门教程
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 前端进阶知识汇总
- 前端也能学算法:由浅入深讲解动态规划
- 轻松理解JS中的面向对象,顺便搞懂prototype和__proto__
- 前端也能学算法:由浅入深讲解贪心算法
- web.py指南性说明
- this到底指向啥?看完这篇就知道了!
- 学以致用:手把手教你撸一个工具库并打包发布,顺便解决JS小数计算不准问题
- python 实现 php 的 var_dump 功能
- RSA初探,聊聊怎么破解HTTPS
- 深入解析Underscore.js源码架构
- python正向连接后门
- setTimeout和setImmediate到底谁先执行,本文让你彻底理解Event Loop
- emlog全版本CSRF加用户xsser.me模块
- 从发布订阅模式入手读懂Node.js的EventEmitter源码
- 手写一个Promise/A+,完美通过官方872个测试用例