配置之属性优化(外部配置)+别名+设置+映射器
一般两个环境,正式库,测试库 ,使用id来切换不同的环境
事务管理器
在 MyBatis 中有两种类型的事务管理器(也就是 type="[JDBC|MANAGED]"):
- JDBC(默认) – 这个配置直接使用了 JDBC 的提交和回滚设施,它依赖从数据源获得的连接来管理事务作用域。
- MANAGED – 这个配置几乎没做什么。
数据源(dataSource)
(连接数据库 dbcp c3p0 druid )
dataSource 元素使用标准的 JDBC 数据源接口来配置 JDBC 连接对象的资源。
- 大多数 MyBatis 应用程序会按示例中的例子来配置数据源。虽然数据源配置是可选的,但如果要启用延迟加载特性,就必须配置数据源。
有三种内建的数据源类型(也就是 type="[UNPOOLED|POOLED|JNDI]"):
UNPOOLED: 没有池
POOLED(默认):
这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来,避免了创建新的连接实例时所必需的初始化和认证时间
这种处理方式很流行,能使并发 Web 应用快速响应请求。
3.属性(properties)
可以通过properties属性来实现引用配置文件 (db.properties文件)
1.编写一个配置文件(若与内部文件<property />有同一个字段,则优先使用外部文件)
带时区的url
jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8

driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=UTF-8 username=root password=my7shig69l>A
2.在核心配置文件中引入properties 需要按照顺序写到前面

<properties resource="db.properties"> <property name="uesrname02" value="root"/> <property name="password" value="my7shig69l>A"/> </properties> <property name="uesrname02" value="root"/> 是内部设定的值(与外部文件name重合的话,外部文件的优先级更高)
可以使用${name}来获取值

<dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> 之前的 <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=UTF-8"/> <property name="username" value="root"/> <property name="password" value="my7shig69l>A"/> </dataSource>
4.类型别名(设置短的名字)
方法一: 通过(原名---新名)来修改 [实体类比较少时使用,可以DIY]
<typeAliases> <typeAlias type="com.ljm.pojo.User" alias="User"/> </typeAliases>
方法二:通过扫描包,自动得到的简化名字(与类名字母相同) [实体类比较多使用]
<typeAliases> <package name="com.ljm.pojo"/> </typeAliases>
方法三:通过注解来取名字(优先级最高)
@Alias("helloUser") public class User {
5设置(了解)
6.其他配置
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
***mybatis-generator-core(帮助自动生成mybatis代码的,根据数据库的名字,增删改查)
***mybatis-plus (关于mybatis的第三方插件,为提高效率而生)
7.映射器(mapper)
我们需要告诉 MyBatis 到哪里去找到这些语句
方式一:使用资源路径 (可放在任何地方) <*推荐>
<mappers> <mapper resource="com/ljm/dao/UserMapper.xml"/>
<mapper resource="com/ljm/dao/*.xml"/> 匹配这个包下面所有的xml文件
</mappers>
方式二:使用class文件绑定注册
*****接口和他的mapper配置文件必须同名
*****接口和他的mapper配置文件必须放在同一个包下
测试与@Alias重命名冲突
<mappers> <mapper class="com.ljm.dao.UserMapper"/> </mappers>
方式三:通过包扫描进行注入绑定
*****接口和他的mapper配置文件必须同名
*****接口和他的mapper配置文件必须放在同一个包下
<mappers> <package name="com.ljm.dao"/> </mappers>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理