最近在做一个数据库的项目,希望可以搭建自己的ssm框架,于是尝试着,参看网上的博客进行搭建。打算出一个较为详细的过程记录,以免以后忘记怎么做
此文章参考了:https://blog.csdn.net/dwhdome/article/details/79131059,这是一个很好的引导博客
本文主要记录我在照着做的时候出现的疑惑
1.使用generator自动生成Dao, Model, Mapping 相关文件
相关步骤:
a> 打开命令行,找到generator所在的文件目录,进入lib下进行操作
b>输入以下命令
java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite
generatorconfig.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<classpathentry location="mysql-connector-java-5.1.28-bin-jar"></classpathentry>
<context id="testTables" targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/test1" userId="root"
password="123456">
</jdbcConnection>
<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- targetProject:生成PO类的位置 -->
<javaModelGenerator targetPackage="com.pojo"
targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 -->
<sqlMapGenerator targetPackage="com.mapper"
targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.mapper"
targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定数据库表 -->
<table schema="" tableName="user"></table>
</context>
</generatorConfiguration>
出现错误:
a. generatorconfig.xml does not exist
generatorconfig.xml 文件没有放在lib目录下,需要将其放在该目录
b. java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
原因是tomcat找不到MYSQL JAR包,必须把mysql-connector-java-5.1.7-bin.jar导入到tomcat的lib目录下面!
c.
XML Parser Errors occurred:
XML Parser Error on line 7: 必须声明元素类型 "classpathentry"。
XML Parser Error on line 52: 元素类型为 "generatorConfiguration" 的内容必须匹配 "(properties?,classPathEntry*,context+)"
原因很明显,文件中出现了错误。
<classpathentry location="mysql-connector-java-5.1.28-bin-jar"></classpathentry>
修改为
<classPathEntry location="mysql-connector-java-5.1.28-bin-jar"></classPathEntry>
再次运行发生如下错误
d. Cannot resolve classpath entry: mysql-connector-java-5.1.28-bin-jar
emmm,原因是路径写错了!!!!
修改为
<classPathEntry location="mysql-connector-java-5.1.28-bin.jar"></classPathEntry>
绝望!!!!!!
ps:如果修改结束后还是出现这个问题,那么就将路径修改为绝对路径即可
e. java.math.BigInteger cannot be cast to java.lang.Long
这个问题出现了好多次,后来百度之后发现是版本问题。我使用的MySQL版本是8,所以吧原来的mysql-connector5.1.26-bin.jar更换为mysql-connector5.1.46-bin.jar之后问题就解决了。
附上mysql-connector5.1.46的下载地址
注意在更换了jar包之后上述的逆向工程项目配置也要完成对应的修改