news 2026/4/27 8:24:13

MyBatis学习(三)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MyBatis学习(三)

一、SqlMapConfig.xml 配置文件详解

1. 使用 properties 标签管理数据库信息

为了便于维护,通常将数据库连接信息抽取到独立的.properties文件中。

方式一:直接在 properties 标签内定义

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <properties> <property name="jdbc.driver" value="com.mysql.jdbc.Driver"/> <property name="jdbc.url" value="jdbc:mysql:///mybatis_db"/> <property name="jdbc.username" value="root"/> <property name="jdbc.password" value="root"/> </properties> <!-- 配置环境们 --> <environments default="mysql"> <!-- 配置具体的环境 --> <environment id="mysql"> <!-- 配置事务管理类型 --> <transactionManager type="JDBC"/> <!-- 配置是否需要使用连接池,POOLED使用,UNPOOLED不使用 --> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </dataSource> </environment> </environments> <!-- 加载映射的配置文件 --> <mappers> <mapper resource="mappers/UserMapper.xml"/> </mappers> </configuration>

方式二:引入外部 jdbc.properties 文件

首先,在resources目录下创建jdbc.properties文件

jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql:///mybatis_db jdbc.username=root jdbc.password=root

然后,在SqlMapConfig.xml中引入并使用

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- <properties resource="jdbc.properties"></properties>读取外部的配置文件 resource="文件的相对路径写法"。例如:jdbc.properties或者com/qcby/xxx/jdbc.properties --> <properties resource="jdbc.properties"></properties> <!-- 配置环境们 --> <environments default="mysql"> <!-- 配置具体的环境 --> <environment id="mysql"> <!-- 配置事务管理类型 --> <transactionManager type="JDBC"/> <!-- 配置是否需要使用连接池,POOLED使用,UNPOOLED不使用 --> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </dataSource> </environment> </environments> <!-- 加载映射的配置文件 --> <mappers> <mapper resource="mappers/UserMapper.xml"/> </mappers> </configuration>

2. 类型别名(typeAliases)定义

类型别名可以简化 Mapper 映射文件中parameterTyperesultType的编写。

MyBatis 内置别名:许多常见 Java 类型已经内置了别名如int/integerjava.lang.Integerstringjava.lang.String等。

自定义别名:有两种方式。

方式一:为单个类指定别名

<typeAliases> <typeAlias type="com.qcby.domain.User" alias="user"/> </typeAliases>

配置后,resultType="user"就等价于resultType="com.qcbyjy.domain.User"

别名不区分大小写。

方式二:扫描指定包下的所有类

<typeAliases> <!-- 为 com.qcby.domain 包下的所有类注册别名,别名默认是类名(首字母小写或大写均可) --> <package name="com.qcby.domain"/> </typeAliases>

二、MyBatis 的连接池

1. 连接池回顾

连接池是什么:存储数据库连接的容器。
解决的问题:如果没有连接池,每次执行 SQL 语句都会创建新的 Connection 连接,这非常耗时,影响程序性能。连接池通过复用连接来提升效率。

2. MyBatis 连接池的分类

MyBatis 内置了连接池技术,通过 SqlMapConfig.xml 中 <dataSource> 标签的 type 属性进行配置,共有三种取值:

POOLED:使用连接池(推荐)。
UNPOOLED:不使用连接池,每次请求都会创建新的连接。
JNDI:使用 JNDI 实现连接池,通常用于 Java EE 容器中。

<!-- 配置是否需要使用连接池,POOLED使用,UNPOOLED不使用 --> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </dataSource>
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/27 8:19:36

SeqGPT-560M与SolidWorks集成:智能CAD设计助手

SeqGPT-560M与SolidWorks集成&#xff1a;智能CAD设计助手 1. 引言 作为一名机械设计师&#xff0c;你是否曾经遇到过这样的困境&#xff1a;在复杂的CAD设计过程中&#xff0c;需要反复查阅设计手册、核对参数标准、检查设计错误&#xff1f;传统的SolidWorks设计流程往往需…

作者头像 李华
网站建设 2026/4/27 8:19:35

【Hermes】Windows通过WSL的Ubuntu安装部署Hermes并配置飞书

从零开始&#xff1a;Hermes Agent 全平台安装与配置指南 本文档将指导您完成 Hermes Agent 的安装、环境配置、模型接入以及消息网关&#xff08;以飞书为例&#xff09;的部署。 前置准备 在开始之前&#xff0c;请确保您的系统满足以下基本要求&#xff1a; 操作系统&#x…

作者头像 李华
网站建设 2026/4/27 8:12:03

工具调用的错误处理与回退策略

工具调用的错误处理与回退策略 关键词:工具调用错误处理、回退策略、幂等性、熔断降级、重试机制、死信队列、可观测性 摘要:在微服务、AI Agent、分布式系统等场景下,工具调用已经成为业务逻辑的核心组成部分,但网络波动、服务故障、参数错误等问题随时可能导致调用失败,…

作者头像 李华
网站建设 2026/4/27 8:11:22

ubuntu 搭建本地镜像仓库

挂载镜像源到本地目录mount /dev/sr0 /mnt修改镜像源文件 备份已有镜像源文件&#xff1a;cd /etc/apt/cp sources.list sources.list.bak添加本地源访问路径到镜像源文件中echo deb file://mnt jammy main > /etc/apt/sources.listjammy : 当前版本的代号&#xff0c;可以…

作者头像 李华
网站建设 2026/4/27 7:59:03

小白友好Pi0部署:Web界面控制机器人动作入门指南

小白友好Pi0部署&#xff1a;Web界面控制机器人动作入门指南 1. 项目介绍 Pi0是一个创新的视觉-语言-动作流模型&#xff0c;专为通用机器人控制设计。这个项目最吸引人的地方在于它提供了一个直观的Web界面&#xff0c;让用户可以通过简单的操作来控制机器人动作&#xff0c…

作者头像 李华
网站建设 2026/4/27 7:58:57

Pandas数据预处理实战:机器学习数据清洗与特征工程

1. 数据预处理在机器学习中的核心地位用Pandas做机器学习数据预处理就像给大厨准备食材——再厉害的算法模型&#xff0c;如果喂进去的是没洗干净的蔬菜或变质的肉类&#xff0c;最终"烹饪"出的结果肯定惨不忍睹。我见过太多数据科学项目在模型调参上花费90%的时间&a…

作者头像 李华