使用maven自动生成代码实现多表(四表)联查

 四张表之间的关系:

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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值