当前位置: 移动技术网 > IT编程>开发语言>Java > 仿写mybatis所遇到的mysql方面的坑

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

2020年07月30日  | 移动技术网IT编程  | 我要评论
  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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网