DAO 命名问题导致启动时注入报错

本文讲述了在使用Spring框架进行DAO层开发时遇到的注入失败问题。通过调整DAO类名的命名规则,从TCmpInfoDao更改为CmpInfoDao,成功解决了Tomcat启动时无法找到匹配Bean的问题。

新建立了 DAO 命名为 TCmpInfoDao 并且使用了 注入标记 @Repository

 

启动Tomcat时报错, 不能找到匹配的注入 Bean

 

想到类一般是首字母大写, 后面的都是小写。

 

把DAO类名 修改为  CmpInfoDao 成功注入。

 

 

MyBatis 从 2.0 升级到 3.0 后调用 `forumService.getList` 方法报错,可能有多种原因,以下是一些常见的情况及对应的解决办法: ### SQL 映射文件问题 MyBatis 3.0 的 SQL 映射文件语法和配置方式与 2.0 有一些不同。在 2.0 中可能存在的不规范写法,在 3.0 会报错。 - **命名空间问题**:MyBatis 3.0 更强调命名空间的使用,确保在 SQL 映射文件中定义了正确的命名空间,并且 `forumService.getList` 方法对应的 SQL 语句在正确的命名空间下。 ```xml <mapper namespace="com.example.dao.ForumDao"> <select id="getList" resultType="com.example.entity.Forum"> -- SQL 查询语句 SELECT * FROM forum </select> </mapper> ``` - **SQL 标签使用问题**:检查 SQL 标签(如 `<select>`、`<insert>` 等)的属性是否正确,例如 `resultType` 或 `resultMap` 的配置。 ### 配置文件问题 MyBatis 3.0 的配置文件结构和配置项有一些变化。 - **配置文件加载**:确认 MyBatis 配置文件(通常是 `mybatis-config.xml`)是否正确加载,并且包含了所有必要的映射文件。 ```xml <mappers> <mapper resource="com/example/dao/ForumMapper.xml"/> </mappers> ``` - **数据源配置**:检查数据源的配置是否正确,包括数据库连接信息、驱动类等。 ### Java 代码问题Java 代码中调用 `forumService.getList` 方法时,可能存在与 MyBatis 3.0 不兼容的地方。 - **Mapper 接口调用**:确保 `forumService` 类中正确注入了 MyBatis 的 Mapper 接口,并且调用方式符合 MyBatis 3.0 的规范。 ```java @Service public class ForumService { @Autowired private ForumDao forumDao; public List<Forum> getList() { return forumDao.getList(); } } ``` - **参数传递**:检查 `getList` 方法是否需要传递参数,如果需要,确保参数的类型和数量正确。 ### 依赖问题 检查项目的依赖是否正确配置,确保使用的是 MyBatis 3.0 相关的依赖。 ```xml <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.x.x</version> </dependency> ``` ### 日志调试 在 MyBatis 配置文件中配置日志,查看详细的错误信息和 SQL 执行情况,有助于定位问题。 ```xml <settings> <setting name="logImpl" value="STDOUT_LOGGING"/> </settings> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值