(19)SSM-MyBatis

ops/2024/10/19 5:29:12/
  1. 环境配置

第一步创建一个web工程

导入mybatis包、lombok包、jdbc包

<dependency>
 
<groupId>org.mybatis</groupId>
  <artifactId>
mybatis</artifactId>
  <version>
3.5.16</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
 
<groupId>org.projectlombok</groupId>
  <artifactId>
lombok</artifactId>
  <version>
1.18.24</version>
  <scope>
provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.mysql/mysql-connector-j -->
<dependency>
 
<groupId>com.mysql</groupId>
  <artifactId>
mysql-connector-j</artifactId>
  <version>
8.0.33</version>
</dependency>

第二步添加一些文件

    1. Lombok

Lombok用来给实体类自动生成get与set方法

  1. Mybatis.xml mybatis的配置文件

大致结构:

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

<!DOCTYPE configuration

  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

  "https://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

  <environments default="development">

    <environment id="development">

      <transactionManager type="JDBC"/>

      <dataSource type="POOLED">

        <property name="driver" value="${driver}"/>

        <property name="url" value="${url}"/>

        <property name="username" value="${username}"/>

        <property name="password" value="${password}"/>

      </dataSource>

    </environment>

  </environments>

  <mappers>

    <mapper resource="org/mybatis/example/BlogMapper.xml"/>

  </mappers>

</configuration>

    1. 添加文件的头
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""https://mybatis.org/dtd/mybatis-3-config.dtd">

    1. properties元素

也可以这样

    1. settings元素

mybatis一级缓存与二级缓存的详细讲解 链接:

MyBatis一级缓存和二级缓存全面详解-CSDN博客

Mybatis开启驼峰命名映射详解 链接:

Mybatis开启驼峰命名映射、Mybatis数据库与实体类自动映射、Mybatis底层映射原理、源码讲解结果集映射为实体类原理_mybatis 开启驼峰-CSDN博客

    1. typeAliases元素

    1. environments元素

数据库运行环境配置,再上一天我们说到可以配置多个数据库进行切换,今天我们学习以下其他配置

transactionManager事务管理器的两种类型

JDBC(常用):使用JDBC提交和回滚设置,依赖于数据源得到的连接来管理事务。

MANAGED:从来不提交或者回滚一个事务,移交给容器管理

三种数据源类型

POOLED:数据源默认使用连接池概念将将连接对象组织起来,提高了创建连接的效率。 Druid c3p0 hikarCp dbcp....

UNPOOLED:每次请求都重新打开和关闭连接,节约内存但是效率慢,适用于小项目或者案例

JNDI:次数据源可以在EJB(服务集群)或 应用服务器中使用。

    1. mappers元素

映射文件配置

  1. UserMapper.xml 映射文件
    1. 添加文件的头
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd">
    1. 主体部分

UserMapper接口:

User类

parameterType可以省略,现在mybatis可以自动识别

    1. select元素、insert元素、update元素、delete元素
    2. sql元素

定义可重复使用的SQL片段,在字段比较多的情况下及其实用

    1. mybatis动态SQL

动态SQL指动态SQL拼装,适用于在条件查询中使用,因为条件的不固定,所以我们会在SQL中做大量的判断以满足查询

      1. if

      1. choose

      1. foreach

主要的属性为:

tiem 表示迭代出每一个元素的别名

index 指定迭代的索引

collection 被迭代的集合(类型可以是list、map)

separator 迭代分隔符,表示每次迭代中间用什么符号分割

open 和close 表示以什么符号将集合元素包装起来

      1. bind

方便在各个数据库之间切换,在模糊查询时有的数据库不支持concat()函数


http://www.ppmy.cn/ops/90113.html

相关文章

C#初级——字典Dictionary

字典 字典是C#中的一种集合&#xff0c;它存储键值对&#xff0c;并且每个键与一个值相关联。 创建字典 Dictionary<键的类型, 值的类型> 字典名字 new Dictionary<键的类型, 值的类型>(); Dictionary<int, string> dicStudent new Dictionary<int, str…

【java基础】徒手写Hello, World!程序

文章目录 前提&#xff1a;java环境变量配置使用vscode编写helloworld解析 前提&#xff1a;java环境变量配置 https://blog.csdn.net/xzzteach/article/details/140869188 使用vscode编写helloworld code .为什么用code看下图 报错了&#xff01;&#xff01;&#xff01;&…

【深度学习】【语音】TTS,Phoneme-Level BERT (PL-BERT),抛弃词级别或超语素级别的预训练模型!

https://github.com/yl4579/PL-BERT 这篇文章的技术重点是提出了一种名为**Phoneme-Level BERT (PL-BERT)**的新模型,用于增强文本到语音(Text-to-Speech,TTS)合成中的韵律,通过语素预测来提高合成语音的自然度。 技术亮点及优势 语素级别的BERT模型: 现有的TTS模型通常…

java上下文切换

上下文切换&#xff08;Context Switch&#xff09;是指操作系统在CPU上切换不同的进程&#xff08;或线程&#xff09;的执行的过程。这通常发生在多任务操作系统中&#xff0c;允许多个进程或线程共享CPU资源。上下文切换确保了操作系统的响应性和多任务处理能力。 具体来说…

PostgreSQL 高阶函数详解:全面深入的功能与实用示例

PostgreSQL 高阶函数详解 PostgreSQL 是一款功能强大的开源关系数据库管理系统&#xff0c;以其丰富的功能和高扩展性著称。在数据处理和分析方面&#xff0c;PostgreSQL 提供了一系列高阶函数&#xff0c;可以极大地简化和优化各种复杂操作。本文将详细介绍 PostgreSQL 的高阶…

后端生成excel文件,VUE请求如何下载excel文件

1、后端提供下载文件接口&#xff0c;例如 GetMapping({"/excelDownload"})public void myExcelDownload(HttpServletResponse response) throws IOException {// 准备表头数据&#xff08;中文名&#xff09;List<String> header generateHeader();// 设置响…

IT课程学习搭子

各种IT课程齐全可学&#xff0c;价格你绝对想不到&#xff0c;相比于培训班有以下优势&#xff1a; 1、避免被割韭菜&#xff0c;避免踩坑&#xff0c;避免交智商税&#xff0c;最低的成本学最有价值的课&#xff0c;同时又能达到比培训班更好的效果 2、收徒&#xff0c;带你学…

简单的docker学习 第12章 Docker Swarm

第12章 Docker Swarm 12.1 swarm 理论基础 12.1.1 简介 Docker Swarm 是由 Docker 公司推出的 Docker 的原生集群管理系统&#xff0c;它将一个 Docker主机池变成了一个单独的虚拟主机&#xff0c;用户只需通过简单的 API 即可实现与 Docker 集群的通信。Docker Swarm 使用 …