安装的mysql为5.7.28版本;需要修改时区和sql-mode。
mysq的配置文件内容如下:其中后面的三个参数必须加上,不然会出问题。
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\Program Files\mysql-5.7.28-winx64
# 设置mysql数据库的数据的存放目录
datadir=C:\Program Files\mysql-5.7.28-winx64\data
# 允许最大连接数
max_connections=200
# 设置mysql服务端默认字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 注意这个参数,MySQL默认值导致在Windows 10 专业版上无法安装
innodb_flush_method=normal
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
default-time-zone='+08:00'
我把我本地调整好的代码提交到了我的github上了。
git@github.com:itwzhangzx02/mybatis-3.git
下面时数据库截图:
运行结果:
下面是我后来为了方便调试,做了一些修改:mybatis-3\src\test\java\log4j.properties文件
### Global logging configuration log4j.rootLogger=DEBUG, stdout ### Uncomment for MyBatis logging log4j.logger.org.apache.ibatis=DEBUG
修改为事务自动提交:获取sqlSession时,加参数true
sqlSession = sqlSessionFactory.openSession(true);
另外,以前XML中入参是允许 #{0} #{1} 这样的,高版本现在不支持了。需要改为 #{arg0},#{arg1} 这样的
update u_user set username = #{arg0} where usercode= #{arg1}
最后,将二级缓存关闭,在总的配置文件,configuration标签下
<settings> <setting name="cacheEnabled" value="false"/> </settings>