Class not found: "com.wei.oa.utils.MybatisUtilsTestor"

Class not found: "com.wei.oa.utils.MybatisUtilsTestor"

总是找不到类

http://img1.sycdn.imooc.com//climg/609371ce09499f4207350185.jpg


我的代码如下:

http://img1.sycdn.imooc.com//climg/609371ee09ce16d206560254.jpg

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 驼峰命名转换-->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>

<!-- 设置默认的指向的数据库-->
<environments default="dev">
<!-- 配置环境,不用的环境不同的ID名字-->
<environment id="dev">
<!-- 采用jdbc方式对数据库事务进行commit和rollback-->
<transactionManager type="JDBC"></transactionManager>
<!-- 采用连接数据池方式管理数据库的连接-->
<!-- <dataSource type="POOLED">这个就不能用了,换成C3P0连接池和C3P0DataSourceFactory这个类配合使用-->
<!-- <dataSource type="com.wei.mybatis.datasource.C3P0DataSourceFactory">-->
<!-- mybatis和德鲁伊连接池整合-->
<dataSource type="com.wei.oa.datasources.DruidDataSourceFactory">
<!-- <property name="driver" value="com.mysql.cj.jdbc.Driver"/>-->
<!-- jdbc连接属性c3p0的name-->
<!-- <property name="driverClass" value="com.mysql.cj.jdbc.Driver"/>-->
<!-- 德鲁伊的name-->
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
<!-- <property name="url" value="jdbc:mysql://localhost:3306/babytun?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=Asia/Shanghai&amp;allowPublicKeyRetrieval=true"/>-->
<property name="url" value="jdbc:mysql://localhost:3306/imooc-oa?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=Asia/Shanghai"/>
<!-- <property name="username" value="root"/>-->
<property name="username" value="root"/>
<property name="password" value="root"/>
<!-- <property name="initialPoolSize" value="5"/>-->
<!-- <property name="maxPoolSize" value="20"/>-->
<!-- <property name="minPoolSize" value="5"/>-->

</dataSource>
</environment>
</environments>

<mappers>
<mapper resource="mappers/test.xml"/>
</mappers>
</configuration>
package com.wei.oa.utils;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import sun.misc.ExtensionInstallationException;

import java.io.IOException;
import java.io.Reader;
import java.util.function.Function;

public class MybatisUtils {
//利用static 静态属于类不属于对象,且全局唯一
private static SqlSessionFactory sqlSessionFactory=null;

//利用静态块在初始化类时实例化sqlSessionFactory
static {
Reader reader=null;
try{
reader = Resources.getResourceAsReader("mybatis-config.xml");
}
catch (IOException e){
//初始化错误时,通过抛出异常通知调用者
throw new ExceptionInInitializerError(e);
}
}

/**
* 执行SELECT查询SQL
* @param func 要执行查询语句的代码块
* @return 查询结果
*/
public static Object executeQuery(Function<SqlSession,Object> func){
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
Object obj = func.apply(sqlSession);
return obj;
} finally {
sqlSession.close();
}
}


/**
* 执行INSERT/UPDATE/DELETE写操作的SQL
* @param func 要执行的写操作的代码块
* @return 写操作后的返回的结果
*/
public static Object executeUpdate(Function<SqlSession,Object> func){
SqlSession sqlSession = sqlSessionFactory.openSession(false);
try {
Object obj = func.apply(sqlSession);
sqlSession.commit();
return obj;
}catch (RuntimeException e){
sqlSession.rollback();
throw e;
}finally {
sqlSession.close();
}
}
}

http://img1.sycdn.imooc.com//climg/6093722209a9f88a12430405.jpg


http://img1.sycdn.imooc.com//climg/60937238094d1eb810060572.jpg

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

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

2回答
好帮手慕小班 2021-05-06 15:12:18

同学你好,测试同学贴出代码,并没有出现Class not found: "com.wei.oa.utils.MybatisUtilsTestor"的错误,只是出现了空指针异常的信息。

​在MybatisUtils中,注意sqlSessionFactory的实例化,比如:

http://img1.sycdn.imooc.com//climg/609395c00905182d09430228.jpg

如上所示,修改后清理缓存重新试试。

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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