仿写mybatis所遇到的mysql方面的坑
-
问题:
当我们使用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来讲是不能够直接使用的。解决方案:
- 首先进入mysql的工作文件夹“C:\ProgramData\MySQL\MySQL Server 8.0”。在中间打开my.ini。查找“[mysqld]”,在这行代码下面进行加入“default-time_zone = ‘+8:00’ ”。
- 进入applicaton.yml文件,将 driverClassName = com.mysql.cj.jdbc.Driver 和 url = jdbc:mysql://localhost:3306/test?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf-8
-
问题:
链接数据库的时候,多次出现“Cause: java.sql.SQLSyntaxErrorException: Unknown column ‘name’ in ‘where clause’”。原因: 在链接数据库文件xxx.xml文件中,出现“ SELECT * FROM user WHERE name = #{name} AND password = #{password}”。 其中,数据库的默认位置已经是正确的情况下,数据库所包含的表内应含有“name”和“password”两列。
解决方案:
- 进入mysql binary, 选中当前的的数据库表,新建name和password选项列。
-
问题:
搭建完站点之后,测试总是报空指针。原因:
- 模仿改写的项目并无添加数据库功能。所以本身的数据库内文件为空表。
- 对于空表查询,其结果会报空指针错误。
4.问题:设置数据库的时候,多次出现“Could not load driverClass com.mysql.cj.jdbc.Driver”。
原因: 数据库的版本比较新,而数据库连接的驱动没有那么新。
解决方法: 在pom.xml文件中,version改成8.0.13(数据库为8版本)
mysql
mysql-connector-java
8.0.13
附录:
-
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 -
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
上一篇: echarts 关系图
下一篇: 吴三桂发动三藩之乱后,为何没有直捣黄龙?