四张表之间的关系:
User类 一个user对应一个role
Role类 一个role对应多个user
Role 和 menu是多对多关系
Menu类 一个menu 对应 多个fun
Funs类 funs对应一个menu 多对一
使用maven自动生成代码之后,只需改动以下地方:
db.properties
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test
jdbc.username=root
jdbc.password=123456
initialSize=10
maxToal=30
maxIdle=10
minIdle=5
maxWaitMillis=1000
removeAbandonedOnMaintenance=true
removeAbandonedOnBorrow=true
removeAbandonedTimeout=1
mode.package=com.openlab.pojo
dao.package=com.openlab.mapper
xml.mapper.package=com.openlab.mapper
target.project=MyBatisMavenDemo_1
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>
<properties resource="db.properties"></properties>
<context id="context1" targetRuntime="Mybatis3">
<jdbcConnection
driverClass="${jdbc.driverClassName}"
connectionURL="${jdbc.url}"
userId="${jdbc.username}"
password="${jdbc.password}"/>
<javaModelGenerator targetPackage="${mode.package}" targetProject="./src/main/java"></javaModelGenerator>
<sqlMapGenerator targetPackage="${xml.mapper.package}" targetProject="./src/main/java"></sqlMapGenerator>
<javaClientGenerator targetPackage="${dao.package}" targetProject="./src/main/java" type="XMLMAPPER">
<property name="enableSubPackages" value="false"/>
</javaClientGenerator>
<table schema="???" tableName="user"
enableSelectByExample="false" enableDeleteByExample="false" enableUpdateByExample="false"
enableCountByExample="false" selectByExampleQueryId="false">
</table>
<table schema="???" tableName="role"
enableSelectByExample="false" enableDeleteByExample="false" enableUpdateByExample="false"
enableCountByExample="false" selectByExampleQueryId="false">
</table>
<table schema="???" tableName="menu"
enableSelectByExample="false" enableDeleteByExample="false" enableUpdateByExample="false"
enableCountByExample="false" selectByExampleQueryId="false">
</table>
<table schema="???" tableName="funs"
enableSelectByExample="false" enableDeleteByExample="false" enableUpdateByExample="false"
enableCountByExample="false" selectByExampleQueryId="false">
</table>
</context>
</generatorConfiguration>
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="db.properties">
</properties>
<settings>
<setting name="cacheEnabled" value="true"/>
</settings>
<typeAliases>
<package name="com.openlab.pojo"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource = "com/openlab/mapper/UserMapper.xml"/>
<mapper resource = "com/openlab/mapper/RoleMapper.xml"/>
<mapper resource = "com/openlab/mapper/FunsMapper.xml"/>
<mapper resource = "com/openlab/mapper/MenuMapper.xml"/>
</mappers>
</configuration>
使用maven自动生成代码,com.openlab.mapper中只需要改动UserMapper.xml文件即可
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.openlab.mapper.UserMapper" >
<resultMap id="BaseResultMap" type="com.openlab.pojo.User" > <!-- 自定义实现高级结果集映射 ,resultMap外部resultMmap的命名引用-->
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Sun Jul 26 13:56:44 CST 2020.
-->
<id column="username" property="username" jdbcType="VARCHAR" /><!-- JDBC类型是仅仅需要对插入,更新和删除操作可能为空的列进行处理 -->
<result column="id" property="id" jdbcType="VARCHAR" />
<result column="password" property="password" jdbcType="VARCHAR" />
<result column="roleId" property="roleid" jdbcType="INTEGER" />
<result column="iconURL" property="iconurl" jdbcType="VARCHAR" />
<association property="role" javaType="com.openlab.pojo.Role">
<id column="roleid" property="roleid" jdbcType="INTEGER"/>
<result column="rolename" property="rolename" jdbcType="VARCHAR