Mybatis配置和容易出现的错误

我的第一个Mybatis项目所踩的坑

问题描述:

1.idea数据库连接时报错

Server returns invalid timezone. Need to set 'serverTimezone' property.

解决办法:在后面直接设置时区。

jdbc:mysql://localhost:3306?serverTimezone=GMT

2.测试test时报错

Cause: org.xml.sax.SAXParseException; lineNumber: 5; columnNumber: 18; 1 字节的 UTF-8 序列的字节 1 无效。

解决办法:将.xml文件中的encoding=UTF-8都改成

<?xml version="1.0" encoding="UTF8" ?>

3.资源文件无法找到

<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!--namespace=绑定一个对应的dao/mapper接口-->
<mapper namespace="com.kang.dao.UserDao">
    
    <!--select查询语句-->
    <select id="getUserList" resultType="com.kang.pojo.User">
     select * from mybatis.user

    </select>
 
</mapper>

测试target里面没有导出相应的UserMapper.xml文件:
Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource com/kang/dao/UserMapper.xml
解决办法

<–在build中配置resources,来防止我们资源到处失败的问题–>

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

4.一些需要注意的点

在连接数据库的时候加上一些条件

<property name="url" value="jdbc:mysql://localhost:3306/mybatis?
useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF8"/>
  • 1.useSSL=true;

不建议在没有服务器身份验证的情况下建立SSL连接。根据MySQL
5.5.45+、5.6.26+和5.7.6+的要求,如果不设置显式选项,则必须建立默认的SSL连接。需要通过设置useSSL=false来显式禁用SSL,或者设置useSSL=true并为服务器证书验证提供信任存储。

SSL协议提供服务主要:

  • 认证用户服务器,确保数据发送到正确的服务器;    .
  • 加密数据,防止数据传输途中被窃取使用;
  • 维护数据完整性,验证数据在传输过程中是否丢失
    当前支持SSL协议两层:
  • SSL记录协议(SSL Record Protocol):建立靠传输协议(TCP)高层协议提供数据封装、压缩、加密等基本功能支持
  • SSL握手协议(SSL Handshake Protocol):建立SSL记录协议用于实际数据传输始前通讯双进行身份认证、协商加密
    算法、 交换加密密钥等。

2.&amp

在HTML中的&用& 来表示

3.useUnicode=true&amp;characterEncoding=UTF8

指定字符的编码、解码格式。
mysql用的是GBK编码格式,加了后存放项目数据的时候会先用UTF-8格式将数据解码成字节码,然后再将解码后的字节码重新使用GBK编码存放到数据库。

4. 每一个Mapper.XML都需要在Mybatis核心配置文件中注册

<mappers>
   <mapper resource="com/kang/dao/UserMapper.xml"/>
</mappers>
<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--configuration核心配置文件-->
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>

    <!--每一个Mapper.XML都需要在Mybatis核心配置文件中注册!-->
    <mappers>
       <mapper resource="com/kang/dao/UserMapper.xml"/>
    </mappers>
</configuration>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值