Mybatis的配置
Mybatis配置解析
-
在mybatis-config.xml 里面进行配置
-
所有能配置的内容如下
configuration(配置)
properties(属性)
settings(设置)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境配置)
environment(环境变量)
transactionManager(事务管理器)
dataSource(数据源)
databaseIdProvider(数据库厂商标识)
mappers(映射器)
<!-- 注意元素节点的顺序!顺序不对会报错 -->
常用配置:
1.configuration
<!--配置环境(可以配置多套环境,可以指定选用的环境)-->
<environments default="development">
<!--配置mysql的环境-->
<environment id="development">
<!--配置事务的类型-->
<transactionManager type="JDBC"/>
<!--配置数据源(连接池)-->
<dataSource type="POOLED">
<!--配置连接数据库的基本信息-->
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
- 配置MyBatis的多套运行环境,将SQL映射到多个不同的数据库上,必须指定其中一个为默认运行环境(通过default指定)
- 子元素节点:transactionManager事务管理器,有两种分别是JDBC和MANAGED
- 子元素节点:dataSource数据源有三种类型,分别是如下
- unpooled:这个数据源的实现只是每次被请求时打开和关闭连接。
- pooled:这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来 , 这是一种使得并发 Web 应用快速响应请求的流行处理方式
- jndi:这个数据源的实现是为了能在如 Spring 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的引用。
- 数据源也有很多第三方的实现,比如dbcp,c3po,druid等等
2.mappers
引入资源方式:
<!-- 使用相对于类路径的资源引用 -->
<mappers>
<mapper resource="org/mybatis/builder/PostMapper.xml"/>
</mappers>
<!-- 使用完全限定资源定位符(URL) -->
<mappers>
<mapper url="file:///var/mappers/AuthorMapper.xml"/>
<mappers>
<!-- 使用映射器接口实现类的完全限定类名 需要配置文件名称和接口名称一致,并且位于同一目录下 -->
<mappers>
<mapper class="org.mybatis.builder.AuthorMapper"/>
</mappers>
<!-- 将包内的映射器接口实现全部注册为映射器 但是需要配置文件名称和接口名称一致,并且位于同一目录下 -->
<mappers>
<package name="org.mybatis.builder"/>
</mappers>
3.properties
数据库的属性是可以动态替换的,所以我们可以用properties文件来传递属性
-
在resources目录下新建一个db.properties文件
driver = com.mysql.cj.jdbc.Driver url = jdbc:mysql://localhost:3306/mybatiserverTimezone=UTC username = root password = root
-
在配置文件中导入properties(配置文件是有顺序的)
<configuration> <!--引入db.properties资源文件--> <properties resource="db.properties"/> <!--配置环境(可以配置多套环境,可以指定选用的环境)--> <environments default="development"> <!--配置mysql的环境--> <environment id="development"> <!--配置事务的类型--> <transactionManager type="JDBC"/> <!--配置数据源(连接池)--> <dataSource type="POOLED"> <!--配置连接数据库的基本信息--> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> </configuration>
4.typeAliases
设置别名,我们可以在mapper文件中不用写那么长的全限类名了
<!--配置别名,注意顺序-->
<typeAliases>
<typeAlias type="com.lili.entity.User" alias="User"/>
</typeAliases>
也可以使用以下的方式,则配置如下:
<!--扫描包下的所有javaBean-->
<typeAliases>
<typeAlias package="com.lili.entity"/>
</typeAliases>
每一个在包 com.lili.entity 中的 Java Bean,在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名。若有注解,则别名为其注解值。见下面的例子:
@Alias("user")
public class User {
...
}
5.常用settings
<settings>
<setting name="cacheEnabled" value="true"/> //是否开启缓存
<setting name="lazyLoadingEnabled" value="true"/>//是否开启懒加载
<setting name="mapUnderscoreToCamelCase" value="false"/>// 是否开启下划线转驼峰
</settings>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!