当前位置: 代码网 > it编程>编程语言>Java > Mybatis中反向生成代码使用的实现

Mybatis中反向生成代码使用的实现

2025年07月07日 Java 我要评论
反向生成核心配置文件generatorconfig.xml (eclipse)<?xml version="1.0" encoding="utf-8" ?><!doctype gen

反向生成核心配置文件generatorconfig.xml (eclipse)

<?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 >
<!-- 本地电脑的  mysql驱动位置  一定需要加  jar名称 -->
	<classpathentry location="" />
	<context id="context1" defaultmodeltype="flat">
		
		<!-- po序列化 -->
		<plugin type="org.mybatis.generator.plugins.serializableplugin">
		</plugin>

		<commentgenerator>
			<!-- 是否去除自动生成的注释 true:是 : false:否 -->
			<property name="suppressallcomments" value="false" />
		</commentgenerator>

	
			<!-- 数据库的连接信息 -->
		  <jdbcconnection driverclass="com.mysql.jdbc.driver" 
		          connectionurl="jdbc:mysql://localhost:3306/no4" 
		          userid="root" 
		          password="root"> 
			</jdbcconnection>
			
		<javatyperesolver>
			<property name="forcebigdecimals" value="false"/>
		</javatyperesolver> 

		<!--生成model类存放位置  targetpackage="实体包位置"-->
		<javamodelgenerator targetpackage="com.oracle.pojo"
			targetproject="">
			<property name="trimstrings" value="true" />
		</javamodelgenerator>

		<!--生成映射文件存放位置 -->
		<sqlmapgenerator targetpackage="com.oracle.mapper"
			targetproject="">
			<property name="trimstrings" value="true" />
		</sqlmapgenerator>

		<!--生成dao类存放位置 -->
		<javaclientgenerator targetpackage="com.oracle.mapper"
			targetproject="" type="xmlmapper" />

		<!--生成对应表及类名-->
		<table schema=""  tablename="" domainobjectname="" enablecountbyexample="true" enableupdatebyexample="true"
			enabledeletebyexample="true" enableselectbyexample="true"
			selectbyexamplequeryid="true">
		</table> 

       
    
	</context>
</generatorconfiguration>

反向生成核心配置文件generatorconfig.xml (idea)

<?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>
    <context id="test" targetruntime="mybatis3">
        <plugin type="org.mybatis.generator.plugins.equalshashcodeplugin"></plugin>
          
        <plugin type="org.mybatis.generator.plugins.serializableplugin"></plugin>
         
        <plugin type="org.mybatis.generator.plugins.tostringplugin"></plugin>
         
        <commentgenerator>
            <!-- 这个元素用来去除指定生成的注释中是否包含生成的日期 false:表示保护 -->
            <!-- 如果生成日期,会造成即使修改一个字段,整个实体类所有属性都会发生变化,不利于版本控制,所以设置为true -->
            <property name="suppressdate" value="true" />
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressallcomments" value="true" />
        </commentgenerator>
        
        <!--数据库链接url,用户名、密码 -->
        <jdbcconnection driverclass="com.mysql.jdbc.driver"
            connectionurl="jdbc:mysql://192.168.25.100:3306/authority" userid="root" password="xxx.">
            <!-- 解决table schema中有多个重名的表生成表结构不一致问题 -->
            <property name="nullcatalogmeanscurrent" value="true"/>
        </jdbcconnection>
        
        <javatyperesolver>
            <!-- this property is used to specify whether mybatis generator should 
                force the use of java.math.bigdecimal for decimal and numeric fields, -->
            <property name="forcebigdecimals" value="false" />
        </javatyperesolver>
        
        <!-- 生成模型的包名和位置 -->
        <javamodelgenerator targetpackage="com.li.pojo"
            targetproject="src/main/java">
            <property name="enablesubpackages" value="true" />
            <property name="trimstrings" value="true" />
        </javamodelgenerator>
        
        <!-- 生成映射文件的包名和位置 -->
        <sqlmapgenerator targetpackage="/mapper"
            targetproject="src/main/resources">
            <property name="enablesubpackages" value="true" />
        </sqlmapgenerator>
        
        <!-- 生成dao的包名和位置 -->
        <javaclientgenerator type="xmlmapper"
            targetpackage="com.li.mapper" implementationpackage="com.li.mapper"  targetproject="src/main/java">
            <property name="enablesubpackages" value="true" />
        </javaclientgenerator>
        
         <table tablename="categorys" domainobjectname="category"
            enablecountbyexample="true" enableupdatebyexample="true"
            enabledeletebyexample="true" enableselectbyexample="true"
            selectbyexamplequeryid="true">
        </table>
      
    </context>
</generatorconfiguration>

导入maven

            <plugin>
                    <groupid>org.mybatis.generator</groupid>
                    <artifactid>mybatis-generator-maven-plugin</artifactid>
                    <version>1.3.2</version>
                    <dependencies>
                        <dependency>
                            <groupid>mysql</groupid>
                            <artifactid>mysql-connector-java</artifactid>
                            <version>5.1.46</version>
                        </dependency>
                    </dependencies>
                    <configuration>
                        <!--配置文件的路径 -->
                        <configurationfile>${basedir}/src/main/resources/generatorconfig.xml</configurationfile>
                        <overwrite>true</overwrite>
                    </configuration>
              </plugin>

注意:mysql8.0版本需要添加以下语句,否则实体类中生成字段不一致

			<!-- 数据库的连接信息 -->
		  <jdbcconnection driverclass="com.mysql.cj.jdbc.driver" 
		          connectionurl="jdbc:mysql://localhost:3306/test?servertimezone=utc" 
		          userid="root" 
		          password="xxx"> 
		       <!-- 解决table schema中有多个重名的表生成表结构不一致问题 -->
			<property name="nullcatalogmeanscurrent" value="true"/>
			</jdbcconnection>
			

关于反向生成多条件查询代码的使用

1.创建对应的实体类example对象

2.创建criteria对象

3.向criteria对象中封装对应参数的各种条件

4.将example对象交给selectbyexample方法进行查询

	public list<cities> findcitybyproid(string provinceid) {
		sqlsession sqlsession = dbutils.createdbutils().getsqlsession();
		citiesmapper mapper = sqlsession.getmapper(citiesmapper.class);
		try {
			citiesexample citiesexample = new citiesexample();
			criteria criteria = citiesexample.createcriteria();
			criteria.andprovinceidequalto(provinceid);
			list<cities> citieslist = mapper.selectbyexample(citiesexample);
			return citieslist;
		}finally {
			sqlsession.close();
		}
	}

到此这篇关于mybatis中反向生成代码使用的实现的文章就介绍到这了,更多相关mybatis 反向生成代码内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网! 

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com