是什么

官网定义 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

最新文章

  1. svg格式的中国地图轮廓图
  2. 第一部分:C9高校、985和211、双一流
  3. 模拟storage copy 功能失败的记录
  4. Redux介绍及基本应用
  5. casperjs配合phantomjs实现自动登录百度,模拟点击等等操作 - 怕虎在线www.ipahoo.com图文教程 - 怕虎在线
  6. (原)使用vectot的.end()报错:iterators incompatible
  7. GitLal+sourceTree版本号管理
  8. HttpWebRequest的简单使用
  9. ural 1353. Milliard Vasya&#39;s Function(dp)
  10. Android Fragment 开发(一)
  11. 工作中代码笔记 -- adb命令篇
  12. Redis Cluster架构优化
  13. [Swift]LeetCode591. 标签验证器 | Tag Validator
  14. 洛谷P3740 【[HAOI2014]贴海报】
  15. NIO(三)
  16. redis(一)
  17. 机器学习 之KNN近邻法
  18. Java 中声明和语句
  19. 总结 推广app
  20. win7 资源资源管理器访问FTP站点

热门文章

  1. linux100day(day8)--shell监控脚本练习
  2. linux 命令 - ls(列出目录内容)
  3. Java网络编程:IP地址和端口号
  4. python bezier 曲线
  5. docker-ce创建gitlab-ce容器笔记
  6. C# 使用猫拨打电话
  7. MySQL-事件总结
  8. MariaDB 插入查询
  9. models 创建表时容易出现的错误 及解决办法
  10. POJ 3468 A Simple Problem with Integers(线段树区间修改及查询)