写一个基于mybatis的demo。

一、代码实现

项目结构:

1

(1)导入以下包

  1. hamcrest-core-1.3.jar
  2. junit-4.12.jar
  3. mybatis-3.3.1.jar
  4. mysql-connector-java-5.1.36-bin.jar
  5. mysql-connector-java-5.1.38.jar
  6. mysql-connector-java-6.0.2.jar

很多同学可能会觉得奇怪,导入这么多个mysql驱动好玩吗?这个问题我想等下再解释。

事实上导入除了mysql-connector-java-6.0.2.jar的任何一个驱动包都可以。

(2)数据库结构

(3)写一个Mybatis的配置文件conf.xml

(4)写一个用于查询的结果映射的bean

(5)写一个定义sql语句的配置文件mapper.xml

特别注意现在的id是test.miss,等下找sql语句时候要用到.

(6)配置好了sql语句配置文件之后,需要在conf.xml文件中注册

注册之后整个conf.xml文件就变成了:

(7)写出测试类

运行结果:

查询成功了。

二、遇到的问题

(1)莫名其妙的时区问题

我想了一下,之前没有遇到这个问题呀,我这次用了最新的mysql-connector-java-6.0.2.jar驱动包,难道是版本出问题了?

所以我换回了以前一直使用的mysql-connector-java-5.1.36-bin.jar包,问题就解决了。

后来在stackoverflow上发现很多人也遇到了同样的问题:

http://stackoverflow.com/questions/26515700/mysql-jdbc-driver-5-1-33-time-zone-issue

甚至有人表示:

This is a bug in mysql-connector-java from version 5.1.33 to 5.1.37

这么多版本的包都存在这个问题,但是我之前用的就是mysql-connector-java-5.1.36-bin.jar,一直就是这么用过来的。

后来我打算试试第二新的mysql-connector-java-5.1.38.jar,正常运行没有问题。

个人认为这个问题只存在于6.0.2版本,避开就好了。

(2)忘记导入junit相关依赖

忘记导入hamcrest-core-1.3.jar这个junit必须依赖的包,junit一直跑不起来。

幸好有经验,很快就发现了问题,导入之后就解决了。

三、总结

记录一下。

发表评论

电子邮件地址不会被公开。 必填项已用*标注