mybatis常见错误

本文阅读 2 分钟
首页 代码,Java 正文

今天在学习mybatis的时候,遇到了这样的错误: 1.Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 1 字节的 UTF-8 序列的字节 1 无效。

解决方法:file-settings-file encodings 把project encodings改成utf-8 img 注意:我们修改完以后,要clean一下,再编译,否则还会报错

然后在mybatis构建中,我还遇到下面的错误

2.java.lang.NullPointerException at com.kuang.utils.MybatisUtils.getSqlSession 报的是空指针异常,后面我查看的时候

下面这个是我出错的代码,我发现,本来已经定义好了一个静态变量sqlSessionFactory,结果我却又新建了一个,静态变量随着类加载而加载,所以报空指针异常

private static SqlSessionFactory sqlSessionFactory;

    static { 

        try { 
            //读取配置文件
            //下面三句话是固定的
            //使用Mybatis第一步:获取sqlSessionFactory对象
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
             SqlSessionFactory build = new SqlSessionFactoryBuilder().build(inputStream);
             
        } catch (IOException e) { 
            e.printStackTrace();
        }
    }

解决方法,不要创建两个对象

private static SqlSessionFactory sqlSessionFactory;

    static { 

        try { 
            //读取配置文件
            //下面三句话是固定的
            //使用Mybatis第一步:获取sqlSessionFactory对象
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            //SqlSessionFactory build = new SqlSessionFactoryBuilder().build(inputStream);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) { 
            e.printStackTrace();
        }
    }

3.使用mybatis连接数据库时报错:Error querying database. Cause: java.sql.SQLException: The server time zone value 方案:使用mysql 8.0以上的驱动需要配置时区才能正常使用 在url中添加:serverTimezone=Asia/Shanghai

jdbc:mysql://localhost:3306/mybatis?serverTimezone=Asia/Shanghai&useSSL=true&useUnicode=true&characterEncoding=UTF-8

4.Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table ‘mybatis.user’ doesn’t exist 这个错误是由于我的粗心导致的,我在学习mybatis的时候,创建一个用来测试的数据库mybatis,里面创建的表是t_user,但是我忘记了,以为表是user,所以写的sql语句肯定也是错误的

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://zengyihong.blog.csdn.net/article/details/123814697
-- 展开阅读全文 --
安全面试之XSS(跨站脚本攻击)
« 上一篇 07-24

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复