mybatis_笔记_01_逆向工程

shirayner      2022-02-16     297

关键词:

通过Mybatis逆向工程,可以从数据库中的表自动生成pojo、mapper映射文件和mapper接口

此处暂存怎么使用逆向工程,原理以后再探讨

 

工程结构

 

要修改的地方:generatorConfig.xml配置文件中数据库信息(用户名、密码等)、指定数据库表  这两个地方需要修改

 

代码:

1.GeneratorSqlmap.java

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;

public class GeneratorSqlmap {

    public void generator() throws Exception{

        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        //指定 逆向工程配置文件
        File configFile = new File("generatorConfig.xml"); 
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(configFile);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
                callback, warnings);
        myBatisGenerator.generate(null);

    } 
    public static void main(String[] args) throws Exception {
        try {
            GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
            generatorSqlmap.generator();
        } catch (Exception e) {
            e.printStackTrace();
        }
        
    }

}
View Code

 

2.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>
    <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/taotao" userId="root"
            password="123">
        </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.taotao.pojo"
            targetProject=".\src">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
            <!-- 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- targetProject:mapper映射文件生成的位置 -->
        <sqlMapGenerator targetPackage="com.taotao.mapper" 
            targetProject=".\src">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>
        <!-- targetPackage:mapper接口生成的位置 -->
        <javaClientGenerator type="XMLMAPPER"
            targetPackage="com.taotao.mapper" 
            targetProject=".\src">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>
        <!-- 指定数据库表 -->
        <table schema="" tableName="tb_content"></table>
        <table schema="" tableName="tb_content_category"></table>
        <table schema="" tableName="tb_item"></table>
        <table schema="" tableName="tb_item_cat"></table>
        <table schema="" tableName="tb_item_desc"></table>
        <table schema="" tableName="tb_item_param"></table>
        <table schema="" tableName="tb_item_param_item"></table>
        <table schema="" tableName="tb_order"></table>
        <table schema="" tableName="tb_order_item"></table>
        <table schema="" tableName="tb_order_shipping"></table>
        <table schema="" tableName="tb_user"></table>

    </context>
</generatorConfiguration>
View Code

 

3.log4j.properties

log4j.rootLogger=DEBUG, Console
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
View Code

 

mybatis-plus01_概述初始化工程basemapper和service中的crud常用注解

文章目录①.MyBatis-Plus的概述②.MyBatis-Plus初始化工程③.BaseMapper中的CRUD④.ServiceCRUD接口⑤.常用注解-@TableName⑥.常用注解-@TableId⑦.主键增长策略-雪花算法⑧.常用注解-@TableField⑨.常用注解-@TableLogic①.MyBatis-Plus的概述①... 查看详情

ssm框架整合笔记-3-mybatis的逆向工程与测试项目

1、mybatis代码生成器(插件)1.1安装插件资源准备:mybatis_generator_1.3.1.zipgeneratorConfig.xml1.1.1关闭MyEclipse,找到MyEclipse安装后的目录,新建文件夹soft/mybatis,如下图:1.1.2解压mybatis_generator_1.3.1.zip文件,并把解压出的features和pougins... 查看详情

ctf逆向工具angr的学习笔记(代码片段)

angr概述如何学习题目列表00_angr_find01_angr_avoid02_angr_find_condition03_angr_symbolic_registers04_angr_symbolic_stack05_angr_symbolic_memory06_angr_symbolic_dynamic_memory07_angr_symbolic_file08_angr_constrai 查看详情

c笔记a01_tmain()和main()的区别,

 最近开始用VS写程序,创建了一个C++控制台程序,发现和以前的裸机C还是有很大的区别 _tmain()是unicode版本的的main()   _tmain这个符号多见于VC++创建的控制台工程中,这个是为了保证移植unicode而加入的(一般_t... 查看详情

项目一众筹网01_01环境搭建(后台)mbg逆向工程(基于maven)整合mybatis-思路和操作依赖信息来源https://mvnrepository.com(代码片段)

...5-后台-环境搭建-物理建模-操作16-后台-环境搭建-MBG(逆向工程)概要:具体操作:17-后台-环境搭建-父工程管理依赖18-后台-环境搭建-依赖信息来源19-后 查看详情

01_mybatis基础

参考:Mybatis3.4.6中文开发手册 开源项目下载网址:github.com/mybatis/mybatis-3/release官方文档网址:www.mybatis.org/mybatis-3 Mybatis原始apache的开源项目iBatis,后来迁移到googlecode,改名Mybatis。iBatis来源:internet+abates,一个基于java的... 查看详情

mbatis_逆向工程

  mybatis逆向工程什么是逆向工程?  mybatis需要程序员自己编写sql语句,mybatis官方提供逆向工程,可以针对单表自动生成所需的代码(mapper,java,po...)等,对于新手不建议使用這写,在后期企业实际开发中需要用到由... 查看详情

01_mybatis入门

首先呢,我们用mybatis肯定涉及到mybatis的引用,其次,mybatis是用来连接数据库的,所以又涉及到对对应数据库的引用,所以最基本的我们要导入两个jar包,这边数据库以mysql为例。引入如下两个依赖(maven用法),对应两个jar包... 查看详情

尚硅谷大数据hadoop教程-笔记01入门(代码片段)

...Hadoop3.x安装搭建到集群调优)尚硅谷大数据Hadoop教程-笔记01【入门】尚硅谷大数据Hadoop教程-笔记02【HDFS】尚硅谷大数据Hadoop教程-笔记03【MapReduce】尚硅谷大数据Hadoop教程-笔记04【Yarn】尚硅谷大数据Hadoop教程-笔记04【生产调... 查看详情

编写有效用例_阅读笔记01

  粗略浏览整本书,我对它第一印象并不是很好,不然也不会迟迟未看下去。然而,耐着性子学习,却发现我们所学习的软件工程的相关课程,万变不离其宗,整个系统是一致的。换句话说,一个系统做下来,并不是单单一门... 查看详情

学习笔记——mybatis动态sql(代码片段)

2023-01-12一、Mybatis动态SQL即将SQL动态化同时Mybatis的动态SQL支持OFNL表达式,OGNL(ObjectGraphNavigationLanguage)对象图导航语言。1、先搭建环境(1)创建一个“maven”模块,命名为“day04_mybatis”(2)在“day04_mybatis”中的“pom.xml”中的... 查看详情

现代软件工程团队项目贝塔阶段_开发日志_2018.01.15-2018.01.19

现代软件工程团队项目贝塔阶段_开发日志_2018.01.15-2018.01.192018.01.15已完成:1.版本上线 1.1上线操作步骤 1.1.1将网站整体文件夹拷贝到keqi11.1.2修改microDefinition.php的数据库名和根目录名1.1.3修改注册界面发送验证码后直接填... 查看详情

现代软件工程_第01周_纪梓潼_第06题

...p; 这些软件合法么?符合道德规范么?是在“软件工程”的研究范围么?请大家讨论。参考信息:通常人们都在路边招手叫出租车,只有很少的人打电话约车,从2014年起,在很多叫 查看详情

现代软件工程_第01周_纪梓潼_第02题

...软件公司为何会给你免费使用这个软件呢?写这个软件的工程师们,他们的工资如果不从你(用户)这里来,从哪里来呢?目前你们当地的软件工 查看详情

mybatis_01

原生态JavaJDBC程序问题总结:1.数据库连接,使用时就创建,不使用时就关闭。数据库连接频繁的开启和关闭本身就造成了资源的浪费,影响系统的性能。 解决方案:可以使用数据库连接池来管理数据库的连接。2.将sql语句硬编... 查看详情

ase学习笔记_01_mask

【ASE学习笔记】_01_Mask前言:本期使用到的材质类型是无光照类型实现效果:最终结点图实现思路:1.准备两张贴图,一张当做主体贴图,用于展现遮罩效果,另一张用于遮罩,以蝴蝶遮罩效果为例࿰... 查看详情

pyqt5笔记(01)--创建空白窗体

本节主要介绍如何创建一个PyQt的空白窗体1importsys2fromPyQt5.QtWidgetsimportQApplication,QWidget3fromPyQt5.QtGuiimportQIcon45classApp(QWidget):67def__init__(self):8super().__init__()9self.titie="QTsimplewindow"10"""用于设置 查看详情

商城项目_目录

...从0搭建各个微服务项目等商城项目03_人人前后端项目、逆向工程、common工程搭建、coupon以及各个 查看详情