关于#springboot#的问题,如何解决?

一个小的springboot项目,就是连接一下mysql数据库总是报错:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'medicontroller': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mediMapper' defined in file [D:\IDEAworks\testsq\target\classes\com\example\testsq\Mapper\mediMapper.class]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required

找了网上很多方法都没效果,各个part如下

img

img

img

img

img

img

你这个application.yml配置文件我怎么就觉得有问题呢?看你这个没有mapper映射文件,却又写了映射路径,同时又取别名(一般都是实体类)

img

既然是springboot项目,那么可以说只需application.yml配置文件即可,无需其他配置文件,你这样搞的和spring项目有什么区别了吗?mediaMapper首先类名首写字母大写,其次既然写@Mapper注解,还写@Service注解干什么,MediaController类(这个类也无需加@Mapper注解啊!)中写了@GetMapper注解,为毛还写@RequestMapper注解呢?你先把这写多余的注解去掉再说,虽然也不知道是不是这个问题导致的,但是这样做是不规范的呀!

img

这里保留一个@Repository就可以了,不用放那么多注解

img

这里@Mapper要删掉。
建议先学下Java基础,了解下命名规范。
https://zhuanlan.zhihu.com/p/410173349
其次先了解下各个注解的作用。可以参考下这篇文章
https://blog.csdn.net/weixin_53601359/article/details/114378460

找一个正规的mybatis项目来对比一下,比如若依

controller类不需要使用@Mapper注解,@Mapper注解是标记DAO接口的,mybatis框架会扫描@Mapper注解标记的接口,然后生成代理对象。还有你使用了@MapperScan注解,就可以不需要单独在使用@Mapper注解标记每一个类了,@MapperScan注解就是指定mybatis要扫描的包路径,mybatis会扫描这个包路径下的类和接口,并且生成代理对象,去操作数据库。

报错信息可以截全一点嘛,不是太能确定这个报错信息

注解太多了
按照你的配置你只保留@mapper注解就行
其他的都不要
而且不要在mapper里边加service
一般来说mapper都是不加任何注解的
扫包也是在application主程序加@MapperScan("xx.xx.*.dao")这样处理的
建议去官网或者开源项目找个比较正规的项目练手比较好

你把pom.xml和报错信息全都发出来

mediMapper里面保留一个注解就行,Controller里面保留@Respotry,配置里面,你那些文件都没有,路径都没有,就不要写了

SpringBoot 连接 MySql 数据库的步骤
可以按照这个来,把配置换一下就可以了

你学的够乱的了,目录对应,大小写注意,注解不该用的别用,注入依赖失败,mapperxml呢?

你这错误一箩筐,太厉害了,请问还需要解决否

从你提供的错误信息来看,问题可能出在Spring Boot配置或MyBatis配置上。检查application.properties或application.yml文件中的数据库连接配置是否正确。确保以下配置正确无误:

spring.datasource.url=jdbc:mysql://localhost:3306/your_database  
spring.datasource.username=your_username  
spring.datasource.password=your_password  
mybatis.mapper-locations=classpath:mapper/*.xml

数据库连接没有配置好

检查一下数据库连接配置情况

援引GPT回答:
根据报错信息,问题出现在'mediMapper'的初始化方法上。错误信息提示缺少必需的属性'sqlSessionFactory'或'sqlSessionTemplate'。

解决这个问题的方法是确保在'mediMapper'的定义中,正确配置了'sqlSessionFactory'或'sqlSessionTemplate'属性。

以下是可能的解决方法:

  1. 确保在Spring配置文件中正确配置了MyBatis的相关配置,包括数据源和SqlSessionFactory的配置。
    示例配置:

    <!-- 数据源配置 -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/mydatabase" />
        <property name="username" value="root" />
        <property name="password" value="password" />
    </bean>
    
    <!-- SqlSessionFactory配置 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="mapperLocations" value="classpath*:com/example/testsq/Mapper/*.xml" />
    </bean>
    

    确保以上配置正确,并且数据源和Mapper的路径与你的项目实际情况相符。

  2. 确保'mediMapper'类上使用了正确的注解,如@Mapper@Repository
    示例代码:

    import org.apache.ibatis.annotations.Mapper;
    
    @Mapper
    public interface mediMapper {
        // ...
    }
    

    或者

    import org.springframework.stereotype.Repository;
    
    @Repository
    public interface mediMapper {
        // ...
    }
    

    确保使用了正确的注解,并且注解的路径与你的项目实际情况相符。

如果以上方法仍然无效,请提供更多的项目配置和代码信息,以便更详细地分析问题所在。

这个异常是由于Spring Boot应用程序在创建bean时出现错误而引起的。通常,BeanCreationException是由于依赖项注入失败或Bean初始化失败而引起的。针对这个问题,可以采用以下步骤进行解决:

  1. 确保Mysql数据库已正确地连接到了你的Spring Boot应用程序。你可以使用MySQL Workbench或其他任何MySQL客户端来测试连接。

  2. 确保你已经正确地配置了Spring Boot应用程序中的数据源。可以在application.properties或application.yml文件中设置数据源的配置信息。

  3. 检查你的MySQL数据库是否存在正确的数据库和表。如果不存在,请先使用MySQL命令行或其他任何MySQL客户端创建数据库和表。

  4. 确保你的实体类映射到正确的表和列。如果表和列名称与实体类属性不匹配,你需要在实体类中使用@Column等注释来指定正确的列名称。

如果上述步骤都检查过,还是无法解决问题,你需要详细查看报错日志,找到具体的错误信息,然后有针对性地解决问题。

参考newbing

  1. 检查数据库连接配置:确保在application.propertiesapplication.yml文件中正确配置了数据库连接信息,包括数据库URL、用户名和密码。

  2. 检查数据库驱动依赖:确保在项目的依赖管理文件(如pom.xml)中添加了正确的数据库驱动依赖。例如,如果你使用MySQL数据库,需要添加mysql-connector-java依赖。

  3. 检查注入的依赖:错误信息中提到了mediMapper的创建失败,可能是由于依赖注入失败导致的。确保在mediMapper类中正确注入了sqlSessionFactorysqlSessionTemplate

  4. 检查数据库连接池配置:如果你使用了数据库连接池,比如HikariCP,默认情况下Spring Boot会自动配置连接池。但是,如果你手动配置了连接池,确保配置正确,包括连接池的最大连接数、最小连接数等。

  5. 检查数据库权限:确保数据库用户具有正确的权限来访问数据库。比如,确保数据库用户具有读写权限。