逆向工程 订阅
逆向工程(又称逆向技术),是一种产品设计技术再现过程,即对一项目标产品进行逆向分析及研究,从而演绎并得出该产品的处理流程、组织结构、功能特性及技术规格等设计要素,以制作出功能相近,但又不完全一样的产品。逆向工程源于商业及军事领域中的硬件分析。其主要目的是在不能轻易获得必要的生产信息的情况下,直接从成品分析,推导出产品的设计原理。逆向工程可能会被误认为是对知识产权的严重侵害,但是在实际应用上,反而可能会保护知识产权所有者。例如在集成电路领域,如果怀疑某公司侵犯知识产权,可以用逆向工程技术来寻找证据。 展开全文
逆向工程(又称逆向技术),是一种产品设计技术再现过程,即对一项目标产品进行逆向分析及研究,从而演绎并得出该产品的处理流程、组织结构、功能特性及技术规格等设计要素,以制作出功能相近,但又不完全一样的产品。逆向工程源于商业及军事领域中的硬件分析。其主要目的是在不能轻易获得必要的生产信息的情况下,直接从成品分析,推导出产品的设计原理。逆向工程可能会被误认为是对知识产权的严重侵害,但是在实际应用上,反而可能会保护知识产权所有者。例如在集成电路领域,如果怀疑某公司侵犯知识产权,可以用逆向工程技术来寻找证据。
信息
动    力
确认竞争产品是否侵权专利或版权
作    用
保护知识产权所有者
中文名
逆向工程
又    称
逆向技术
逆向工程产生动机
需要逆向工程的原因如下:●接口设计。由于互操作性,逆向工程被用来找出系统之间的协作协议。●军事或商业机密。窃取敌人或竞争对手的最新研究或产品原型。●改善文档。当原有的文档有不充分处,又当系统被更新而原设计人员不在时,逆向工程被用来获取所需数据,以补充说明或了解系统的最新状态。●软件升级或更新。出于功能、合规、安全等需求更改,逆向工程被用来了解现有或遗留软件系统,以评估更新或移植系统所需的工作。●制造没有许可/未授权的副本。●学术/学习目的。●去除复制保护和伪装的登录权限。●文件丢失:采取逆向工程的情况往往是在某一个特殊设备的文件已经丢失了(或者根本就没有),同时又找不到工程的负责人。完整的系统时常需要基于陈旧的系统上进行再设计,这就意味着想要集成原有的功能进行项目的唯一方法,便是采用逆向工程的方法,分析已有的碎片进行再设计。●产品分析:用于调查产品的运作方式,部件构成,估计预算,识别潜在的侵权行为。
收起全文
精华内容
下载资源
问答
  • 逆向工程

    2019-09-22 19:05:20
    逆向工程 1 什么是逆向工程 mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xml、po..) 企业实际开发中,常用的逆向工程方式...

                                                    逆向工程

    1 什么是逆向工程

    mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xml、po..)

     

    企业实际开发中,常用的逆向工程方式:

    由于数据库的表生成java代码。

    2 逆向工程地址 

    https://download.csdn.net/download/weixin_41563161/11801589

    3生成代码配置文件

    <?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/mybatis" userId="root"
    			password="mysql">
    		</jdbcConnection>
    		<!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver"
    			connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg" 
    			userId="yycg"
    			password="yycg">
    		</jdbcConnection> -->
    
    		<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 
    			NUMERIC 类型解析为java.math.BigDecimal -->
    		<javaTypeResolver>
    			<property name="forceBigDecimals" value="false" />
    		</javaTypeResolver>
    
    		<!-- targetProject:生成PO类的位置 -->
    		<javaModelGenerator targetPackage="cn.itcast.ssm.po"
    			targetProject=".\src">
    			<!-- enableSubPackages:是否让schema作为包的后缀 -->
    			<property name="enableSubPackages" value="false" />
    			<!-- 从数据库返回的值被清理前后的空格 -->
    			<property name="trimStrings" value="true" />
    		</javaModelGenerator>
            <!-- targetProject:mapper映射文件生成的位置 -->
    		<sqlMapGenerator targetPackage="cn.itcast.ssm.mapper" 
    			targetProject=".\src">
    			<!-- enableSubPackages:是否让schema作为包的后缀 -->
    			<property name="enableSubPackages" value="false" />
    		</sqlMapGenerator>
    		<!-- targetPackage:mapper接口生成的位置 -->
    		<javaClientGenerator type="XMLMAPPER"
    			targetPackage="cn.itcast.ssm.mapper" 
    			targetProject=".\src">
    			<!-- enableSubPackages:是否让schema作为包的后缀 -->
    			<property name="enableSubPackages" value="false" />
    		</javaClientGenerator>
    		<!-- 指定数据库表 -->
    		<table tableName="items"></table>
    		<table tableName="orders"></table>
    		<table tableName="orderdetail"></table>
    		<table tableName="user"></table>
    
    		
    	</context>
    </generatorConfiguration>
    

    4 执行生成程序

     

    展开全文
  • 逆向工程教程:逆向工程教程
  • Mybatis05_逆向工程

    万次阅读 2020-05-15 10:30:21
    Mybatis05_逆向工程 数据库 t_user 表结构和内容: 创建maven工程 pom文件: <project xmlns=...

    Mybatis05_逆向工程

    数据库 t_user 表结构和内容:
    在这里插入图片描述
    在这里插入图片描述

    创建maven工程
    pom文件:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.blu</groupId>
      <artifactId>generatorTest</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <dependencies>
      	<dependency>
      		<groupId>org.mybatis</groupId>
      		<artifactId>mybatis</artifactId>
      		<version>3.4.5</version>
      	</dependency>
      	<dependency>
      		<groupId>mysql</groupId>
      		<artifactId>mysql-connector-java</artifactId>
      		<version>8.0.11</version>
      	</dependency>
      	<dependency>
      		<groupId>org.mybatis.generator</groupId>
      		<artifactId>mybatis-generator-core</artifactId>
      		<version>1.3.2</version>
      	</dependency>
      </dependencies>
    </project>
    

    resources下创建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">
    		<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
    						connectionURL="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;characterEncoding=UTF-8"
    						userId="root" password="123456">
    		</jdbcConnection>
    		<javaModelGenerator targetPackage="com.blu.entity" targetProject="./src/main/java"></javaModelGenerator>
    		<sqlMapGenerator targetPackage="com.blu.repository" targetProject="./src/main/java"></sqlMapGenerator>
    		<javaClientGenerator type="XMLMAPPER" targetPackage="com.blu.repository" targetProject="./src/main/java"></javaClientGenerator>
    		<table tableName="t_user" domainObjectName="User"></table>
    	</context>
    </generatorConfiguration>
    
    jdbcConnection 配置数据库连接信息
    javaModelGenerator 配置 JavaBean 的⽣成策略
    sqlMapGenerator 配置 SQL 映射⽂件⽣成策略
    javaClientGenerator 配置 Mapper 接⼝的⽣成策略
    table 配置⽬标数据表(tableName:表名,domainObjectName:JavaBean 类名)
    

    测试类generatorTest:

    package com.blu.test;
    
    import java.io.File;
    import java.io.IOException;
    import java.sql.SQLException;
    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.InvalidConfigurationException;
    import org.mybatis.generator.exception.XMLParserException;
    import org.mybatis.generator.internal.DefaultShellCallback;
    
    public class generatorTest {
    	public static void main(String[] args) {
    		List<String> warings = new ArrayList<String>();
    		boolean overwrite = true;
    		String genCig = "/generatorConfig.xml";
    		File configFile = new File(generatorTest.class.getResource(genCig).getFile());
    		ConfigurationParser configurationParser = new ConfigurationParser(warings);
    		Configuration configuration = null;
    		try {
    			configuration = configurationParser.parseConfiguration(configFile);
    		} catch (IOException e) {
    			e.printStackTrace();
    		} catch (XMLParserException e) {
    			e.printStackTrace();
    		}
    		DefaultShellCallback callback = new DefaultShellCallback(overwrite);
    		MyBatisGenerator myBatisGenerator = null;
    		try {
    			myBatisGenerator = new MyBatisGenerator(configuration, callback, warings);
    		} catch (InvalidConfigurationException e) {
    			e.printStackTrace();
    		}
    		try {
    			myBatisGenerator.generate(null);
    		} catch (SQLException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} catch (InterruptedException e) {
    			e.printStackTrace();
    		}
    	}
    }
    

    运行测试类,生成实体类,接口和mapper:
    在这里插入图片描述

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,274
精华内容 6,109
关键字:

逆向工程