一、增加dependencies。两种情况:
1.本地不存在相应jar包,此时通过在pom.xml文件中添加代码,由工具自动下载(sts为例)。
如要添加mybatis,若本地不存在相关jar包,可搜索 mybatis mvn,选择版本,并将如下代码(图1)添加到pom.xml文件中(图2)
2.本地存在相应jar包,则直接在pom.xml文件的dependencies选项卡中添加即可
总结:推荐第一次使用jar包时,通过工具自动下载,不然搞不清Maven Dependencies的目录结构
未导入jar包时,工程目录中不会显示Maven Dependencies文件夹
二、核心配置文件configuration.xml
可直接从mybatis官方文档中找到代码样例。地址:http://www.mybatis.org/mybatis-3/getting-started.html
将Building SqlSessionFactory from XML中的代码全部复制到新建的configuration.xml文件中,并对driver、url以及mapper作出修改。此处需要注意到jdbc驱动包版本的问题。我使用的版本为8.0.11
<configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/user?useSSL=false&serverTimezone=UTC"/> <property name="username" value="root"/> <property name="password" value="521456"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/mybatis/dao/UserMapper.xml"/> </mappers> </configuration>
错误总结:
如果不在url后添加“serverTimezone=UTC”则在运行时会报错,
org.apache.ibatis.exceptions.PersistenceException: ### Error updating database. Cause: java.sql.SQLException: 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 specifc time zone value if you want to utilize time zone support. ### Cause: java.sql.SQLException: 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 specifc time zone value if you want to utilize time zone support.
如果在url后面加入多个条件时,如还要加入useSSL=false条件 ,则中间不能只用“&”符号连接,因为xml文件中“&”字符是被禁止的,如要使用,则需要用转义字符“&”,否则将会报错,
org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession. ### Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 11; columnNumber: 97; 对实体 "serverTimezone" 的引用必须以 ';' 分隔符结尾。