MyBaits入门完结篇(1)


trim标签


截取字符串

prefix=“” :前缀,为我们下面的sql语句整体添加一个前缀

prefixOverrides=“” :取出整体字符串前面可能多余的字符

suffix=“” :为整体添加一个后缀

suffixOverrides=“”:取出整体字符串后面可能多用的字符


下面自动帮我们添加一个where前缀,去掉整体最开始的and和最后的and

<?xml version="1.0" encoding="UTF-8" ?>

SELECT l.id,l.lockName name,l.price FROM lock l

and id > #{id}

and lockName like #{name}

and price < #{price} and

在这里插入图片描述


foreach标签


在这里插入图片描述

LockDao接口类:

public interface LockDao {

public List getLockByCondition(@Param(“list”) List listId);

}

LockDao.xml:

<?xml version="1.0" encoding="UTF-8" ?>

SELECT l.id,l.lockName name,l.price FROM lock l WHERE id IN

/对应list集合来说,key默认为list,我们也可以自己指定参数的key值/

#{id_item}

main:

public class main {

static SqlSessionFactory sqlSessionFactory;

static public void initSqlSessionFactory() throws IOException {

String resource = “MyBaits-config.xml”;

InputStream inputStream = Resources.getResourceAsStream(resource);

sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

}

public static void main(String[] args) throws IOException

{

initSqlSessionFactory();

SqlSession sqlSession = sqlSessionFactory.openSession(true);

try{

LockDao lock = sqlSession.getMapper(LockDao.class);

List idList=new LinkedList();

idList.add(1);

idList.add(2);

idList.add(3);

idList.add(4);

idList.add(5);

List lockList = lock.getLockByCondition(idList);

for(Lock l:lockList)

{

System.out.println(1);

}

}finally

{

sqlSession.close();

}

}

}

在这里插入图片描述


chose标签—当做if…else或者switch使用


LockDao.xml :

<?xml version="1.0" encoding="UTF-8" ?>

SELECT l.id,l.lockName name,l.price FROM lock l

id=#{id}

id=2

LockDao接口:

public interface LockDao {

public Lock getLockByCondition(@Param(“id”) Integer id);

}

在这里插入图片描述


如果传入对象,那么在使用属性名的时候可以识别

传入基本数据类型时,防止如下错误发生:There is no getter for property named id in class java.lang.Integer ,给参数设置key名

在这里插入图片描述


字段部分更新-----》if结合set

在这里插入图片描述

update lock

lockName=#{name},

price=#{price},

id=#{id}

在这里插入图片描述

在这里插入图片描述


OGNL表达式


在这里插入图片描述

不仅可以直接调用属性,还可以调用方法

OGNL表达式里面的集合伪属性

在这里插入图片描述

//前提,list是集合


不仅可以判断参数,还可以判断_parameter和_databasedId

在这里插入图片描述


bind标签


bind 元素允许你在 OGNL 表达式以外创建一个变量,并将其绑定到当前的上下文。比如:

SELECT * FROM BLOG

WHERE title LIKE #{pattern}



sql标签配合include标签完成对重复sql语句的抽取


在这里插入图片描述


要在带注解的映射器接口类中使用动态 SQL,可以使用 script 元素


在这里插入图片描述


缓存

=================================================================

在这里插入图片描述


一级缓存


在这里插入图片描述

在这里插入图片描述

一级缓存失效情况

在这里插入图片描述

在这里插入图片描述

手动清空缓冲的函数:

sqlSession.clearCache();


二级缓存: namespace级别的缓存,隔一段时间会自动刷新缓存


只有在sqlSession关闭或提交后,才会把数据从一级缓存中,搬家来到二级缓存

在这里插入图片描述


第一步:配置文件中开启二级缓存

第二步:在需要使用二级缓存的映射文件中使用cache配置缓存

第三步: POJO对象需要实现序列化接口

在这里插入图片描述


二级缓存cache标签里面的相关属性

在这里插入图片描述


缓存的查询顺序


在这里插入图片描述


缓存原理----每一个dao有他自己的二级缓存


在这里插入图片描述


缓存有关的设置


在这里插入图片描述


整合第三方缓存—这里整合ehcache—java进程内的缓存框架


1.导入依赖

net.sf.ehcache

ehcache-core

2.6.8

org.mybatis.caches

mybatis-ehcache

1.0.3

org.slf4j

slf4j-api

1.7.21

org.slf4j

slf4j-log4j12

1.7.21

test


2.ehcache要工作需要一个配置文件,文件名叫ehcache.xml,放在类路径的根目录下

<?xml version="1.0" encoding="UTF-8"?>

<ehcache xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xsi:noNamespaceSchemaLocation=“http://ehcache.org/ehcache.xsd”

updateCheck=“false”>

<defaultCache maxElementsInMemory=“1000”

eternal=“false”

timeToIdleSeconds=“3600”

timeToLiveSeconds=“0”

overflowToDisk=“true”

2021年Java中高级面试必备知识点总结

在这个部分总结了2019年到目前为止Java常见面试问题,取其面试核心编写成这份文档笔记,从中分析面试官的心理,摸清面试官的“套路”,可以说搞定90%以上的Java中高级面试没一点难度。

本节总结的内容涵盖了:消息队列、Redis缓存、分库分表、读写分离、设计高并发系统、分布式系统、高可用系统、SpringCloud微服务架构等一系列互联网主流高级技术的知识点。

目录:

(上述只是一个整体目录大纲,每个点里面都有如下所示的详细内容,从面试问题——分析面试官心理——剖析面试题——完美解答的一个过程)

部分内容:

对于每一个做技术的来说,学习是不能停止的,小编把2019年到目前为止Java的核心知识提炼出来了,无论你现在是处于什么阶段,如你所见,这份文档的内容无论是对于你找面试工作还是提升技术广度深度都是完美的。

不想被后浪淘汰的话,赶紧搞起来吧,高清完整版一共是888页,需要的话可以点赞+关注

eternal=“false”

timeToIdleSeconds=“3600”

timeToLiveSeconds=“0”

overflowToDisk=“true”

2021年Java中高级面试必备知识点总结

在这个部分总结了2019年到目前为止Java常见面试问题,取其面试核心编写成这份文档笔记,从中分析面试官的心理,摸清面试官的“套路”,可以说搞定90%以上的Java中高级面试没一点难度。

本节总结的内容涵盖了:消息队列、Redis缓存、分库分表、读写分离、设计高并发系统、分布式系统、高可用系统、SpringCloud微服务架构等一系列互联网主流高级技术的知识点。

目录:

[外链图片转存中…(img-puBbe5nY-1714418455071)]

(上述只是一个整体目录大纲,每个点里面都有如下所示的详细内容,从面试问题——分析面试官心理——剖析面试题——完美解答的一个过程)

[外链图片转存中…(img-XQnxZN3D-1714418455072)]

部分内容:

[外链图片转存中…(img-7ApoyfyI-1714418455073)]

[外链图片转存中…(img-j6xId37X-1714418455073)]

[外链图片转存中…(img-cGnVNiTE-1714418455073)]

对于每一个做技术的来说,学习是不能停止的,小编把2019年到目前为止Java的核心知识提炼出来了,无论你现在是处于什么阶段,如你所见,这份文档的内容无论是对于你找面试工作还是提升技术广度深度都是完美的。

不想被后浪淘汰的话,赶紧搞起来吧,高清完整版一共是888页,需要的话可以点赞+关注

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值