Mybatis持久化框架

Mybatis是一款轻量级的持久化框架,它可以很好地解决Java应用程序与关系型数据库之间的交互问题。下面将从以下几个方面对Mybatis进行总结。

1)Mybatis工作原理

Mybatis的工作原理是将Java程序中的SQL语句与数据库中的表进行映射,使得Java程序可以通过调用Mybatis提供的API来实现与数据库的交互。Mybatis的工作流程包括:

1.1)读取配置文件:Mybatis会读取配置文件中的信息,包括数据库连接信息、映射文件信息等。

1.2)创建SqlSessionFactory:SqlSessionFactory是Mybatis的核心接口,它负责创建SqlSession对象,每个SqlSession对象都代表了一个数据库连接。SqlSessionFactory是线程安全的,通常只需要创建一个实例即可。

1.3)创建SqlSession:SqlSession是Mybatis操作数据库的主要接口,它提供了各种方法来执行SQL语句,包括查询、插入、更新、删除等。每个SqlSession对象都可以操作一个事务,它也是线程不安全的,每个线程都应该拥有自己的SqlSession对象。

1.4)执行SQL语句:SqlSession对象可以通过调用它提供的方法来执行SQL语句,包括查询、插入、更新、删除等。Mybatis会将SQL语句转换为对应的JDBC操作,并执行在数据库中。

1.5)返回结果:Mybatis会将查询结果封装成Java对象返回给调用方,对于更新和删除操作,Mybatis会返回受影响的行数。

2)Mybatis核心配置文件

Mybatis的核心配置文件是mybatis-config.xml,它包含了Mybatis的全局配置信息,例如数据库连接信息、缓存配置、插件配置等。具体包含以下内容:

2.1)数据源配置:用于配置数据库连接信息,包括数据库驱动、URL、用户名、密码等。

2.2)类型别名配置:用于给Java对象起别名,方便在映射文件中使用。

2.3)插件配置:用于配置Mybatis的插件,可以在SQL执行前后做一些额外的处理。

2.4)缓存配置:用于配置Mybatis的缓存,包括一级缓存和二级缓存的配置。

3)Mybatis映射文件

Mybatis的映射文件是mapper.xml,它用于将Java程序中的SQL语句与数据库中的表进行映射。映射文件包含以下内容:

3.1)命名空间:用于指定映射文件所映射的数据库表或SQL语句。

3.2)结果集映射:用于将查询结果映射为Java对象,可以通过resultMap标签进行配置。

3.3)SQL语句:用于执行SQL语句,包括查询、插入、更新、删除等。可以通过select、insert、update、delete标签进行配置。

3.4)参数映射:用于将Java对象映射为SQL语句的参数,可以通过parameterType标签进行配置。

4)动态SQL

动态SQL是Mybatis提供的一种灵活的SQL拼接方式,可以根据不同的条件动态地拼接SQL语句。Mybatis提供了以下几种动态SQL标签:

4.1)if标签:用于判断条件是否成立,如果成立则拼接SQL语句。

4.2)choose、when、otherwise标签:用于实现类似于Java中的switch语句的功能。

4.3)foreach标签:用于循环遍历Java集合,并将其中的元素拼接到SQL语句中。

4.4)set标签:用于更新操作,可以将要更新的字段拼接到SQL语句中。

5)关联关系(1对1、1对多、多对多)

Mybatis支持多种关联关系的映射,包括1对1、1对多、多对多等。映射关系可以通过resultMap标签进行配置。具体包含以下内容:

5.1)一对一映射:通过resultMap标签中的association标签进行配置。

5.2)一对多映射:通过resultMap标签中的collection标签进行配置。

5.3)多对多映射:通过中间表进行映射,需要定义额外的POJO类和Mapper接口。

6)一级缓存和二级缓存

Mybatis提供了两种缓存机制,一级缓存和二级缓存。一级缓存是SqlSession级别的缓存,它默认开启,可以通过commit或者close方法强制清空。二级缓存是SqlSessionFactory级别的缓存,需要手动开启,可以通过配置文件进行配置。具体包含以下内容:

6.1)一级缓存:SqlSession级别的缓存,可以通过调用clearCache方法清空。

6.2)二级缓存:SqlSessionFactory级别的缓存,需要手动开启,可以通过配置文件进行配置。缓存的内容是查询结果对象,需要实现Serializable接口。

以上就是Mybatis持久化框架的主要知识点总结。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值