发表于: 2019-11-01 18:44:15
1 940
今天完成的事情:用mybatis逆向工程生成实体类,sql语句,dao接口。
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="E:\xz\mysql-connector-java-6.0.6.jar"/>
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--数据库链接URL,用户名、密码 -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/baoming?serverTimezone=GMT%2B8" userId="root" password="12345">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成模型的包名和位置-->
<javaModelGenerator targetPackage="com.example.demo.entity" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成映射文件的包名和位置-->
<sqlMapGenerator targetPackage="mapping" targetProject="src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成DAO的包名和位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.example.demo.dao" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<table tableName="second" domainObjectName="SecondUser" enableCountByExample="false" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true"></table>
</context>
</generatorConfiguration>
在设置数据库连接<jdbcConnection>时,如果使用的是最新的mysq connectorsl版本(我的为6.0.6),driverClass需设置为“com.mysql.cj.jdbc.Driver”,而不是之前的“com.mysql.jdbc.Driver”。否则将报错
如果使用的是最新的mysql connectors版本(我的为6.0.6),还需要设置mysql的时区,以使tomcat(server)和mysql的时区同步。如在<jdbcConnection>中设置为connectionURL="jdbc:mysql://localhost:3306/test?serverTimezone=UTC"。如果不指定serverTimezone=UTC,将报错
一开始
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
这一行一直爆红,经过百度,在pom.xml文件添加
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
爆红的问题解决了
<table tableName="second" domainObjectName="SecondUser" enableCountByExample="false" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true"></table>
要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名
false或者true表示你是否生成相对应的接口
明天计划的事情:将自动生成的sql语句根据需求加以修改,然后进行业务层的拼接
遇到的问题:table标签栏一开始false和true没有弄对,表示生成的接口不是自己想要的
收获:熟悉了mybatis的逆向工程
评论