目录
Mybatis 动态 SQL
1.set
set可以动态根据是否有条件成立添加set,可以去除最后的逗号
2.trim
trim(set where)也可以实现,suffixOverrides可以去掉后面的逗号
3. foreach
- 它可以在 SQL 语句中迭代一个集合
- foreach元素的属性主要有 item,index,collection,open,separator,
- close.item 表示集合中每一个元素进行迭代时的别名,index 指定一个名字,用于表示在迭代过程中,每次迭代到的位置,
- open 表示该语句以什么开始,separator 表示在每次进行迭代之间以什么符号作为分隔符,close 表示以什么结束
特殊符号处理
1.html转义字符
- <表示左半括号<
- &qt;表示右半括号>
- 不换行空格
- ©商标版权 ©
- ®已注册®
2.mybatis 中的 xml文件中的转义字符
- < <
- > >
- " "
- ' '
- & &
除了可以使用上述转义字符外,还可以使用<![CDATAIII>来包裹特殊字符。<![CDATA[ ] ]>是XML 语法。在 CDATA 内部的所有内容都会被解析器忽略,尽量只将特殊符号写在里面。
Mybatis缓存功能
1.缓存作用
可以将数据缓存到内存、手机内存、客户端硬盘中,为了让程序更快的访问到数据,同时也是为了减少数据库的访问压力。
2.一级缓存
mybatis提供一级缓存和二级缓存,默认开启一级缓存,一级是SqLsession级别的,当第一次查询数据时,将查到的结果封装到SqLsession对象中,在同一个sqlsession中执行相同的第二次查询时,直接从sqlsession中获取
3.一级缓存失效
- sqlsession.close(); 销毁sqLSession对象
- sqlSesslon,clearCache(); 主动清除缓存
- 执行增删改操作会清除缓存的数据
4.二级缓存
mybatis二级缓存是SqlSessionFactory级别(只有一个),将查询到的数据如果放到二级缓存中,就可以实现多个sqLsession共享,当第一次查询到数据后,关闭sqlseesion时,将数据存入到二级缓存中
5.二级缓存的使用需要配置
<setting name="cacheEnabled” value="true"/>
<cache flushInterval="1000”></cache>
模型类实现序列化接口