运行报错,请老师看看

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕阿慧 2020-05-22 16:48:27

同学你好,建议同学把mybatis-3.5.4.jar包放到tomcat的lib包下面试试。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

提问者 csm032 2020-05-22 15:18:49

问题仍然存在,请老师看看怎么解决?


-------pom.xml-------------

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.imooc</groupId>
    <artifactId>icake</artifactId>
    <version>1.0-SNAPSHOT</version>

    <repositories>
        <repository>
            <id>aliyun</id>
            <name>aliyun</name>
            <url>https://maven.aliyun.com/repository/public</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.20</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.ibatis</groupId>
            <artifactId>ibatis-core</artifactId>
            <version>3.0</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
        </dependency>
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
    </dependencies>


</project>


------------DaoFactory------------

package com.imooc.icake.global;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;

public class DaoFactory {
    private static DaoFactory daoFactory;
    private SqlSessionFactory sessionFactory;
    private DaoFactory(){
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
        try {
            sessionFactory=sqlSessionFactoryBuilder.build(Resources.getResourceAsReader("/mybatis.xml"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static DaoFactory getInstance(){
        if(daoFactory==null){
            daoFactory=new DaoFactory();
        }
        return daoFactory;
    }

    public <T> T getDao(Class<T> tClass){
        return sessionFactory.openSession(true).getMapper(tClass);
    }

}

http://img1.sycdn.imooc.com//climg/5ec77ca3093eaa6104740223.jpg

  • 同学你好,建议同学将pom.xml中不需要的依赖ibatis-core去掉。mysql等版本与课程中的版本一样,再重启试试,看看控制台中有没有报错信息。 祝学习愉快~
    2020-05-22 16:19:09
  • 提问者 csm032 回复 好帮手慕阿慧 #2
    是因为有报错信息才特别加上的ibatis-core,去掉之后仍然报错
    2020-05-22 16:20:19
好帮手慕阿慧 2020-05-22 15:06:10

同学你好,NoClassDefFoundError是没有加载到SqlSessionFactoryBuilder类。这个类在初始化的时候出现了问题。

1、同学可以检查一下是否在pom.xml中加入的依赖,如下:

http://img1.sycdn.imooc.com//climg/5ec778e1091b7f6a10760649.jpg

2、同学可以尝试清理缓存,重新编译再试一下。如下:

http://img1.sycdn.imooc.com//climg/5ec779c5096bf93802850403.jpg

http://img1.sycdn.imooc.com//climg/5ec779cc096bdccc07120205.jpg

如果同学还是不能正常运行,同学可以将自己的代码贴出,老师来测试运行一下。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 csm032 #1
    所需依赖是正确的,清理缓存后问题仍然存在,代码已贴出,请老师再看看
    2020-05-22 15:20:24
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师