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

Mybatis学习之配置文件(三)

一、核心配置文件详解

MyBatis配置文件中标签必须按照固定的顺序(有的标签可以不写,但顺序一定不能乱):properties、settings、typeAliases、typeHandlers、objectFactory、objectWrapperFactory、reflectorFactory、plugins、environments、databaseIdProvider、mappers。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//MyBatis.org//DTD Config 3.0//EN""http://MyBatis.org/dtd/MyBatis-3-config.dtd">
<configuration><!--引入properties文件,此时就可以${属性名}的方式访问属性值--><properties resource="jdbc.properties"></properties><settings><!--将表中字段的下划线自动转换为驼峰--><setting name="mapUnderscoreToCamelCase" value="true"/><!--开启延迟加载--><setting name="lazyLoadingEnabled" value="true"/></settings><typeAliases><!--typeAlias:设置某个具体的类型的别名属性:type:需要设置别名的类型的全类名alias:设置此类型的别名,且别名不区分大小写。默认的别名,即类名--><!--<typeAlias type="com.atguigu.mybatis.bean.User"></typeAlias>--><!--<typeAlias type="com.atguigu.mybatis.bean.User" alias="user"></typeAlias>--><!--以包为单位,设置改包下所有的类型都拥有默认的别名,即类名且不区分大小写--><package name="com.atguigu.mybatis.bean"/></typeAliases><!--environments:设置多个连接数据库的环境属性:default:设置默认使用的环境的id--><environments default="mysql_test"><!--environment:设置具体的连接数据库的环境信息属性:id:设置环境的唯一标识,可通过environments标签中的default设置某一个环境的id,表示默认使用的环境--><environment id="mysql_test"><!--transactionManager:设置事务管理方式属性:type:设置事务管理方式,type="JDBC|MANAGED"type="JDBC":设置当前环境的事务管理都必须手动处理type="MANAGED":设置事务被管理,例如spring中的AOP--><transactionManager type="JDBC"/><!--dataSource:设置数据源属性:type:设置数据源的类型,type="POOLED|UNPOOLED|JNDI"type="POOLED":使用数据库连接池,即会将创建的连接进行缓存,下次使用可以从缓存中直接获取,不需要重新创建type="UNPOOLED":不使用数据库连接池,即每次使用连接都需要重新创建type="JNDI":调用上下文中的数据源--><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="UserMapper.xml"/> --><!--以包为单位,将包下所有的映射文件引入核心配置文件注意:1. 此方式必须保证mapper接口和mapper映射文件必须在相同的包下2. mapper接口要和mapper映射文件的名字一致--><package name="com.atguigu.mybatis.mapper"/></mappers>
</configuration>

二、${} + properties:动态写入信息

如果想动态的写入数据库驱动的信息,可以新建一个配置文件:jdbc.properties。
在这里插入图片描述

  1. 在jdbc.properties文件中,以字符串形式定义各个属性,每个属性最好有意义的标识作为前缀,如jdbc.xxx。
  2. 在mybatis-config.xml文件中,添加元素,将资源文件引入配置文件中。
  3. 在dataSource中,使用${xxx}格式,引入对应的属性。

三、typeAlias/package:设置某个类型的别名

typeAlias属性:

  • type: 设置需要设置别名的类型
  • alias: 设置某个类型的别名,如果不设置该属性,那么该类型拥有默认的类名,且不区分大小写
    即,使用User作为com.atguigu.mybatis.pojo.User的别名,可以在mapper的配置文件中直接使用User来代表这个类。
    也可以使用来表示,以该包为单位,将包下所有的类型设置默认的类型别名且不区分大小写。

四、mappers:引入映射文件

  1. mapper接口所在的包要和映射文件所在的包一致
  2. mapper接口要和映射文件的名字一致
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.demo.mybatis.mapper.UserMapper"><!--int insertUser();--><insert id="insertUser">insert into t_user values(null, "test", "123",34,'f',"153456@qq.com")</insert><!--void updateUser();--><update id="updateUser">update t_user set username = "RUOYI" where id = 4</update><!--void deleteUser();--><delete id="deleteUser">delete from t_user where id = 5</delete><!--User getUserById();--><!--查询功能的标签必须设置resultType或者resultMapresultType:设置默认的映射关系resultMap:设置自定义的映射关系(字段名和表头不一样)--><select id="getUserById" resultType="cn.demo.mybatis.pojo.User">select * from t_user where id = 4</select><!--List<User> getAllUser();--><select id="getAllUser" resultType="cn.demo.mybatis.pojo.User">select * from t_user</select>
</mapper>

文件中namespace 是 MyBatis 映射文件(.xml)中的一个重要属性,通常,namespace 的值会设置为对应的 Mapper 接口的全限定名。
它为映射文件中的 SQL 语句提供了一个命名空间,主要作用是避免不同映射文件中 SQL 语句的 ID 冲突,同时也方便在 Java 代码中定位对应的 SQL 语句。
同时为了方便日常开发中从java的接口文件跳转到xml文件,可以在idea中下载MybatisX插件。
在我们日常开发中更多的精力还是关注在映射文件中。

五、设置mybatis-config.xml配置文件模板

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><properties resource="jdbc.properties"></properties><typeAliases><package name=""></package></typeAliases><!--设置连接数据库的环境--><environments default="development"><environment id="development"><transactionManager type="JDBC"/><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><package name=""/></mappers>
</configuration>

添加模板步骤

在这里插入图片描述

创建模板

完成后就可以直接new一个mybatis-config模版啦。
在这里插入图片描述

二、设置xxxMapper.xml配置文件模板

模版内容

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

过程与config模版相同。
在这里插入图片描述

http://www.dtcms.com/a/299172.html

相关文章:

  • 数学专业数字经济转型全景指南
  • 广东省省考备考(第五十七天7.26)——数量、言语(强化训练)
  • Linux c++ CMake常用操作
  • 提升网站性能:如何在 Nginx 中实现 Gzip 压缩和解压!
  • 广告业务中A/B实验分桶方法比较:UID VS DID
  • DIY心率监测:用ESP32和Max30102打造个人健康助手
  • Voxtral Mini:语音转文本工具,支持超长音频,多国语音
  • VMware Workstation17下安装Ubuntu20.04
  • Qt 线程池设计与实现
  • 面试150 只出现一次的数字
  • Pinia快速入门
  • 大模型面试回答,介绍项目
  • Flutter实现Retrofit风格的网络请求封装
  • Qt 线程同步机制:互斥锁、信号量等
  • VTK交互——ImageRegion
  • Mixture-of-Recursions: 混合递归模型,通过学习动态递归深度,以实现对自适应Token级计算的有效适配
  • RK3568笔记九十二:QT使用Opencv显示摄像头
  • 基于RK3588+国产实时系统的隧道掘进机智能操控终端应用
  • NOIP普及组|2009T1多项式输出
  • 20250726让荣品的PRO-RK3566开发板通过TF卡刷Buildroot系统
  • 详解力扣高频SQL50题之1141. 查询近30天活跃用户数【简单】
  • 工具 | 解决 VSCode 中的 Delete CR 问题
  • 黑屏运维OceanBase数据库的常见案例
  • Java中配置两个r2db连接不同的数据库
  • LeetCode 854:相似度为 K 的字符串
  • RabbitMQ面试精讲 Day 5:Virtual Host与权限控制
  • 力扣 hot100 Day56
  • 香港本地和国际金融科技应用
  • 比特币如何实现去中心化?技术架构与机制解析
  • 2025年7月26日训练日志