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