冒泡排序java代码视频,MyBaits入门完结篇

  • 我们查询的条件就放在where标签中,每个and写在前面,where自动帮我们取出多余的and

  • trim标签

  • foreach标签

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

    • 如果传入对象,那么在使用属性名的时候可以识别
  • 传入基本数据类型时,防止如下错误发生:There is no getter for property named id in class java.lang.Integer ,给参数设置key名

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

  • OGNL表达式

    • OGNL表达式里面的集合伪属性
  • 不仅可以判断参数,还可以判断_parameter和_databasedId

  • bind标签

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

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

  • 缓存

    • 一级缓存
    • 一级缓存失效情况
    • 手动清空缓冲的函数:
  • 二级缓存: namespace级别的缓存,隔一段时间会自动刷新缓存

    • 只有在sqlSession关闭或提交后,才会把数据从一级缓存中,搬家来到二级缓存
  • 第一步:配置文件中开启二级缓存

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

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

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

  • 缓存的查询顺序

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

  • 缓存有关的设置

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

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

  • 3.在Dao.xml的mapper标签中配置使用自定义的缓存

  • 4.如果要和别的dao共用一个缓存,只需要在当前dao.xml的mapper标签里面引用别的dao的缓存即可

动态sql----简化sql语句动态拼串操作

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

if标签—OGNL表达式


环境搭建:

在这里插入图片描述

Lock类:

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);

Lock l1=new Lock();

l1.setId(1);

l1.setName(“%锁”);

l1.setPrice(1000);

Lock l = lock.getLockByCondition(l1);

System.out.println(l);

}finally

{

sqlSession.close();

}

}

}

LockDao接口类:

public interface LockDao {

public Lock getLockByCondition(Lock lock);

}

LockDao.xml:

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

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

id > #{id} and

lockName like #{name} and

price < #{price}

MyBaits-config.xml:

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);

Lock l1=new Lock();

l1.setId(1);

l1.setName(“%锁”);

l1.setPrice(1000);

Lock l = lock.getLockByCondition(l1);

System.out.println(l);

}finally

{

sqlSession.close();

}

}

}

结果:

在这里插入图片描述


where标签


where 元素只会在子元素返回任何内容的情况下才插入 “WHERE” 子句。而且,若子句的开头为 “AND” 或 “OR”,where 元素也会将它们去除。

写了where标签后,后自动在sql语句后面拼接一个where

我们查询的条件就放在where标签中,每个and写在前面,where自动帮我们取出多余的and

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

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

id > #{id} and

lockName like #{name} and

price < #{price}

在这里插入图片描述


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 元素

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

总而言之,面试官问来问去,问的那些Redis知识点也就这么多吧,复习的不够到位,知识点掌握不够熟练,所以面试才会卡壳。将这些Redis面试知识解析以及我整理的一些学习笔记分享出来给大家参考学习

还有更多学习笔记面试资料也分享如下:

都是“Redis惹的祸”,害我差点挂在美团三面,真是“虚惊一场”

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。[外链图片转存中…(img-1PkfaUSK-1713465875358)]

[外链图片转存中…(img-SBv8kYVA-1713465875359)]

[外链图片转存中…(img-0jKE9p0x-1713465875359)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

总而言之,面试官问来问去,问的那些Redis知识点也就这么多吧,复习的不够到位,知识点掌握不够熟练,所以面试才会卡壳。将这些Redis面试知识解析以及我整理的一些学习笔记分享出来给大家参考学习

还有更多学习笔记面试资料也分享如下:

[外链图片转存中…(img-OYC226NB-1713465875359)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 25
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值