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去做了

  • image
    取个别名(项目中没用到)

  • 建立实体类,就是项目中的model

    • image
      加了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
  • 小技巧image

    • 写mapper.xml的代码
      image
    • 写完了mapper.xml要赶紧注册在mybatisconfig.xml中
      • 项目中又不一样,为啥没有在mybatisconfig.xml中注册???
  • 接着去写业务层 service 业务层调dao层

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

整合spring层 spring-dao.xml对应-->mybatis-dao.xml

  • 整合dao层
    1.关联数据库配置文件 项目中没有
    image
    之前是通过mybatis读数据库文件,现在可以通过spring来读了
    2. 连接池
    • 数据库连接池(数据源)有很多,dbcp 半自动化操作,手动连接、c3p0 自动化操作(自动化加载配置文件)、druid、hikari
    • 打<property name="" 可以看到他能配的东西,配置操作,即他能干什么
    • 项目用的德鲁伊,讲解用的c3p0
  1. sqlsessionfactory spring和mybatis整合起来
    • 项目中有
  • 配置dao接口扫描包,动态的实现了Dao接口可以注入到Spring 容器中! 这个是干嘛的,注入要干嘛?什么意思 就不用写.impl实现文件了
    image
    有了这个操作,之前手动写的实现类再也不用手动写了,spring通过反射帮你做了。很重要
    -- 整合dao层结束
  • spring还要整合service层-->对应项目中的 (没有这个文件???)
    • 扫描service下的包
      image
      这样,service下的包,只要有@service注解就会被扫描到。项目中没有!!!有的,在springmvc中,为啥范围那么大不仅包含service的文件?
    • 将我们的所有业务类,注入到Spring,可以通过配置,或者注解实现
      image
      项目中也没有,因为用了注解,一顿乱跳,需要理清楚
    • 声明式事务配置
      image
      项目中没有
  • 整合springMVC层
    那为什么之前的整合spring层,扫描service包的时候配置在了springmvc.xml文件夹中
    • 在web.xml至少要配置Dispatchservlet和乱码过滤
      image
      页面过期时间
    • springmvc.xml要有映射器,适配器,视图解析器,由于用了注解,就简化了
      1.注解驱动
      2.静态资源过滤 没有
      3.扫描包 这里的扫描包和前面62行里的扫描一个东西,这可能就是他范围大的原因,包含了controller和service
      4.视图解析器 有

三个框架整合完了,dao层和service层,mvc层用spring整合。这就是一个底层,在这个底层上就可以往上写业务了

posted @ 2023-03-20 17:41  無碍  阅读(24)  评论(0)    收藏  举报