关于IDEA,Maven项目无法正常运行的问题。

刚刚接触SSM框架,第一次接触到Maven项目,也是第一次使用IDEA,遇到很多问题。
一:关于Mybatis读取配置文件失败。
项目结构
img
依赖可以正常的下载,导包没问题,类调用也没问题
img
img
测试代码
img
错误
img
二:多次尝试无法解决后,不使用Mybatis连接数据库仍然失败
测试代码
img
错误
img
三:不使用jar包的程序是能正常跑的,似乎需要用到jar包的都无法正常运行,在编写阶段,编译器的代码提示,导包提示一切正常。点击运行,到编译阶段就似乎找不到相应的类
img
img

请教知道原因的小伙伴

你maven有问题吧,依赖没正确引入。

首先你这个不是SSM,没有Spring和SpringMVC的依赖,仅仅只有Mybatis和数据库连接依赖,但你这也不是Mybatis项目,因为你也没有使用Mybatis,你写的就仅仅是一个jdbc而已呀
jdbc工具类代码如下:

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
public class JDBCUtil {
    private static Properties prop = new Properties();
    private static String className = null;
    private static String url = null;
    private static String username = null;
    private static String pwd = null;
    private static ThreadLocal<Connection> tl = new ThreadLocal<Connection>();
    static {
        //读取配置文件
        InputStream stream = JDBCUtil.class.getResourceAsStream("/JDBCUtil.properties");
        try {
            prop.load(stream);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            throw new RuntimeException("读取配置文件异常:"+e);
        }
        className = prop.getProperty("className");
        url = prop.getProperty("url");
        username = prop.getProperty("username");
        pwd = prop.getProperty("pwd");
    }
    //获取连接
    public static Connection getConn() {
        if(tl.get()==null) {
            Connection conn = null; 
            try { 
                //1.加载驱动
                Class.forName(className); 
                //2.获取连接
                conn =DriverManager.getConnection(url, username,pwd );
            } catch (Exception e){ 
                // TODO Auto-generated catch block 
                throw new RuntimeException("获取连接异常:"+e);
            }
            tl.set(conn);
        }
        return tl.get();
    }
    //关闭连接
    public static void closeAll(Connection conn,PreparedStatement pstm,ResultSet rs) {
        try {
            if(rs!=null)
            rs.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            throw new RuntimeException("结果集关闭异常:"+e);
        }
        try {
            if(pstm!=null)
            pstm.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            throw new RuntimeException("pstm关闭异常:"+e);
        }
        try {
            if(conn!=null) {
                conn.close();
                tl.remove();
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            throw new RuntimeException("conn关闭异常:"+e);
        }
    }
}

JDBCUtil.properties

className =com.mysql.jdbc.Driver
url =  jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
username =root
pwd = root

如果你真正想使用mybaits的话,mybatis工具类如下

import java.io.IOException;
import java.io.InputStream;

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

public class MybatisUtil {    
    public static SqlSessionFactory ssf =null;
    static {
        try {
            InputStream stream = Resources.getResourceAsStream("mybatis-config.xml");

            ssf = new SqlSessionFactoryBuilder().build(stream);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            throw new RuntimeException(e);
        }
        
    }    
    //获取sqlsession的方法
    public static SqlSession getSqlSession() {        
                  
        SqlSession session = ssf.openSession();
        return session;
    }
    
    
    //关闭sqlsession的方法
    public static void closeSqlSession(SqlSession session) {
        if(session!=null)
           session.close();
    } 
    
}

mybatis-config.xml


<?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>
    <!-- 数据库连接配置信息池
        default:当前使用的连接配置
     -->
    <environments default="e1">
        <!-- 数据库连接配置信息
            id : 给当前配置起名字
         -->
        <environment id="e1">
            <!-- 设置事务控制机制
                type: JDBC   使用原始的自动控制事务机制
                      Managered  使用第三方插件控制事务
             -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 数据库连接配置 
                type  :  POOLED    使用数据库连接池       占内存,crud效率提高
                         UNPOOLED   不适用数据库连接池   不占内存,效率低  
            -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value=" jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    
    <!-- 映射dao的mapper文件-->
    <mappers>
    <mapper resource="dao/AccountDaoMapper.xml"/>
    </mappers>

</configuration>

你的mysql是什么版本,很可能是驱动和版本没有对应上

maven构建问题,你可以查看target目录下的编译文件看有没有依赖包和配置文件