mybatis collection_SSM之Mybatis

本文详细介绍MyBatis框架的基本概念及其使用步骤。包括下载jar包、创建配置文件、定义实体类与映射文件等内容,并解释如何利用ORM思想简化数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

41cd1ed9f828f7f2bcd75ed9be7d4df1.png

概述

Mybatis是一个持久层框架,它封装了JDBC操作的细节,使用了ORM思想实现了对结果集的封装

ORM:Object Relational Mappging(对象关系映射),就是把数据库表和实体类及实体类属性对应起来,使得我们操作实体类时就可以操作数据库表

使用步骤

下载jar包

创建mybatis-config.xml文件,配置配置头

<?xml version="1.0" encoding="UTF-8" ?>

创建数据库实体类和映射文件,配置配置头

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

通过SqlSessionFactoryBuilder创建Factory

public 

mybatis-config配置文件解析

  • configuration主标签,所有的配置信息都要写在configuration中
  • properties标签:引入外部链接信息配置资源文件
  • settings标签:全局配置的属性
  • typeAliases标签:为实体类起别名,避免写过长的名字
<configuration>
    

配置环境(按顺序配置)

  • environments标签
  • environment标签
  • transactionManager标签
  • dataSource标签:元素使用基本的JDBC数据源接口来配置JDBC连接对象的资源,有三种内建的数据源类型
    • UNPOOLED 每次创建新的连接
    • POOLED 创建连接池,用完归还
    • JNDI 获取JNDI连接池
  • property标签
  • mappers标签:sql映射语句一般定义在各持久类的Mapper.xml文件中,需要在配置中引用这些映射文件
<configuration>

mybatis-mapper配置

  • mapper元素:后面的sql操作标签都必须配置在mapper标签中
  • select标签
    • id属性,类似方法名
    • parameterType属性,类似形参类型
    • resultType属性,类似返回值类型
  • insert标签,update标签,delete标签
    • id属性,类似方法名
    • 无返回值,没有returnType属性
    • insert标签对于自增id,可以用useGeneratedKeys="true" keyProperty="类的属性名"来获取新增记录id
  • sql标签公共代码块,一般用来写数据库字段。在select中通过include标签引用sql标签id
  • resultMap标签结果集映射,用来对实体类的属性与数据库的字段名做一一映射
    • type属性:写返回的结果集类型
    • id属性:定义一个id名字用于在select标签resultMap属性中调用
  • 写在resultMap标签内的标签:有通用属性property和column
    • id标签:用来确定数据库中的主键列
    • result标签:用来确定数据库中其他字段
  • association标签持有关系查询(多对1,1对1)时使用
    • 在标签上写column=字段名,property=属性名,ofType=集合的泛型类型select=二次查询的位置
    • 在标签上写column=字段名,property=属性名,ofType=集合的泛型类型,在标签内写id属性和result属性,通过sql语句进行多表查询
  • collection标签聚合关系查询(多对多,1对多)时使用
    • 在标签上写column=字段名,property=属性名,javaType=属性的类型,select=二次查询的位置
    • 在标签上写column=字段名,property=属性名,javaType=属性的类型,在标签内写id属性和result属性,通过sql语句进行多表查询
<mapper 

动态SQL

使用where,if实现条件查询:自动判断添加where和and

<select 

使用set,if实现条件更新:动态删除最后一个逗号

<update 

使用foreach批量添加/删除数据

  • collection属性:填list/array/自定义的属性的别名
  • item属性:填写自定义临时的循环变量的名字
  • separator属性:用什么来分割多个变量
  • open属性:以什么开始
  • close属性:以什么结束
  • index属性:遍历的索引
<!-- 批量添加数据 -->

延迟加载

数据量比较大的时候,预先仅加载一部分数据返回用户,加快操作响应速度

<!-- 在mybatis-config.xml中配置这些 -->

缓存

一级缓存:一级缓存是默认开启的,缓存存在于session中,每次关闭session或者使用增删改清理缓存

二级缓存:使用查询时,查询结果会存入对应的namespace中,使用增删改清理缓存

<!-- 在mybatis-config.xml中配置 -->

c8c29e57a0998ca337cb588fc7598b3e.png

往期推荐

  • PPT模板
  • Oracle视频视频教程
  • AI教程
  • 传智播客C++教程
  • 郭术生AE教程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值