mbatis详细解释

mbatis详细解释

1.1 映射器

是mybatis中最重要的文件

一级缓存:

作用域 sql语句执行完

二级缓存:整个xml文件

sqlsession中的俩个接口selectOne,selectList

1.5 MyBatis基本练习

mybatis实现给映射器传递多个参数

1.6Mybatis中的占位符

#{}相当于JDBC中的问好(?)动态传入参数

${}是为sql片段(字符串)占位,将传过来的SQL片段直接拼接在占位符在的位置

演示:动态传入字段

1.7动态SQL

在项目中

1.8Mybatis缓存

1.8 MyBatis**缓存**

程序经常要调用的对象存在内存中,方便其他使用时可

以快速嗲用,不必去数据库或者其他持久化设备中查

询,主要是提高查询性能1.8.1 MyBatis**的一级缓存**

一级缓存的作用域是SqlSession。同一个SqlSession中

执行相同的sql查询(相同 的SQL和参数),第一次会去查

数据库并写在缓存中,第二次会直接查询缓存

MyBatis默认开启一级缓存

1.8.1.1 一级缓存失效的情况

1.SqlSession**不同**

2.SqlSession**相同,查询条件不同**

3.SqlSession**相同,两次查询之间执行了增删改操作**

原因说明:每个增删改标签都有默认清空缓存配置:

flushCache="true",不过这是默认的是一级和二级缓存都

清空

在MyBatis中有flushCache\userCache这两个配置,

1)当为select语句时:

flushCache默认为false,表示任何时候语句被调用,

都不会去清空本地缓存和二级缓存

2)当insert\update\delete语句时

flushCache默认为true,表示任何时候语句被调用,

都会导致本地缓存和二级缓存被清空

useCache属性在该情况下没有4.SqlSession**相同,手动清除了一级缓存**

1.8.1一级缓存失效的原因

1.SqlSession不同

2.SqlSession相同,查询条件不同

3.SqlSession相同,俩次查询之间执行了增删改查操作

原因说明:每个增删改查标签都有默认清空缓存配置: flushCahe="true"不过

这是默认的是一级和二级缓存都清空

在mybatis中有flushCache\userCache这个俩个配置

1)当为select语句时:

flushCahe 默认为false,表示任何时候语句被调用,都不会去清空本地缓存和二级缓存

2)当insert\update\delete语句时

flushCache默认为**true**

缓存失效的4个条件

1.2.4测试

通过测试发现:

若不关闭第一次查询时的回话对象,二级缓存中没有数据.,所以又去一级缓存中取数据

只有回话关闭或者提交后,一级缓存中的数据

1.2.5

由测试结果得

session.cleareCache()手动清除缓存后,只是清除了一级缓存,不影响二级缓存,因为在session.close()的时候,已经将一级缓存的数据保存在了二级缓存中

1.Spring框架

1.1 什么是spring

spring是分层的javaSe以及javaEE应用于全栈轻量级开元框架,以及JDBC控制控制反转和AOP(面向切面编程)为核心,提供了表现层SpringMVC框架和持久层springJDBC以及业务事物管理等众多企业级应用技术,还能整合开元世界中众多著名的第三方框架和类库。逐渐成为使用最多的javaEE企业级开源框架

1.2. Spring发展历程(了解)

1.2 Spring框架的优势(了解)

1.4 程序中的耦合

1.4.1 什么是程序的耦合

耦合行,也叫耦合度,是对模块间关联程度的度量,耦合的强弱取决于模块间接口的复杂性,调用模块的方式以及通过界面传送的数据多少,模块间的耦合度是指模块之间的依赖关系,包括控制关系,调用关系,数据传递关系

总结: 在软件中.耦合指的是对象之间的依赖关系,对象之间

1.4.2 工厂模式解耦

在开发中可以将三层(表现层,业务层,持久层)的对象都使用配置文件配置起来,当启动服务器加载应用时,可以通过工厂读取配置文件,根据配置文件中配置将这些对象创建出来

可以通过[工厂+接口+]

1.4.3 程序耦合演示

编写步骤

1.4.4 使用工厂模式解耦

1.创建config.properties文件

将业务中new方法创建的东西,定义在文件中,通过BeanFactory读取配置

,生产出东西

1.4.5

1.4.5 使用springIOC解偶

1.4.6 IOC实现解偶总结

在初始化一个spring容器时,spring解析指定的xml文件,当解析到其中的标签时,会根据标签中的class属性指定的全路径,若见到该类并将该对象存入map中管理,通过反射创建该类对象,并将该类对象存入内置的map中关联其中K就是该标签的ID class就是该对象的value之后然后通过我给他的getBean方法来从容器中获取对象时,又根据传入的条件,在内置的 map中寻找是否有匹配的key,有则该将K中保存对象返回没有,则抛出异常。。

1.这些可以获取多个id的,并得到的将是同一对象,

2可以配置多个类型相同bean,

3不可以配置di名字个相同的Bean。

ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");

1.5 Spring IOC

被成为控制反转

问题一: 谁控制谁,控制什么

问题二: 为何是反转,那些方面反转了

又称为依赖注入

问题一: 谁依赖谁

问题二:为什么需要依赖

问题三:谁注入了谁

问题四:注入了什么

控制反转和依赖注入区别和联系

1.6 Spring IOC 容器

IOC是spring的核心,也可以成为spring容器, Spring通过IOC来管理对象的实例化和初始化,以及对象从创建到销毁的整个生命周期

spring通过XML或java注解中的信息获取那些对象需要实例化

1.7 Spring Bean定义

由Spring IOC容器管理的对象称为bean,bean根据spring配置文件中的信息创建

spring配置文件支持俩种格式,即xml文件格式和properties文件格式

properties配置文件主要以key_value键值对 形式存在. 只能赋值,不能

进行其他操作, 适用于简单的属性配置

XML配置文件格式是树形结构, XML配置文件结构清晰

1.工厂模式

测试工厂模式实例化bean

public class TestBeacFactory{

@Test

pulic void testMyBeanFactort(){

}

}

SpringMVC框架

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值