0
点赞
收藏
分享

微信扫一扫

Mybatis框架技术知识理解:

愚鱼看书说故事 2022-03-12 阅读 53

什么是mybatis?

        - mybatis是一个优秀的持久层框架,它对jdbc操作数据库的过程进行了封装。

        -mybatis也是一个ORM的半自动化框架,是开发者注重sql语句。

创建mybatis项目:

        1. 创建maven项目:

点击file--》new--》project

点击maven--》project sdk--》选择自己的jdk

 然后点击next,下一步

 点击finish完成。

2.在Maven的pom文件中引入MyBatis需要用的jar包

3.创建表语句:

4.在resources下面创建Mybatis的核心配置文件:mybatis-config.xml

5.在bean(pojo)包中中创建数据库的表的实体类

6.在dao文件夹下面创建操作实体类的接口:UserDao

7.创建实现接口的xml文件:userDao.xml
8.在utils文件夹下面创建实际操作数据库的代码:

9.在test文件夹下面创建测试类,进行测试;

 mybatis的配置文件:

        1、给返回类型起别名

        2、扫描映射器

生命周期和作用域:

        SqlSessionFactory:

                创建一个SqlSssionFactory工厂对象,相当于一个数据库连接池。

                SqlSessionFactory一旦创建应该在运行期间存在,不能重新创建其他实例,因此它的作用域最简单的使用单例模式。

SqlSession:

       - 连接到连接池的一个请求。

        -SqlSession的实例不是线程安全的,因此不能被共享,所以它的最佳作用域是一个请求时,或者方法内。

        -用完后需要及时关闭连接,否则资源会被占用。

日志工厂配置使用:

  • SLF4J
  • LOG4J 【掌握】
  • LOG4J2
  • JDK_LOGGING
  • COMMONS_LOGGING
  • STDOUT_LOGGING 【掌握】
  • NO_LOGGING

STDOUT_LOGGING日志:

在mybatis核心配置文件中配置,STDOUT_LOGGING配置实例:

注意:要注意核心配置文件标签的顺序,名字不要写错,注意空格问题。

LOG4J日志:

        什么是log4j?

通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

1.导入log4j依赖

2、在 resource目录下新建文件Log4j.properties

3、在Mybatis配置文件中设置日志为log4j

4、运行调试

 log4j简单使用:

        1.在要使用Log4j的类中,导入:import org.apache.log4j.Logger;

        2.日志对象,参数为当前类的class

        3.在需要打印日志的地方进行调用,如下图

RowBounds实现分页:

        RowBounds:导入import org.apache.ibatis.session.RowBounds;

其他接口类,xml照常写;

 sql语句:

PageHelper分页插件:

        第一步引入分页插件依赖:

  • 第二步:在mybatis的全局配置文件中配置PageHelper分页插件

Lombok插件:

        第一步:idea安装lombok插件!

        第二步:导入lombok依赖

 第三步:在实体类上添加注解

一对多和多对一查询:

    JavaType和ofType的区别?

        JavaType和ofType都是用来指定对象类型的,但是JavaType是用来指定pojo中属性的类型,而ofType指定的是 映射到list集合属性中pojo的类型 

association标签:用于处理对象的,属性的对象
collection标签::用于处理集合

一级缓存和二级缓存的区别:

        2.二级缓存需要手动开启的,它是基于namespace级别的缓存,也叫全局缓存。

3.注意:我们在使用缓存的时候要记得序列化实体类,否则会抛出实体类未序列化异常

需要将实体类序列化:

4.总结:

  • 二级缓存是基于namespace级别的,在同一个Mapper下有效。
  • 所有的数据都会先放在一级缓存中。
  • 只有当会话提交或关闭时,才会提交到二级缓存中。

5.缓存查询顺序:

        1.先查二级缓存,二级缓存有数据就返回。

        2.二级缓存没有查询一级缓存,一级缓存有数据也返回。

        3.一级和二级缓存都没有,查询数据库。

举报

相关推荐

0 条评论