当前位置: 首页 > 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.lryc.cn/news/600899.html

相关文章:

  • Linux随记(二十一)
  • 变频器实习DAY15
  • Linux内核设计与实现 - 第13章 虚拟文件系统(VFS)
  • Linux shuf命令随机打乱行顺序
  • 差模干扰 共模干扰
  • 利用RAII与析构函数避免C++资源泄漏
  • kafka的部署和jmeter连接kafka
  • 20250726-2-Kubernetes 网络-Service 定义与创建_笔记
  • C++/CLI vs 标准 C++ vs C# 语法对照手册
  • Java 大视界 -- Java 大数据在智能医疗影像数据标注与疾病辅助诊断模型训练中的应用(366)
  • greenhills编译出错问题
  • 20250726-1-Kubernetes 网络-Service存在的意义_笔记
  • 【Spring AI】大模型服务平台-阿里云百炼
  • 高可用集群KEEPALIVED的详细部署
  • 【MySQL】MySQL 缓存方案
  • 使用Clion开发STM32(Dap调试)
  • 在 Scintilla 中为 Squirrel 语言设置语法解析器的方法
  • Flutter控件归纳总结
  • 面试150 IPO
  • 达梦[-2894]:间隔表达式与分区列类型不匹配
  • 大语言模型困惑度:衡量AI语言能力的核心指标
  • Windows Server容器化应用的资源限制设置
  • 小白成长之路-部署Zabbix7(二)
  • Word文档试卷处理新方案:答案提取与格式化一键完成
  • MongoDB数据库高并发商业实践优化·运行优化之不可使用root账户进行MongoDB运行-优雅草卓伊凡
  • python面向对象编程详解
  • Django+celery异步:拿来即用,可移植性高
  • go-admin 构建arm镜像
  • (LeetCode 面试经典 150 题) 20. 有效的括号 (栈)
  • Ubuntu 18.04安装Fast-Lio2教程