Mybatisplus代码生成 之SpringBoot适配MYSQL和ORACLE

Mybatisplus代码生成 之SpringBoot适配MYSQL和ORACLE

文章目录

  • 前期准备:
  • 看图操作,一路下一步
    • 1. 导入相关依赖
    • 2. 新建代码生成类MysqlGenerator
      • 2.1. MYSQL 代码生成部分
      • 2.2. ORACLE代码生成部分
    • 3. 创建全局配置文件
    • 4. 启动类加@MapperScan注解
    • 5. 在controller层写个测试方法:
    • 6. 浏览器验证
    • 7. 多模块适配Mybatisplus代码生成 之SpringBoot适配MYSQL和ORACLE

前期准备:

  • MYSQL数据库表
CREATE TABLE `tbl_employee` (`id` int(11) NOT NULL AUTO_INCREMENT,`last_name` varchar(50) COLLATE utf8_bin DEFAULT NULL,`email` varchar(50) COLLATE utf8_bin DEFAULT NULL,`gender` char(1) COLLATE utf8_bin DEFAULT NULL,`age` int(11) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

测试数据

INSERT INTO tbl_employee(last_name,email,gender,age) VALUES('Tom','tom@atguigu.com',1,22);
INSERT INTO tbl_employee(last_name,email,gender,age) VALUES('Jerry','jerry@atguigu.com',0,25);
INSERT INTO tbl_employee(last_name,email,gender,age) VALUES('Black','black@atguigu.com',1,30);
INSERT INTO tbl_employee(last_name,email,gender,age) VALUES('White','white@atguigu.com',0,35)
  • user
CREATE TABLE `user` (`id` bigint(20) NOT NULL COMMENT '主键ID',`name` varchar(30) COLLATE utf8_bin DEFAULT NULL COMMENT '姓名',`age` int(11) DEFAULT NULL COMMENT '年龄',`email` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '邮箱',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

测试数据

DELETE FROM user;INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');

看图操作,一路下一步

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
搭建SpringBoot基础环境完成!!!

1. 导入相关依赖

<?xml version="1.0" encoding="UTF-8"?>
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.6.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.gblfy</groupId><artifactId>mybatis-plus-generator</artifactId><version>0.0.1-SNAPSHOT</version><name>mybatis-plus-generator</name><description>Demo project for Spring Boot</description><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><mybatisplus.version>3.1.2</mybatisplus.version><oracle.version>11.2.0.3</oracle.version></properties><dependencies><!--mybatis-plus Start--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatisplus.version}</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus</artifactId><version>${mybatisplus.version}</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>${mybatisplus.version}</version></dependency><!--mybatis-plus End--><!-- lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId></dependency><!--MYSQL数据库驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><!-- ORACLE数据库驱动--><dependency><groupId>com.oracle</groupId><artifactId>ojdbc6</artifactId><version>${oracle.version}</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>3.1</version><configuration><source>${java.version}</source><target>${java.version}</target></configuration></plugin></plugins></build></project>

2. 新建代码生成类MysqlGenerator

2.1. MYSQL 代码生成部分

package com.gblfy.mybatisplus.generator;import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;import java.util.ArrayList;
import java.util.List;/*** <p>* mysql 代码生成器演示例子* </p>** @author gblfy* @since 2019-07-12*/
public class MysqlGenerator {/*************************************MYSQL代码生成  Start *************************************/// 全局配置private final static String OUTPUT_XML_DIR = "/src/main/resources";// 生成xml文件的输出目录private final static String AUTHOR = "gblfy";// 开发人员// 数据源配置private final static String MYSQL_DRIVER_NAME = "com.mysql.cj.jdbc.Driver";// MYSQL数据库驱动private final static String DATABASE_IP = "localhost";// 数据库ipprivate final static String MYSQL_DATABASE_NAME = "mp";// 数据库名private final static String MYSQL_DB_USERNAME = "root";// 数据库用户private final static String MYSQL_DB_PASSWORD = "root";// 数据库口令private final static String MYSQL_DB_PORT = "3306";// MYSQL数据库端口//包名和数据库表private final static String PARENT_PACKAGE = "com.gblfy.mybatisplus.generator";// 父包名。如果为空,将下面子包名必须写全部, 否则就只需写子包名private final static String MODULE_NAME = "emp";// 父包模块名private final static String[] TABLE_NAME_LIST = {"tbl_employee", "user"};// 父包模块名// 自定义基类private final static String SuperEntity = PARENT_PACKAGE + ".common.BaseEntity";private final static String SuperController = PARENT_PACKAGE + ".common.BaseController";/*** 运行main方法即可* 1.全局配置* 2.数据源配置* 3.包配置策略* 4.策略配置* 5.整合配置*/public static void main(String[] args) {//获取项目本地磁盘路径String projectPath = System.getProperty("user.dir");
/********************************** 全局配置**********************************/// 全局配置GlobalConfig gc = new GlobalConfig();//生成java文件的存放位置gc.setOutputDir(projectPath + "/src/main/java").setAuthor(AUTHOR)//作者署名.setFileOverride(true)//是否文件覆盖.setIdType(IdType.ID_WORKER)//主键策略.setBaseResultMap(true).setBaseColumnList(true)//生成sql片段//.setServiceName("%sService")//设置生成service接口是否首字母是I//是否打开输出目录.setOpen(false);
/********************************** 数据源配置**********************************///1.MYSQLDataSourceConfig dsc = new DataSourceConfig();dsc.setDbType(DbType.MYSQL)//设置数据库类型.setDriverName(MYSQL_DRIVER_NAME)//设置数据库启动.setUrl("jdbc:mysql://" + DATABASE_IP + ":" + MYSQL_DB_PORT + "/" + MYSQL_DATABASE_NAME + "?useUnicode=true&useSSL=false&characterEncoding=utf8").setDriverName(MYSQL_DRIVER_NAME).setUsername(MYSQL_DB_USERNAME).setPassword(MYSQL_DB_PASSWORD);
/********************************** 包名配置**********************************/// 包配置PackageConfig pc = new PackageConfig();pc.setParent(PARENT_PACKAGE).setModuleName(MODULE_NAME).setController("controller").setService("service").setServiceImpl("service.impl").setMapper("mapper");// 自定义配置InjectionConfig cfg = new InjectionConfig() {@Overridepublic void initMap() {// to do nothing}};List<FileOutConfig> focList = new ArrayList<>();focList.add(new FileOutConfig("/templates/mapper.xml.ftl") {@Overridepublic String outputFile(TableInfo tableInfo) {// 自定义输入文件名称 单模块场景return projectPath + OUTPUT_XML_DIR + "/mapper/" + pc.getModuleName()+ "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;}});cfg.setFileOutConfigList(focList);
/********************************** 策略配置**********************************/// 策略配置StrategyConfig strategy = new StrategyConfig();strategy.setCapitalMode(true)//全局大小写命名.setColumnNaming(NamingStrategy.underline_to_camel)//数据库字段是否下划线转驼峰.setNaming(NamingStrategy.underline_to_camel)//数据库表映射到实体的命名策略.setSuperEntityClass(SuperEntity).setEntityLombokModel(true).setSuperControllerClass(SuperController).setInclude(TABLE_NAME_LIST).setSuperEntityColumns("id").setControllerMappingHyphenStyle(true).setTablePrefix(pc.getModuleName() + "_");// 配置整合 代码生成器AutoGenerator mpg = new AutoGenerator();//配置信息添加至 全局配置容器mpg.setGlobalConfig(gc).setStrategy(strategy).setDataSource(dsc).setPackageInfo(pc).setCfg(cfg).setTemplate(new TemplateConfig().setXml(null)).setTemplateEngine(new FreemarkerTemplateEngine())// 选择 freemarker 引擎需要指定如下加,注意 pom 依赖必须有!.execute();//执行}/*************************************MYSQL代码生成  End *************************************/
}

2.2. ORACLE代码生成部分

package com.gblfy.mybatisplus.generator;import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;import java.util.ArrayList;
import java.util.List;/*** <p>* mysql 代码生成器演示例子* </p>** @author gblfy* @since 2019-07-12*/
public class MysqlGenerator {/*************************************ORACLE代码生成  Start *************************************/// 全局配置private final static String OUTPUT_XML_DIR = "/src/main/resources";// 生成xml文件的输出目录private final static String AUTHOR = "gblfy";// 开发人员// 数据源配置private final static String ORACLE_DRIVER_NAME = "oracle.jdbc.driver.OracleDriver";// ORACLE数据库驱动private final static String DATABASE_IP = "xx.x.x.x";// 数据库ipprivate final static String ORACLE_DATABASE_NAME = "h";// 数据库名称private final static String ORACLE_DB_USERNAME = "root";// 数据库用户private final static String ORACLE_DB_PASSWORD = "root";// 数据库口令private final static String ORACLE_DB_PORT = "1521";// ORACLE数据库端口// 包和数据库表配置private final static String MODULE_NAME = "acc";// 父包模块名private final static String PARENT_PACKAGE = "com.gblfy.mybatisplus.generator";// 父包名。如果为空,将下面子包名必须写全部, 否则就只需写子包名private final static String[] TABLE_NAME_LIST = {"USER"};// 父包模块名// 自定义基类private final static String SuperEntity = PARENT_PACKAGE + ".common.BaseEntity";private final static String SuperController = PARENT_PACKAGE + ".common.BaseController";/*** 运行main方法即可* 1.全局配置* 2.数据源配置* 3.包配置策略* 4.策略配置* 5.整合配置*/public static void main(String[] args) {//获取项目本地磁盘路径String projectPath = System.getProperty("user.dir");
/********************************** 全局配置**********************************/// 全局配置GlobalConfig gc = new GlobalConfig();//生成java文件的存放位置gc.setOutputDir(projectPath + "/src/main/java").setAuthor(AUTHOR)//作者署名.setFileOverride(true)//是否文件覆盖.setIdType(IdType.ID_WORKER)//主键策略.setBaseResultMap(true).setBaseColumnList(true)//生成sql片段//.setServiceName("%sService")//设置生成service接口是否首字母是I//是否打开输出目录.setOpen(false);
/********************************** 数据源配置**********************************/DataSourceConfig dsc = new DataSourceConfig();dsc.setDbType(DbType.ORACLE)//设置数据库类型.setUrl("jdbc:oracle:thin:@" + DATABASE_IP + ":" + ORACLE_DB_PORT + ":" + ORACLE_DATABASE_NAME).setDriverName(ORACLE_DRIVER_NAME).setUsername(ORACLE_DB_USERNAME).setPassword(ORACLE_DB_PASSWORD);
/********************************** 包名配置**********************************/// 包配置PackageConfig pc = new PackageConfig();pc.setParent(PARENT_PACKAGE).setModuleName(MODULE_NAME).setController("controller").setService("service").setServiceImpl("service.impl").setMapper("mapper");// 自定义配置InjectionConfig cfg = new InjectionConfig() {@Overridepublic void initMap() {// to do nothing}};List<FileOutConfig> focList = new ArrayList<>();focList.add(new FileOutConfig("/templates/mapper.xml.ftl") {@Overridepublic String outputFile(TableInfo tableInfo) {// 自定义输入文件名称 单模块场景return projectPath + OUTPUT_XML_DIR + "/mapper/" + pc.getModuleName()+ "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;}});cfg.setFileOutConfigList(focList);
/********************************** 策略配置**********************************/// 策略配置StrategyConfig strategy = new StrategyConfig();strategy.setCapitalMode(true)//全局大小写命名.setColumnNaming(NamingStrategy.underline_to_camel)//数据库字段是否下划线转驼峰.setNaming(NamingStrategy.underline_to_camel)//数据库表映射到实体的命名策略.setSuperEntityClass(SuperEntity).setEntityLombokModel(true).setSuperControllerClass(SuperController).setInclude(TABLE_NAME_LIST).setSuperEntityColumns("id").setControllerMappingHyphenStyle(true).setTablePrefix(pc.getModuleName() + "_");// 配置整合 代码生成器AutoGenerator mpg = new AutoGenerator();//配置信息添加至 全局配置容器mpg.setGlobalConfig(gc).setStrategy(strategy).setDataSource(dsc).setPackageInfo(pc).setCfg(cfg).setTemplate(new TemplateConfig().setXml(null)).setTemplateEngine(new FreemarkerTemplateEngine())// 选择 freemarker 引擎需要指定如下加,注意 pom 依赖必须有!.execute();//执行}/*************************************MYSQL代码生成  End *************************************/}

3. 创建全局配置文件

# Mysql数据库
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/mp?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTTusername: rootpassword: root# Logger Config
logging:level:com.gblfy.mybatisplus.generator: debug

4. 启动类加@MapperScan注解

package com.gblfy.mybatisplus.generator;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@MapperScan("com.gblfy.mybatisplus.generator.emp.mapper")
public class MybatisPlusGeneratorApplication {public static void main(String[] args) {SpringApplication.run(MybatisPlusGeneratorApplication.class, args);}
}

5. 在controller层写个测试方法:

package com.gblfy.mybatisplus.generator.emp.controller;import com.gblfy.mybatisplus.generator.common.BaseController;
import com.gblfy.mybatisplus.generator.emp.entity.TblEmployee;
import com.gblfy.mybatisplus.generator.emp.service.ITblEmployeeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import java.util.List;/*** <p>* 前端控制器* </p>** @author gblfy* @since 2019-07-13*/
@Controller
@RequestMapping("/emp/tbl-employee")
public class TblEmployeeController extends BaseController {@Autowiredprivate ITblEmployeeService employeeService;@RequestMapping("")@ResponseBodypublic List<TblEmployee> list() {List<TblEmployee> list = employeeService.list();return list;}
}

6. 浏览器验证

http://localhost:8080/emp/tbl-employee
在这里插入图片描述

7. 多模块适配Mybatisplus代码生成 之SpringBoot适配MYSQL和ORACLE

多模块适配只是目录有所他调整而已

package com.baomidou.mybatisplus.samples.generator;import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;/*** <p>* mysql 代码生成器演示例子* </p>** @author jobob* @since 2018-09-12*/
public class MysqlGenerator {// 全局配置private final static String PROJECT_DIR = "/mybatis-plus-sample-generator";// 项目名称private final static String OUTPUT_JAVA_DIR = PROJECT_DIR + "/src/main/java";// 生成java文件的输出目录private final static String OUTPUT_XML_DIR = PROJECT_DIR + "/src/main/resources";// 生成xml文件的输出目录private final static String AUTHOR = "gblfy";// 开发人员// 数据源配置private final static String DRIVER_NAME = "com.mysql.cj.jdbc.Driver";// 数据库驱动private final static String DATABASE_IP = "localhost";// 数据库ipprivate final static String DATABASE_NAME = "mp";// 数据库名称private final static String DB_USERNAME = "root";// 数据库用户private final static String DB_PASSWORD = "root";// 数据库口令// 包配置private final static String PARENT_PACKAGE = "com.baomidou.mybatisplus.samples.generator";// 父包名。如果为空,将下面子包名必须写全部, 否则就只需写子包名private final static String MODULE_NAME = "empl";// 父包模块名private final static String[] TABLE_NAME_LIST = {"tbl_employee", "user"};// 父包模块名// 自定义基类private final static String SuperEntity = PARENT_PACKAGE + ".common.BaseEntity";private final static String SuperController = PARENT_PACKAGE + ".common.BaseController";/*** <p>* 读取控制台内容* </p>*/public static String scanner(String tip) {Scanner scanner = new Scanner(System.in);StringBuilder help = new StringBuilder();help.append("请输入" + tip + ":");System.out.println(help.toString());if (scanner.hasNext()) {String ipt = scanner.next();if (StringUtils.isNotEmpty(ipt)) {return ipt;}}throw new MybatisPlusException("请输入正确的" + tip + "!");}/*** RUN THIS*/public static void main(String[] args) {// 代码生成器AutoGenerator mpg = new AutoGenerator();// 全局配置GlobalConfig gc = new GlobalConfig();String projectPath = System.getProperty("user.dir");System.out.println("projectPath" + projectPath);/***projectPath 代表父工程的本地磁盘位置* /mybatis-plus-sample-generator :子项目位置* 多模块场景* 格式:projectPath+子项目位置** 单模块* 格式:projectPath*/gc.setOutputDir(projectPath + OUTPUT_JAVA_DIR);gc.setAuthor(AUTHOR);gc.setOpen(false);mpg.setGlobalConfig(gc);// 数据源配置DataSourceConfig dsc = new DataSourceConfig();dsc.setUrl("jdbc:mysql://" + DATABASE_IP + ":3306/" + DATABASE_NAME + "?useUnicode=true&useSSL=false&characterEncoding=utf8");dsc.setDriverName(DRIVER_NAME);dsc.setUsername(DB_USERNAME);dsc.setPassword(DB_PASSWORD);mpg.setDataSource(dsc);// 包配置PackageConfig pc = new PackageConfig();
//        pc.setModuleName(scanner("模块名"));pc.setModuleName(MODULE_NAME);pc.setParent(PARENT_PACKAGE);mpg.setPackageInfo(pc);// 自定义配置InjectionConfig cfg = new InjectionConfig() {@Overridepublic void initMap() {// to do nothing}};List<FileOutConfig> focList = new ArrayList<>();focList.add(new FileOutConfig("/templates/mapper.xml.ftl") {@Overridepublic String outputFile(TableInfo tableInfo) {// 自定义输入文件名称return projectPath + OUTPUT_XML_DIR + "/mapper/" + pc.getModuleName()+ "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;}});cfg.setFileOutConfigList(focList);mpg.setCfg(cfg);mpg.setTemplate(new TemplateConfig().setXml(null));// 策略配置StrategyConfig strategy = new StrategyConfig();strategy.setNaming(NamingStrategy.underline_to_camel);strategy.setColumnNaming(NamingStrategy.underline_to_camel);strategy.setSuperEntityClass(SuperEntity);strategy.setEntityLombokModel(true);strategy.setSuperControllerClass(SuperController);
//        strategy.setInclude(new String[]{"tbl_employee", "user"});strategy.setInclude(TABLE_NAME_LIST);strategy.setSuperEntityColumns("id");strategy.setControllerMappingHyphenStyle(true);strategy.setTablePrefix(pc.getModuleName() + "_");mpg.setStrategy(strategy);// 选择 freemarker 引擎需要指定如下加,注意 pom 依赖必须有!mpg.setTemplateEngine(new FreemarkerTemplateEngine());mpg.execute();}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/523565.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

360浏览器网页走丢了_超酷!Win10 正式版全新 UI 界面,全球第二大浏览器上线...

5月10日消息&#xff0c;微软今年首个 Windows 10 正式版将捆绑并换上全新的 Edge 浏览器&#xff0c;目前微软已向预览通道用户推送了 KB4559309 独立更新补丁&#xff0c;该补丁更新后将自动替换旧版 Edge 浏览器。撰文&#xff5c;XL科技说此前微软曾确认今年首个 Windows 1…

MP 启动注入 SQL 原理分析

MP 启动注入 SQL 原理分析 文章目录一、MybatisPlus需要sql语句吗&#xff1f;解答&#xff1a;需要1.1. 问题&#xff1a;为什么MybatisPlus看不到sql语句&#xff1f;1.2. 分析&#xff1a;继承关系1.3. 假设&#xff1a;操作数据库一定有sql二、通过现象看本质2.1. 测试案例…

虚拟化精华问答 | 为什么云计算需要虚拟化?

虚拟化是一种资源管理技术, 是将计算机的各种物理资源, 如服务器、网络、内存及存储等&#xff0c;予以抽象、转换后呈现出来&#xff0c;打破物理设备结构间的不可切割的障碍&#xff0c;使用户可以比原本的架构更好的方式来应用这些资源。这些资源的虚拟部分是不受现有资源的…

c++ raiseexception产生异常_Day17_异常,线程

《Java自学180天笔记》异常分类package demo3;/*java.lang.Throwable:类是Java语言中所有错误或异常的超类。 Exception:编译期异常&#xff0c;进行编译(写代码)java程序出现的问题 RuntimeException&#xff1a;运行期异常&#xff0c;java程序运行过程中出现的问题…

05_SpringCloud整合声明式HTTP客户端-Feign

SpringCloud整合声明式HTTP客户端-Feign 文章目录一、Feign介绍1. 什么是Feign&#xff1f;2. Feign组件&#xff1a;二、基于Feign实现微服务远程调用2.1. 引入feign依赖2.2. 启动类加EnableFeignClients注解2.3. 添加属性配置(暂无)2.4. 创建一个feign接口类2.5. 修改Ribbon调…

Jonathan Bryce说:OpenStack属于全世界,并不属于一个公司,也不会属于一个国家……...

戳蓝字“CSDN云计算”关注我们哦&#xff01;“openstack这个软件是属于全世界的&#xff0c;并不属于一个公司&#xff0c;也不会属于一个国家。”这是OpenStack基金会创始人兼执行总监 Jonathan Bryce在访谈中一再强调的&#xff0c;也是让阿晶到如今依然记忆犹新的一句话。在…

html中给div设置的属性怎么样才能拿得到_前端基础高频面试题(更新中)

页面渲染的全过程输入url后&#xff0c;先拿到html文件&#xff0c;html下载完以后会开始对它进行解析html在解析的过程中&#xff0c;如果文本里有外部资源链接&#xff0c;比如css、js和img时&#xff0c;会立即启用其他线程下载这些静态资源。特殊的是当遇到js文件的时候&am…

怎么去除idea中代码的波浪线(黄色警告线)

windows中安装的idea中找到Preferences然后执行以下操作: 2.mac系统下的idea:为了减少一定量的重复代码&#xff0c;提醒开发人员注意&#xff0c;但是如果有时几行代码的重复没必要扔到一个统一的地方处理&#xff0c;这是总是提醒&#xff0c;干扰视线。这里根据个人习惯&am…

打脸!IEEE突然宣布解除对华为编辑和同行评审活动的限制;AWS 发生故障,因多处光缆被挖断,历经11小时完全修复……...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 消失的台北电脑展&#xff0…

分布式mysql proxy_mysqlda: 基于核心业务对象切分的Proxy模式的分布式MySQL数据库中间件...

mysqlda - MySQL数据库中间件1. 概述1.1. 数据分布式切分方式分布式架构中最难解决的是数据分布式问题&#xff0c;大部分数据库中间件都以分库分表作为切分方式&#xff0c;好处是通用&#xff0c;但也存在以下问题&#xff1a;扩容过程需要以切片为单位在库间移动数据。扩容规…

企业级实战01_ActiveMQ 下载、安装、运行、实战需求

ActiveMQ 下载、安装、运行、实战需求 文章目录一、ActiveMQ简介1. 什么是ActiveMQ&#xff1f;2. ActiveMQ能干什么&#xff1f;3. ActiveMQ特点4. MOM基本功能5. MOM主要特点6. MOM的应用场景_前7. MOM的应用场景_后二、ActiveMQ下载/安装2.1 ActiveMQ下载2.2 ActiveMQ安装环…

刚出炉!AI指数报告:AI人才需求暴涨35倍,薪酬问鼎No.1

2017年~2018年&#xff0c;是人工智能大火的时候。你会发现&#xff0c;跟朋友聊天不谈人工智能&#xff0c;聊天的bigger都上不去。国家支持的朝阳行业&#xff0c;顶级高薪吸引&#xff0c;让甚至许多不是计算机出身的小白&#xff0c;都按捺不住&#xff0c;投身“学海”。而…

企业实战01_Linux下安装ActiveMQ并设置开机启动

文章目录一、MQ常用命令二、防火墙常用命令三、MQ安装3.1. 在root权限下操作&#xff0c;赋予目录权限3.2. 给运行程序赋予可执行权限3.3. 配置环境变量四、MQ添加开机启动4.1. 添加开机启动至初始化目录4.2. 添加MQ内容如下4.3. 将activemq添加至配置文件4.4. 查看服务是否添加…

SDN精华问答 | 使用SDN的一个例子

SDN火热了好一阵子&#xff0c;无论运营商、政府企业、投资机构&#xff0c;一段时间&#xff0c;不知道SDN、不能甩几个SDN相关的名词术语&#xff0c;似乎都落后于时代了。今天&#xff0c;就来看看关于SDN的精华问答吧。1Q&#xff1a;为什么会出现SDN呢&#xff1f; A&…

企业级实战02_SpringMVC整合ActiveMQ 实战需求

SpringMVC整合ActiveMQ 文章目录一、Spring整合ActiveMQ实战1.1. 创建一个父工程&#xff1a;1.2. 引入依赖1.3. 创建一个子项目生产者1.4. 创建一个spring配置文件4. 创建一个点对点的生产者监听5. 创建一个topic的生产者监听四、Spring整合ActiveMQ实战1. 创建一个消费者工程…

苹果WWDC前瞻之iOS 13更新最受关注;微软发布基于区块链的去中心化身份识别系统;小米成立了新集团质量办公室……...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go SpaceX猎鹰9号火箭发射&…

企业级实战03_真实项目实战SpringMVC整合ActiveMQ

创建2个工程&#xff0c;生产者和消费者 测试点对点和广播发送常见类型的消息例如&#xff1a;文本(String)、对象(Object) 文本转Long String text “123”; Long.parseLong(text) 数组转集合 Arrays.toArray(list) 引入依赖 <?xml version"1.0" enco…

新一代私有云来了!看透基于开源生态的产品化

戳蓝字“CSDN云计算”关注我们哦&#xff01;文 | 易捷行云&#xff08;EasyStack&#xff09;创始人 陈喜伦来源 | 开源云中文社区进入云计算大时代&#xff0c;中大客户和产业互联网化是云计算的主战场&#xff0c;获取企业级客户是主旋律。对企业级客户来说以新一代私有云为…

mysql 用户管理表_mysql用户管理

msyql用户定义&#xff1a;使用某个用户 从哪个(些)地址访问我的数据库主机范围单独IP&#xff1a;10.0.0.200一个网段:10.0.0.% --->10.0.0.1-->10.0.0.254一个地址范围&#xff1a;10.0.0.5% ---->50-59用户的功能&#xff1a;1、用来登录mysql数据库2、用来管理数据…

8月有望推出5G套餐,资费或低于4G价格;为专利技术,华为5000万美元收购技术公司;AMD和三星宣布合作……...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 宝宝树孕育APP新增即时交互功…