是什么

官网定义 http://www.mybatis.org/mybatis-3/

百科定义(维基百科) https://en.wikipedia.org/wiki/MyBatis

Github: https://github.com/mybatis/

同类技术有哪些:Hibernate,JDBC,JPA

对比同类的优缺点是什么:Hibernte是对象关系映射框架(ORM),将java类映射到数据库表。MyBatis是持久化框架-而不是ORM,将SQL语句映射到java方法。hibernate自动生成sql,mybatis支持复制sql;hibernate提供更高级别的缓存,mybatis支持的缓存低;hibernate使用存储过程困难,mybatis使用存储过程容易;

Mybatis使用场景:将java方法映射到sql语句;复杂查询,动态SQL,存储过程;需要维护SQL,在关系数据模型驱动。Hibernate:将java对象的实例映射到数据库中的实际行;由对象模型驱动。

学习前提(需要哪些基础知识):java,sql,xml....

总结:是一个java持久化框架,使用XML或注解,将对象与存储过程或SQL耦合在一起。mybatis不将java对象映射到数据库表,而将java方法映射到SQL语句。mybatis允许使用所以的数据库功能。mybatis简化了JDBC过程。支持动态SQL:使用Apache Velocity动态构建SQL语句。

MyBatis与Spring Framework和Google Guice集成。此功能允许用户构建没有依赖关系的业务代码。

MyBatis Generator IDEA插件的使用

为什么出现(为什么需要这个技术)

解决什么问题:简化持久化操作,对JDBC封装,简化数据库的连接,以及对sql的传参,将结果映射为java对象返回

没有这个技术前怎么做?使用JDBC进行数据的持久化 https://www.cnblogs.com/hongten/archive/2011/03/29/1998311.html

XML SQL

井号:是预编译处理,解析传递进来的参数数据,以有效的防止SQL注入,提高系统安全性。一定是占位符

${}是字符串替换,对传递进来的参数原样拼接在SQL中。一定是值

xml映射配置文件properties语法:

<!-- 定义 -->
<properties> <property name="username" value="root"/> <property name="password" value="root"/></properties>

~~~

~~~

typeAliases:类型别名是为java类型命名一个短的名字。只用来减少类完全限定名的多余部分语法

~~~

~~~

动态SQL:

~~~
trim|where|set|foreach|if|choose|when|otherwise|bind。
~~~

if choose ,when,otherwise
和java中的switch类似语法:

~~~

.......

~~~

where语法:

~~~

.....
.....
.....

~~~

如果where元素没有做出想要的,可以使用trim元素来自定义

~~~
...

~~~

set语法:只用于update,set元素可以被用于动态包含更新的列,而不包含不需要更新的。

~~~

~~~

bind可以在bind语句中定义一个键值对,比如可以定义一个模糊查询的字符串:

~~~
"'%' + _parameter.getTitle() + '%'"
~~~

在select语句中使用键。

比如:

~~~

SELECT * FROM BLOG WHERE title LIKE #{pattern}

~~~

接口绑定xml的方式:
一种是通过注解绑定,就是在接口的方法上面加上@Select@Update等注解,里面包含Sql语句来绑定。
另外一种就是通过xml里面写SQL来绑定,在这种情况下,要指定xml映射文件里面的namespace必须为接口的全路径名

提升mybayis技能,javaAPI就是你所做的努力的地方。

mybatis缓存
一:cache机制缓存:是介于应用程序和屋里数据源之间的临时或永久存储空间。作用:是为了降低引用程序对屋里数据源访问的频次,从而提高应用的运行性能。结构:缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据mytabis缓存

一级缓存mybatis默认级缓存。
一级缓存是在sqlsession层面进行缓存的。
二级缓存二级缓存又称之为SessionFactory的缓存,由于SessionFactory的缓存。

二级缓存中应用场合:
1.很少被修改的数据
2.不是很重要的数据,允许出现偶尔并发的数据
3.常量数据。
二级缓存配置

~~~

mapper.xml:
~~~

要使用二级缓存的方法 只有不要修改的商品,
可以放在二级缓存中。把查询语句单独建一个mapper.xml,设置为一个二级缓存。

插件的使用:mybatis-generator

Mybatis-概况的更多相关文章

  1. 基于SpringMVC+Spring+MyBatis实现秒杀系统【概况】

    前言 本教程使用SpringMVC+Spring+MyBatis+MySQL实现一个秒杀系统.教程素材来自慕课网视频教程[https://www.imooc.com/learn/631].有感兴趣的可 ...

  2. 01 mybatis框架整体概况(2018.7.10)-

    01 mybatis框架整体概况(2018.7.10)- F:\廖雪峰 JavaEE 企业级分布式高级架构师课程\廖雪峰JavaEE一期\第一课(2018.7.10) maven用的是3.39的版本 ...

  3. Spring+Maven+Dubbo+MyBatis+Linner+Handlebars—Web开发环境搭建

    本文主要分三部分,分别是:后台核心业务逻辑.桥梁辅助控制和前台显示页面. 本Web开发环境综合了多种工具,包括Maven包管理与编译工具.Dubbo分布式服务框架.MyBatis数据持久化工具.Lin ...

  4. Mybatis中的collection、association来处理结果映射

    前不久的项目时间紧张,为了尽快完成原型开发,写了一段效率相当低的代码. 最近几天闲下来,主动把之前的代码优化了一下:)   标签:Java.Mybatis.MySQL 概况:本地系统从另外一个系统得到 ...

  5. javaweb项目-医者天下 (Spring+SpringMVC+MyBatis)

    项目下载地址:http://download.csdn.net/detail/qq_33599520/9826683 项目完整结构图: 项目简介: 医者天下项目是一个基于Spring+SpringMV ...

  6. Mybatis sql映射文件浅析 Mybatis简介(三)

    简介 除了配置相关之外,另一个核心就是SQL映射,MyBatis 的真正强大也在于它的映射语句. Mybatis创建了一套规则以XML为载体映射SQL 之前提到过,各项配置信息将Mybatis应用的整 ...

  7. Mybatis动态SQL简单了解 Mybatis简介(四)

    动态SQL概况 MyBatis 的强大特性之一便是它的动态 SQL 在Java开发中经常遇到条件判断,比如: if(x>0){ //执行一些逻辑........ }   Mybatis应用中,S ...

  8. Mybatis的分表实战

    前言: 以前写代码, 关于mysql的分库分表已被中间件服务所支持, 业务代码涉及的sql已规避了这块. 它对扩展友好, 你也不知道到底他分为多少库, 多少表, 一切都是透明的. 不过对于小的团队/工 ...

  9. Mybatis sql映射文件浅析 Mybatis简介(三) 简介

    Mybatis sql映射文件浅析 Mybatis简介(三)   简介 除了配置相关之外,另一个核心就是SQL映射,MyBatis 的真正强大也在于它的映射语句. Mybatis创建了一套规则以XML ...

  10. MyBatis实战之映射器

    映射器是MyBatis最强大的工具,也是我们使用MyBatis时用得最多的工具,因此熟练掌握它十分必要.MyBatis是针对映射器构造的SQL构建的轻量级框架,并且通过配置生成对应的JavaBean返 ...

随机推荐

  1. erlang应用程序启动

    (1)erlang应用程序启动过程中,还可以分阶段启动.          在erlang应用程序的资源文件*.app可以定义分步骤启动.            *.app中的start_phase字 ...

  2. 笔记78 HttpStatus

    HttpStatus = { //Informational 1xx 信息 '100' : 'Continue', //继续 '101' : 'Switching Protocols', //交换协议 ...

  3. css 设置背景图片透明

    最终效果: 背景图片css不变,再背景图片的里层元素设置css样式即可 opacity:0.4; filter:alpha(opacity=40); /* 针对 IE8 以及更早的版本 */

  4. bean的初始化和销毁方法

    1.bean的生命周期: bean创建---初始化----销毁的过程 容器管理bean的生命周期: 我们可以自定义初始化和销毁方法:容器在bean进行到当前生命周期的时候来调用我们自定义的初始化和销毁 ...

  5. 1.什么是微信小程序

    微信小程序,简称CX,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用.也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题. 应用将无处 ...

  6. Mybatis配置——自动使用驼峰命名 属性映射字段(默认为false)

    开发一个新项目,用的springboot,相关配置不太熟悉,导致一些配置没配,到具体开发时问题就暴露出来了,记录第一个配置问题----Mybatis配置-自动使用驼峰命名 属性(userId)映射字段 ...

  7. vue.js 分页

    <template> <div class="index"> <el-pagination background :hide-on-single-pa ...

  8. 【leetcode】945. Minimum Increment to Make Array Unique

    题目如下: Given an array of integers A, a move consists of choosing any A[i], and incrementing it by 1. ...

  9. vue实现选项卡切换效果

    效果如下: 说明: 这里我使用的原理是利用vue中的v-show/显示隐藏指令,当为true的时候显示,为false的时候隐藏 1html代码: <head> <meta chars ...

  10. 探索Redis设计与实现8:连接底层与表面的数据结构robj

    本文转自互联网 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial ...