Mybaits全局配置文件配置typeAliases的坑

本文解决了MyBatis配置文件中因元素顺序错误导致的PersistenceException异常。通过调整settings和typeAliases标签的位置,确保了XML配置文件符合MyBatis的要求,从而避免了文档实例创建错误。

org.apache.ibatis.exceptions.PersistenceException:

Error building SqlSession.

Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 73; columnNumber: 17; 元素类型为 “configuration” 的内容必须匹配 “(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?)”。

    <typeAliases>
        <typeAlias type="com.gb.bean.Employee" alias="emp"></typeAlias>
    </typeAliases>

    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>

大概是相对位置问题

把settings 标签移到typeAliases标签前 问题解决

    <settings>
    <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
    <typeAliases>
        <typeAlias type="com.gb.bean.Employee" alias="emp"></typeAlias>
    </typeAliases>
<think>好的,我现在需要帮助用户找到Spring与MyBatis整合的配置文件示例或教程。根据用户提供的引用内容,特别是引用[2],里面提到一个极简的示例,仅需一个XML配置文件。首先,我应该确认用户的需求是希望看到简洁的配置示例,而不是多个分散的XML文件。 接下来,我需要回忆SpringMyBatis整合的一般步骤。通常需要配置数据源、SqlSessionFactoryBean、Mapper扫描等。用户引用的示例可能将这些配置集中在一个文件中,所以我要确保示例结构清晰,并且符合最新的Spring配置方式,比如使用注解Java配置,但用户提到的是XML配置,所以可能需要展示XML的写法。 然后,我需要检查提供的引用内容是否有具体的配置代码。引用[2]提到“除mybatis映射文件外,整个spring容器框架整合mybatis只需要一个xml配置文件”,因此我应该构造一个包含数据源、SqlSessionFactory、Mapper接口扫描的XML配置示例。同时,可能需要添加事务管理的配置,这是整合中常见的部分。 还要注意用户提到的“极简”“结构清晰”,所以配置应该避免冗余,只包含必要的部分。比如,数据源的配置需要数据库驱动、URL、用户名密码;SqlSessionFactory需要数据源MyBatis配置路径;Mapper扫描使用MyBatis-Spring的MapperScannerConfigurer或者<mybatis:scan>标签。 此外,用户可能关心如何引入相关的依赖,比如MyBatis-Spring中间件、数据库驱动等,但用户的问题主要集中在配置文件示例,所以可能不需要详细列出依赖,但可以简要提及,如引用[1]提到的数据库驱动JAR包。 最后,需要生成相关问题,这些问题应该围绕配置文件的优化、数据源其他配置方式、注解替代XML的可能性,以及事务管理的重要性等方面。确保问题与用户的查询相关,并帮助其进一步学习。</think>### Spring与MyBatis整合的配置文件示例 以下是基于MyBatis-Spring整合的**极简XML配置文件示例**,仅需一个配置文件即可完成核心整合,结构清晰且完整[^2]: ```xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring.xsd"> <!-- 1. 配置数据源 --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false"/> <property name="username" value="root"/> <property name="password" value="123456"/> </bean> <!-- 2. 配置SqlSessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="mapperLocations" value="classpath:mapper/*.xml"/> </bean> <!-- 3. 自动扫描Mapper接口 --> <mybatis-spring:scan base-package="com.example.dao"/> <!-- 4. 开启注解驱动的事务管理 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> </beans> ``` ### 关键配置解析 1. **数据源配置** 使用`DriverManagerDataSource`定义数据库连接,需指定驱动类、URL、用户名密码[^1]。 2. **SqlSessionFactoryBean** 将MyBatis的`SqlSessionFactory`与Spring容器绑定,依赖数据源Mapper XML文件路径。 3. **Mapper接口扫描** 通过`<mybatis-spring:scan>`自动注册`base-package`下所有Mapper接口,无需手动声明每个Bean。 4. **事务管理** `DataSourceTransactionManager`提供声明式事务支持,与`@Transactional`注解配合使用。 ### 依赖要求 - **MyBatis-Spring**:核心整合包 - **数据库驱动**:如MySQL的`mysql-connector-java` - **Spring JDBC**:支持数据源事务管理 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值