欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

仿写mybatis所遇到的mysql方面的坑

程序员文章站 2022-03-11 16:29:42
问题:当我们使用IntelliJ社区版里面的DB navigation插件来进行链接数据库的时候。所显示的错误信息为:“Cannot connect to “Connection”. The server time zone value ‘�й���׼ʱ��’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the ‘ser.....
  1. 问题:
    当我们使用IntelliJ社区版里面的DB navigation插件来进行链接数据库的时候。
    所显示的错误信息为:
    “Cannot connect to “Connection”. The server time zone value ‘�й���׼ʱ��’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the ‘serverTimezone’ configuration property) to use a more spec…”

    原因:
    数据库的默认区时为格林尼治时间。对于我们的IntelliJ来讲是不能够直接使用的。

    解决方案:

    1. 首先进入mysql的工作文件夹“C:\ProgramData\MySQL\MySQL Server 8.0”。在中间打开my.ini。查找“[mysqld]”,在这行代码下面进行加入“default-time_zone = ‘+8:00’ ”。
    2. 进入applicaton.yml文件,将 driverClassName = com.mysql.cj.jdbc.Driver 和 url = jdbc:mysql://localhost:3306/test?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf-8
  2. 问题:
    链接数据库的时候,多次出现“Cause: java.sql.SQLSyntaxErrorException: Unknown column ‘name’ in ‘where clause’”。

    原因: 在链接数据库文件xxx.xml文件中,出现“ SELECT * FROM user WHERE name = #{name} AND password = #{password}”。 其中,数据库的默认位置已经是正确的情况下,数据库所包含的表内应含有“name”和“password”两列。

    解决方案:

    1. 进入mysql binary, 选中当前的的数据库表,新建name和password选项列。
  3. 问题:
    搭建完站点之后,测试总是报空指针。

    原因:

    1. 模仿改写的项目并无添加数据库功能。所以本身的数据库内文件为空表。
    2. 对于空表查询,其结果会报空指针错误。

4.问题:设置数据库的时候,多次出现“Could not load driverClass com.mysql.cj.jdbc.Driver”。
原因: 数据库的版本比较新,而数据库连接的驱动没有那么新。
解决方法: 在pom.xml文件中,version改成8.0.13(数据库为8版本)
mysql
mysql-connector-java
8.0.13

附录:

  1. mysql在进行列设置的时候,需要对列进行类型的定义。下面是常用列内值的定义。
    | type | range(±) | range(abs) |
    SMALLINT -32768~+32767 65535
    MEDIUMINT -8388608~+8388607 16777215
    INT -21亿~+21亿 42亿

    DECIMAL 小数类型(java开发手册规定)

    VARCHAR 变长字符串(0~255字节)
    TINYBLOB 不超过255个字符的二进制字符串
    TEXT 长文本数据(65535字节)
    MEDIUMTEXT 中等长度文本数据(1600万字节)

    DATE 1000-01-01 ~ 9999-12-31
    TIME -838:59:59 ~ +838:59:59
    YEAR 1901 ~ 2155
    DATETIME 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59

  2. mysql建表时,字段中有PK,NN,UQ,BIN,UN,ZF,AI几个基本字段类型标识。
    K:primary key 主键
    NN:not null 非空
    UQ:unique 唯一索引
    BIN:binary 二进制数据(比text更大的二进制数据)
    UN:unsigned 无符号     整数(非负数)
    ZF:zero fill 填充0 例如字段内容是1 int(4), 则内容显示为0001 
    AI:auto increment 自增
    G:generated column 生成列

本文地址:https://blog.csdn.net/shangjun2018/article/details/107632887

相关标签: 实习所得