【串线篇】MyBatis简介
一、MyBatis
和数据库进行交互;持久化层框架(SQL映射框架);
1)、纯手工
从原始的JDBC----dbutils(QueryRunner)-------JdbcTemplate----xxx;不再使用
称为工具;
工具:一些功能的简单封装
框架:某个领域的整体解决方案;缓存,考虑异常处理问题,考虑部分字段映射问题。。。
不用原生JDBC:
1)、麻烦;
2)、sql语句是硬编码在程序中的;耦合(数据库层DAO的和java编码耦合);
2)、全自动
Hibernate-数据库交互的框架(ORM框架) (全自动的框架,不需要写任何SQL)
ORM(Object Relation Mapping)对象关系映射;
创建好javaBean;
@Table("t_employee")
class Employee{
private Integer empId;
private String empName;
}
后
session.get("1",Employe.class);即可
缺点:
1)、定制sql;
2)、HQL;SQL;
3)、全映射框架,会返回一行整个对象; 部分字段映射很难;能做;
3)希望:最好有一个框架能支持定制化sql,而且还功能强大;
sql也不要硬编码在java文件中(导致维护修改起来比较麻烦);
半自动的Mybatis除过SQL配置文件外,其余部分自动执行
见下图:
二、
1)、MyBatis将重要的步骤抽取出来可以人工定制,其他步骤自动化;
2)、重要步骤都是写在配置文件中(好维护);
3)、完全解决数据库的优化问题;
4)、MyBatis底层就是对原生JDBC的一个简单封装;
5)、既将java编码与sql抽取了出来,还不会失去自动化功能;半自动的持久化层框架;
6)、mybatis是一个轻量级的框架;
【串线篇】MyBatis简介的更多相关文章
- Mybatis配置信息浅析 MyBatis简介(二)
官方文档入门篇中有明确说明 每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的. SqlSessionFactory 的实例可以通过 SqlSessionF ...
- iOS开发UI篇—CALayer简介
iOS开发UI篇—CALayer简介 一.简单介绍 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView. 其实 ...
- MyBatis学习(一)、MyBatis简介与配置MyBatis+Spring+MySql
一.MyBatis简介与配置MyBatis+Spring+MySql 1.1MyBatis简介 MyBatis 是一个可以自定义SQL.存储过程和高级映射的持久层框架.MyBatis 摒除了大部分的J ...
- 1.mybatis简介
mybatis简介 MyBatis 是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为My ...
- MyBatis学习 之 一、MyBatis简介与配置MyBatis+Spring+MySql
目录(?)[-] 一MyBatis简介与配置MyBatisSpringMySql MyBatis简介 MyBatisSpringMySql简单配置 搭建Spring环境 建立MySql数据库 搭建My ...
- MyBatis简介与配置MyBatis+Spring+MySql
MyBatis学习 之 一.MyBatis简介与配置MyBatis+Spring+MySql MyBatis学习 之 二.SQL语句映射文件(1)resultMap MyBatis学习 之 二.SQL ...
- iOS开发多线程篇—多线程简介
iOS开发多线程篇-多线程简介 一.进程和线程 1.什么是进程 进程是指在系统中正在执行的一个应用程序 每一个进程之间是独立的.每一个进程均执行在其专用且受保护的内存空间内 比方同一时候打开QQ.Xc ...
- 第一个Mybatis程序示例 Mybatis简介(一)
在JDBC小结中(可以参阅本人JDBC系列文章),介绍到了ORM,其中Mybatis就是一个不错的ORM框架 MyBatis由iBatis演化而来 iBATIS一词来源于“internet”和“aba ...
- Mybatis sql映射文件浅析 Mybatis简介(三)
简介 除了配置相关之外,另一个核心就是SQL映射,MyBatis 的真正强大也在于它的映射语句. Mybatis创建了一套规则以XML为载体映射SQL 之前提到过,各项配置信息将Mybatis应用的整 ...
- Mybatis动态SQL简单了解 Mybatis简介(四)
动态SQL概况 MyBatis 的强大特性之一便是它的动态 SQL 在Java开发中经常遇到条件判断,比如: if(x>0){ //执行一些逻辑........ } Mybatis应用中,S ...
随机推荐
- python-字符串的处理
s1 = '###12314##231###' print(s1.split('#')) #split,从左往右遇见# 就拆分一次['', '', '', '12314', '', '231', '' ...
- bzoj5161 最长上升子序列 状压DP(DP 套 DP) + 打表
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=5161 题解 回顾一下以前用二分求 LIS 的方法:令 \(f[i]\) 表示长度为 \(i\) ...
- [BZOJ3626] [LNOI2014] LCA 离线 树链剖分
题面 考虑到询问的\(l..r,z\)具有可减性,考虑把询问差分掉,拆成\(r,z\)和\(l-1,z\). 显然这些LCA一定在\(z\)到根的路径上.下面的问题就是怎么统计. 考虑不是那么暴力的暴 ...
- 牛客网NOIP赛前集训营-提高组(第六场) C-树
题目描述 有一棵有 n 个结点的树,每条边有编号为 0,1,2 的三种颜色,刚开始每条边颜色都为 0 . 现在有 3 种操作: \(1\ x\ y\ col\) ,表示询问 \(x\) 到 \(y\) ...
- VS2005下使用GSL-1.15小结
最近在复习高等数学,有时为了验证顺便复习下C语言,看了看自己下载收集的软件,发现C语言有一个数学工具包,是GNU开发的,叫做GSL--GNU Scientific Library,中文:C++科学计算 ...
- 【leetcode】1023. Binary String With Substrings Representing 1 To N
题目如下: Given a binary string S (a string consisting only of '0' and '1's) and a positive integer N, r ...
- Vue $ref 的用法
<div id="app"> <cpn $ref="item"></cpn> <cpn></cpn> ...
- vector内存增长方式
首先必须要了解vector是一种特殊的数组,因此其内存必然是连续的 其次它的连续是建立在不断地对内存的预分配上的,即不断地销毁当前,重新建立内存,效率有点低.所以存在几个函数capacity, siz ...
- Review: 9-13 July
9 July 并查集 int fa[]; for (int i=1; i<=n; ++i) fa[i]=i; int f(int x){return fa[x]==x?x:fa[x]=f(fa[ ...
- php 封装原生数据导出的方法(csv文件格式)和csv文件中长数字自动变成科学计数法的处理
如何解决上图长数字自动转换处理? CSV文件中长数字自动变成科学计数法处理.用程序导出的csv文件,当字段中有比较长的数字字段存在时,在用excel软件查看csv文件时就会变成科学计数法的表现形式. ...