记录初次学习MyBatis遇到的问题
之后有补充
引发原因:
- 一个文件命名引发的血案 在创建xml文件时,命名为mybatis,点击确定,选择xml类型
- 数据库表名引发的血案在xml配置文件中,数据库表名、字段名与Java关键字冲突。
- 数据库时区与系统时区设置问题。
. “The server time zone value’???ú±ê×??±??'is unrecognized or represents more than one time zone.”
一个文件命名引发的血案
在创建xml文件时,命名为mybatis,点击确定,选择xml类型。这引发了一个问题,我在通过
test.class.getClassLoader().getResourceAsStream("MyBatisConfig");
读取文件时,错误的加了 .xml
getResourceAsStream("MyBatisConfig.xml")
导致我一直读取文件为null
因为我这种操作,会使得java在target目录下生成的文件是没有**.xml**后缀的。
数据库表名引发的血案
在创建数据表时,我用了name作为列名,在配置x’m’l文件时,不能通过,我又不想重建数据表,就在网上查了一下,用单引号将关键字引起来使用。因为当时和时区问题一起报的错误,我一直没注意到。
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''user'' at line 1
你的SQL语法有错误;检查MySQL服务器版本对应的手册第1行“user”附近使用的语法是否正确
最后时区那个问题一直改不好,我才注意到这点。重建数据表后,调整时区,问题就解决了。
时区问题
“The server time zone value’???ú±ê×??±??'is unrecognized or represents more than one time zone.”
很多人说,这是时区不一致引起的,我把UTC、Asia/Shanghai Hongkong几个都试了一遍,还是不行。
之后我核对数据库时间和系统时间,确认两个时间是一致的。
在过程中,学到一些关于Mysql和JDBC时区的操作,特作记录。
GMT%2B8
serverTimezone=GMT%2B8
GMT%2B8有一个问题是,在IDEA的DataBase中设置时区时,这个不被接受。
UTC
Asia/Hongkong
Asia/Shanghai