2023年3月20日
计划
执行
09点34分 开始学习
知识记录
mybatis
- 狂神的mybatis感觉和项目里的实现不一样啊,先不看了
mybatis整合
-
写代码文件包必须(至少)包含的几个包
- model po
- dao
- service
- controller
写的时候是从底层往上写的
-
resources中至少包含的包
- mybatis-config.xml
- applicationContext.xml spring的核心配置文件
- database.properties对应项目中的config.properties (properties属性)
- 如果是mysql8.0+那么需要在url中添加时区的配置
-
配置数据源,现在交给spring去做了
-

取个别名(项目中没用到) -
建立实体类,就是项目中的model

加了data有参构造就没了,所以加上有参构造和无参构造
-
实体类建好了,要写一些接口去操作,在dao层去写
- 就是去写mapper和mapper.xml-->对应项目中的~dao和mapper.xml
- 这个mapper里写的接口实际上就是定义出来数据库的增删改查-->对应项目中的dao/mybatis
- 写mapper.xml文件开头的头文件不需要去单独下载,只要用mybatis.xml的就可以,只要加一些mapper就好
- 核心重点,一个mapper.xml对应一个接口,里面写mapper中定义的数据库操作的具体实现
- 参数是parameterType="cn.crap.model.UserPO",在实体类中,就是项目中的model,又发现了dto
- 就是去写mapper和mapper.xml-->对应项目中的~dao和mapper.xml
-
小技巧

- 写mapper.xml的代码

- 写完了mapper.xml要赶紧注册在mybatisconfig.xml中
项目中又不一样,为啥没有在mybatisconfig.xml中注册???
- 写mapper.xml的代码
-
接着去写业务层 service 业务层调dao层
- 业务跟数据库对应,可能存在些微的差别(
为啥项目中service层的文件不写成interface而是写成class???) - 业务层不需要调用输入参数,即@Param("bookId"),这个interface接口的编写也只不过是些和之前的数据库操作类似(
从项目中来看是一些常量的定义) - 写业务层的实现类,class 首先是实现业务,前面定义的interface,implement~ 这里就可以看出来,这个项目没有一一对应的去写业务接口,而是写了一两个接口好多实现业务去应用它
- 调dao层,组合dao

这个,项目中有
- 调dao层,组合dao
- 业务跟数据库对应,可能存在些微的差别(
整合spring层 spring-dao.xml对应-->mybatis-dao.xml
- 整合dao层
1.关联数据库配置文件 项目中没有

之前是通过mybatis读数据库文件,现在可以通过spring来读了
2. 连接池- 数据库连接池(数据源)有很多,dbcp 半自动化操作,手动连接、c3p0 自动化操作(自动化加载配置文件)、druid、hikari
- 打<property name="" 可以看到他能配的东西,配置操作,即他能干什么
- 项目用的德鲁伊,讲解用的c3p0
- sqlsessionfactory spring和mybatis整合起来
- 项目中有
- 配置dao接口扫描包,动态的实现了Dao接口可以注入到Spring 容器中!
这个是干嘛的,注入要干嘛?什么意思就不用写.impl实现文件了

有了这个操作,之前手动写的实现类再也不用手动写了,spring通过反射帮你做了。很重要
-- 整合dao层结束 - spring还要整合service层-->对应项目中的
(没有这个文件???)- 扫描service下的包

这样,service下的包,只要有@service注解就会被扫描到。项目中没有!!!有的,在springmvc中,为啥范围那么大不仅包含service的文件? - 将我们的所有业务类,注入到Spring,可以通过配置,或者注解实现

项目中也没有,因为用了注解,一顿乱跳,需要理清楚 - 声明式事务配置

项目中没有
- 扫描service下的包
- 整合springMVC层
那为什么之前的整合spring层,扫描service包的时候配置在了springmvc.xml文件夹中- 在web.xml至少要配置Dispatchservlet和乱码过滤

页面过期时间 - springmvc.xml要有映射器,适配器,视图解析器,由于用了注解,就简化了
1.注解驱动
2.静态资源过滤 没有
3.扫描包 这里的扫描包和前面62行里的扫描一个东西,这可能就是他范围大的原因,包含了controller和service
4.视图解析器 有
- 在web.xml至少要配置Dispatchservlet和乱码过滤
三个框架整合完了,dao层和service层,mvc层用spring整合。这就是一个底层,在这个底层上就可以往上写业务了

浙公网安备 33010602011771号