当前位置: 首页 > news >正文

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>
http://www.jsqmd.com/news/707617/

相关文章:

  • TransformerUNet 医学图像分割:牙齿 X 光 + PyTorch 全链路
  • 如何高效使用DownKyi:B站视频下载与管理的终极解决方案
  • 智能硬件中的嵌入式开发与系统集成
  • Qwen3-ForcedAligner-0.6B实战教程:Streamlit界面定制与模型缓存优化
  • G-Helper终极指南:3步解决华硕笔记本性能瓶颈的免费开源工具
  • 哪家矿泉水品牌专业?2026年4月推荐评测口碑对比五款产品顶尖日常饮用健康需求 - 品牌推荐
  • 食品包装设计实力哪家强?找专业靠谱食品包装设计公司,先了解哲仕品牌策略设计公司! - 设计调研者
  • 猫狗分类实战:从数据预处理到模型优化的完整指南
  • Qwen3.5-9B-GGUF智能车联应用:车载语音助手与决策系统原型
  • 2026年4月全球留香沐浴露品牌推荐:十大口碑产品评测对比顶尖熬夜加班后体味烦恼 - 品牌推荐
  • 2025-2026年国内矿泉水品牌评测:五家口碑产品推荐评价领先办公室健康饮水矿物质吸收注意事项 - 品牌推荐
  • 容器化技术演进Docker核心原理剖析
  • 视频孪生赋能智慧图书馆:黎阳之光全域实景数智方案
  • 梯度下降算法原理与Python实现详解
  • 2025-2026年美国专利申请代理机构推荐:五大口碑服务评测对比领先跨境电商平台TRO禁令注意事项 - 品牌推荐
  • Open3D 点云播放:连续帧可视化完整实现
  • 如何选择矿泉水品牌?2026年4月推荐评测口碑对比五家产品知名日常饮用矿物质缺乏 - 品牌推荐
  • 在Select的基础上学习poll
  • VS Code 远程容器环境卡顿、构建失败、端口映射失效(2024最新避坑图谱)
  • AI头像生成器小白指南:避开新手常见坑点
  • 2026年4月国内心理咨询机构推荐:五家口碑服务评测对比领先职场压力焦虑失眠 - 品牌推荐
  • 贪心算法(Greedy Algorithm)详解:从理论到C++实践
  • 月饼包装设计公司哪家专业靠谱?做爆款月饼礼盒设计,优先选哲仕品牌策略设计公司 - 设计调研者
  • nli-MiniLM2-L6-H768保姆级教程:Windows/Mac/Linux三平台NLI本地化部署
  • GLM-4.1V-9B-Base入门必备:JDK1.8环境下Java客户端调用指南
  • 靠谱的新疆生态修复排名情况
  • 动态规划专题(10):最优三角剖分问题
  • 2025-2026年美国专利申请代理机构推荐:五大口碑服务评测评价知名高校技术转化授权难题 - 品牌推荐
  • 使用 PHP TrueAsync 改造 Laravel 协程异步化的可行路径
  • 雁塔区底盘异响松散推荐哪家