1.配置文件添加paginationInterceptor

  1. @Configuration
  2. @MapperScan("fama.cost.*.mapper")
  3. public class SpringConnectionFactory {
  4. @Bean
  5. public MybatisPlusInterceptor paginationInterceptor() {
  6. MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
  7. interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
  8. return interceptor;
  9. }
  10. }

2.mapper

mapper与正常配置一致

3.编写测试用例

  1. @Test
  2. public void selectPage(){
  3. Page<RdsInstanceType> page = new Page<>(1,2);
  4. IPage<RdsInstanceType> page1 = rdsInstanceTypesMapper.selectPage(page, Wrappers.query());
  5. LOG.info("total : {}",page1.getTotal());
  6. LOG.info("pages : {}",page1.getPages());
  7. page1.getRecords().forEach(rdsInstanceType -> {
  8. LOG.info("instanceType : {}",JsonUtils.toJSONString(rdsInstanceType));
  9. });
  10. }

Dao 层

4.doa层的pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <parent>
  6. <artifactId>fama</artifactId>
  7. <groupId>fama.cost</groupId>
  8. <version>1.0-SNAPSHOT</version>
  9. </parent>
  10. <modelVersion>4.0.0</modelVersion>
  11. <artifactId>fama-dao</artifactId>
  12. <profiles>
  13. <!-- 开发环境 -->
  14. <profile>
  15. <id>dev</id>
  16. <activation>
  17. <activeByDefault>true</activeByDefault>
  18. </activation>
  19. <properties>
  20. <activeEnv>dev</activeEnv>
  21. <mysql.url>jdbc:mysql://192.168.1.1:3358/fama?rewriteBatchedStatements=true&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;tinyInt1isBit=false&amp;useCompression=true&amp;autoReconnect=true&amp;defaultFetchSize=100</mysql.url>
  22. <mysql.user>test</mysql.user>
  23. <mysql.pass>test</mysql.pass>
  24. </properties>
  25. </profile>
  26. <profile>
  27. <id>prod</id>
  28. <properties>
  29. <activeEnv>prod</activeEnv>
  30. <mysql.url>jdbc:mysql://192.168.1.1:3358/fama?rewriteBatchedStatements=true&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;tinyInt1isBit=false&amp;useCompression=true&amp;autoReconnect=true&amp;defaultFetchSize=100</mysql.url>
  31. <mysql.user>test</mysql.user>
  32. <mysql.pass>test</mysql.pass>
  33. </properties>
  34. </profile>
  35. </profiles>
  36. <dependencies>
  37. <dependency>
  38. <groupId>org.springframework.boot</groupId>
  39. <artifactId>spring-boot-starter-test</artifactId>
  40. <scope>test</scope>
  41. <exclusions>
  42. <exclusion>
  43. <groupId>org.ow2.asm</groupId>
  44. <artifactId>asm</artifactId>
  45. </exclusion>
  46. <exclusion>
  47. <groupId>org.springframework.boot</groupId>
  48. <artifactId>spring-boot</artifactId>
  49. </exclusion>
  50. <exclusion>
  51. <groupId>org.springframework.boot</groupId>
  52. <artifactId>spring-boot-autoconfigure</artifactId>
  53. </exclusion>
  54. <exclusion>
  55. <artifactId>log4j-api</artifactId>
  56. <groupId>org.apache.logging.log4j</groupId>
  57. </exclusion>
  58. <exclusion>
  59. <groupId>org.springframework.boot</groupId>
  60. <artifactId>spring-boot-starter-tomcat</artifactId>
  61. </exclusion>
  62. <exclusion>
  63. <groupId>org.apache.logging.log4j</groupId>
  64. <artifactId>log4j-to-slf4j</artifactId>
  65. </exclusion>
  66. </exclusions>
  67. </dependency>
  68. <dependency>
  69. <groupId>mysql</groupId>
  70. <artifactId>mysql-connector-java</artifactId>
  71. </dependency>
  72. <dependency>
  73. <groupId>com.baomidou</groupId>
  74. <artifactId>mybatis-plus</artifactId>
  75. </dependency>
  76. <dependency>
  77. <groupId>com.baomidou</groupId>
  78. <artifactId>mybatis-plus-boot-starter</artifactId>
  79. <exclusions>
  80. <exclusion>
  81. <groupId>org.apache.logging.log4j</groupId>
  82. <artifactId>log4j-to-slf4j</artifactId>
  83. </exclusion>
  84. </exclusions>
  85. </dependency>
  86. <dependency>
  87. <groupId>fama.cost</groupId>
  88. <artifactId>fama-common</artifactId>
  89. <version>${project.version}</version>
  90. </dependency>
  91. <dependency>
  92. <groupId>ch.qos.logback</groupId>
  93. <artifactId>logback-classic</artifactId>
  94. </dependency>
  95. </dependencies>
  96. <build>
  97. <plugins>
  98. <!-- <plugin>-->
  99. <!-- <groupId>org.springframework.boot</groupId>-->
  100. <!-- <artifactId>spring-boot-maven-plugin</artifactId>-->
  101. <!-- <configuration>-->
  102. <!-- <mainClass>sigma.resource.sync.SigmaApplication</mainClass>-->
  103. <!-- <layout>JAR</layout>-->
  104. <!-- </configuration>-->
  105. <!-- <executions>-->
  106. <!-- <execution>-->
  107. <!-- <goals>-->
  108. <!-- <goal>repackage</goal>-->
  109. <!-- </goals>-->
  110. <!-- </execution>-->
  111. <!-- </executions>-->
  112. <!-- </plugin>-->
  113. <plugin>
  114. <groupId>org.apache.maven.plugins</groupId>
  115. <artifactId>maven-compiler-plugin</artifactId>
  116. <configuration>
  117. <source>1.8</source>
  118. <target>1.8</target>
  119. </configuration>
  120. </plugin>
  121. <plugin>
  122. <groupId>org.apache.maven.plugins</groupId>
  123. <artifactId>maven-resources-plugin</artifactId>
  124. <version>3.0.2</version>
  125. <configuration>
  126. <useDefaultDelimiters>true</useDefaultDelimiters><!-- 这是重点-->
  127. </configuration>
  128. <executions>
  129. <execution>
  130. <id>copy-fatjar</id>
  131. <phase>install</phase>
  132. <goals>
  133. <goal>copy-resources</goal>
  134. </goals>
  135. <configuration>
  136. <outputDirectory>${project.build.directory}/build</outputDirectory>
  137. <resources>
  138. <resource>
  139. <directory>${project.build.directory}</directory>
  140. <include>${project.build.finalName}.${project.packaging}</include>
  141. </resource>
  142. </resources>
  143. </configuration>
  144. </execution>
  145. <execution>
  146. <id>copy resource</id>
  147. <phase>process-resources</phase>
  148. <goals>
  149. <goal>copy-resources</goal>
  150. </goals>
  151. <configuration>
  152. <outputDirectory>${basedir}/target/classes</outputDirectory>
  153. <overwrite>true</overwrite>
  154. <resources>
  155. <resource>
  156. <directory>${basedir}/src/main</directory>
  157. <includes>
  158. <include>*</include>
  159. </includes>
  160. </resource>
  161. </resources>
  162. </configuration>
  163. </execution>
  164. </executions>
  165. </plugin>
  166. <plugin>
  167. <artifactId>maven-clean-plugin</artifactId>
  168. <configuration>
  169. <filesets>
  170. <fileset>
  171. <directory>src/main/resources/public</directory>
  172. </fileset>
  173. </filesets>
  174. </configuration>
  175. </plugin>
  176. </plugins>
  177. <resources>
  178. <resource>
  179. <directory>${project.basedir}/src/main/resources</directory>
  180. <filtering>true</filtering>
  181. </resource>
  182. </resources>
  183. </build>
  184. </project>

5.datasource.properties

  1. spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  2. spring.datasource.url=@mysql.url@
  3. spring.datasource.username=@mysql.user@
  4. spring.datasource.password=@mysql.pass@
  5. spring.datasource.validationQuery=SELECT 1
  6. spring.datasource.idle.timeout=180000
  7. spring.datasource.maximumPoolSize=10
  8. spring.datasource.defaultAutoCommit=true
  9. spring.datasource.maxLifetime=1800000
  10. spring.datasource.connectionTimeout=30000

6.mapper目录是fama.cost.dao.mapper,在resource目录下,xml文件

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
  3. <mapper namespace="fama.cost.dao.mapper.CommandMapper">
  4. </mapper>

7.dao层里的工厂

  1. package fama.cost.dao.datasource;
  2. import com.baomidou.mybatisplus.annotation.DbType;
  3. import com.baomidou.mybatisplus.annotation.IdType;
  4. import com.baomidou.mybatisplus.core.MybatisConfiguration;
  5. import com.baomidou.mybatisplus.core.config.GlobalConfig;
  6. import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
  7. import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
  8. import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
  9. import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
  10. import com.zaxxer.hikari.HikariDataSource;
  11. import fama.cost.common.utils.Constants;
  12. import fama.cost.dao.utils.PropertyUtils;
  13. import org.apache.ibatis.logging.stdout.StdOutImpl;
  14. import org.apache.ibatis.mapping.DatabaseIdProvider;
  15. import org.apache.ibatis.mapping.VendorDatabaseIdProvider;
  16. import org.apache.ibatis.session.SqlSession;
  17. import org.apache.ibatis.session.SqlSessionFactory;
  18. import org.apache.ibatis.type.JdbcType;
  19. import org.mybatis.spring.SqlSessionTemplate;
  20. import org.mybatis.spring.annotation.MapperScan;
  21. import org.slf4j.Logger;
  22. import org.slf4j.LoggerFactory;
  23. import org.springframework.context.annotation.Bean;
  24. import org.springframework.context.annotation.Configuration;
  25. import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
  26. import org.springframework.core.io.support.ResourcePatternResolver;
  27. import org.springframework.jdbc.datasource.DataSourceTransactionManager;
  28. import java.util.Properties;
  29. @Configuration
  30. @MapperScan("fama.cost.*.mapper")
  31. public class SpringConnectionFactory {
  32. private static final Logger logger = LoggerFactory.getLogger(SpringConnectionFactory.class);
  33. @Bean
  34. public MybatisPlusInterceptor paginationInterceptor() {
  35. MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
  36. interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
  37. return interceptor;
  38. }
  39. @Bean(destroyMethod="")
  40. public HikariDataSource dataSource() {
  41. HikariDataSource hikariDataSource = new HikariDataSource();
  42. hikariDataSource.setDriverClassName(PropertyUtils.getString(Constants.SPRING_DATASOURCE_DRIVER_CLASS_NAME));
  43. hikariDataSource.setJdbcUrl(PropertyUtils.getString(Constants.SPRING_DATASOURCE_URL));
  44. hikariDataSource.setUsername(PropertyUtils.getString(Constants.SPRING_DATASOURCE_USERNAME));
  45. hikariDataSource.setPassword(PropertyUtils.getString(Constants.SPRING_DATASOURCE_PASSWORD));
  46. hikariDataSource.setConnectionTestQuery(PropertyUtils.getString(Constants.SPRING_DATASOURCE_VALIDATION_QUERY,"SELECT 1"));
  47. hikariDataSource.setConnectionTimeout(PropertyUtils.getLong(Constants.SPRING_DATASOURCE_CONNECTION_TIMEOUT,30000));
  48. hikariDataSource.setMaximumPoolSize(PropertyUtils.getInt(Constants.SPRING_DATASOURCE_MAX_POOL_SIZE, 10));
  49. hikariDataSource.setIdleTimeout(PropertyUtils.getLong(Constants.SPRING_DATASOURCE_IDLE_TIMEOUT,180000));
  50. hikariDataSource.setAutoCommit(PropertyUtils.getBoolean(Constants.SPRING_DATASOURCE_DEFAULT_AUTO_COMMIT,true));
  51. hikariDataSource.setMaxLifetime(PropertyUtils.getLong(Constants.SPRING_DATASOURCE_MAX_LIFE_TIME,1800000));
  52. return hikariDataSource;
  53. }
  54. @Bean
  55. public DataSourceTransactionManager transactionManager() {
  56. return new DataSourceTransactionManager(dataSource());
  57. }
  58. @Bean
  59. public SqlSessionFactory sqlSessionFactory() throws Exception {
  60. MybatisConfiguration configuration = new MybatisConfiguration();
  61. // configuration.setLogImpl(StdOutImpl.class);
  62. configuration.setMapUnderscoreToCamelCase(true);
  63. configuration.setCacheEnabled(false);
  64. configuration.setCallSettersOnNulls(true);
  65. configuration.setJdbcTypeForNull(JdbcType.NULL);
  66. configuration.addInterceptor(paginationInterceptor());
  67. MybatisSqlSessionFactoryBean sqlSessionFactoryBean = new MybatisSqlSessionFactoryBean();
  68. sqlSessionFactoryBean.setConfiguration(configuration);
  69. sqlSessionFactoryBean.setDataSource(dataSource());
  70. GlobalConfig.DbConfig dbConfig = new GlobalConfig.DbConfig();
  71. dbConfig.setIdType(IdType.AUTO);
  72. GlobalConfig globalConfig = new GlobalConfig();
  73. globalConfig.setDbConfig(dbConfig);
  74. sqlSessionFactoryBean.setGlobalConfig(globalConfig);
  75. sqlSessionFactoryBean.setTypeAliasesPackage("fama.cost.dao.entity");
  76. ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
  77. sqlSessionFactoryBean.setMapperLocations(resolver.getResources("fama/cost/dao/mapper/*Mapper.xml"));
  78. // sqlSessionFactoryBean.setTypeEnumsPackage("fama.cost.*.fama.cost.api.enums");
  79. sqlSessionFactoryBean.setTypeEnumsPackage("fama.cost.*.enums");
  80. sqlSessionFactoryBean.setDatabaseIdProvider(databaseIdProvider());
  81. return sqlSessionFactoryBean.getObject();
  82. }
  83. @Bean
  84. public SqlSession sqlSession() throws Exception{
  85. return new SqlSessionTemplate(sqlSessionFactory());
  86. }
  87. @Bean
  88. public DatabaseIdProvider databaseIdProvider(){
  89. DatabaseIdProvider databaseIdProvider = new VendorDatabaseIdProvider();
  90. Properties properties = new Properties();
  91. properties.setProperty("MySQL", "mysql");
  92. databaseIdProvider.setProperties(properties);
  93. return databaseIdProvider;
  94. }
  95. }

8.entity 放db的实体类

  1. package fama.cost.dao.entity;
  2. import com.baomidou.mybatisplus.annotation.IdType;
  3. import com.baomidou.mybatisplus.annotation.TableId;
  4. import com.baomidou.mybatisplus.annotation.TableName;
  5. import fama.cost.common.enums.CommandType;
  6. import java.util.Date;
  7. @TableName(value = "fama_command")
  8. public class Command {
  9. @TableId(value = "id", type = IdType.AUTO)
  10. private Long id;
  11. private long orderId;
  12. private String commandParam;
  13. private Date applyTime;
  14. private Date scheduleTime;
  15. private String applyUser;
  16. private CommandType commandType;
  17. public long getOrderId() {
  18. return orderId;
  19. }
  20. public void setOrderId(long orderId) {
  21. this.orderId = orderId;
  22. }
  23. public String getCommandParam() {
  24. return commandParam;
  25. }
  26. public void setCommandParam(String commandParam) {
  27. this.commandParam = commandParam;
  28. }
  29. public Date getApplyTime() {
  30. return applyTime;
  31. }
  32. public void setApplyTime(Date applyTime) {
  33. this.applyTime = applyTime;
  34. }
  35. public Date getScheduleTime() {
  36. return scheduleTime;
  37. }
  38. public void setScheduleTime(Date scheduleTime) {
  39. this.scheduleTime = scheduleTime;
  40. }
  41. public String getApplyUser() {
  42. return applyUser;
  43. }
  44. public void setApplyUser(String applyUser) {
  45. this.applyUser = applyUser;
  46. }
  47. public Long getId() {
  48. return id;
  49. }
  50. public void setId(Long id) {
  51. this.id = id;
  52. }
  53. public CommandType getCommandType() {
  54. return commandType;
  55. }
  56. public void setCommandType(CommandType commandType) {
  57. this.commandType = commandType;
  58. }
  59. }

9.mapper目录就是放interface接口的

  1. package fama.cost.dao.mapper;
  2. import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  3. import fama.cost.dao.entity.Command;
  4. public interface CommandMapper extends BaseMapper<Command> {
  5. }

10.utils里放BeanContext工具类及PropertyUtils工具类,用于加载datasoure.properties

BeanContext.java

  1. package fama.cost.dao.utils;
  2. import org.springframework.beans.BeansException;
  3. import org.springframework.context.ApplicationContext;
  4. import org.springframework.context.ApplicationContextAware;
  5. import org.springframework.stereotype.Component;
  6. @Component
  7. public class BeanContext implements ApplicationContextAware {
  8. private static ApplicationContext applicationContext;
  9. public static ApplicationContext getApplicationContext() {
  10. return applicationContext;
  11. }
  12. @SuppressWarnings("unchecked")
  13. public static <T> T getBean(String name) throws BeansException {
  14. return (T) applicationContext.getBean(name);
  15. }
  16. public static <T> T getBean(Class<T> clazz) throws BeansException {
  17. return applicationContext.getBean(clazz);
  18. }
  19. @Override
  20. public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
  21. BeanContext.applicationContext = applicationContext;
  22. }
  23. }

PropertyUtils.java

  1. package fama.cost.dao.utils;
  2. import fama.cost.common.utils.Constants;
  3. import fama.cost.common.utils.IOUtils;
  4. import org.slf4j.Logger;
  5. import org.slf4j.LoggerFactory;
  6. import java.io.IOException;
  7. import java.io.InputStream;
  8. import java.util.Properties;
  9. public class PropertyUtils {
  10. private static final Logger logger = LoggerFactory.getLogger(PropertyUtils.class);
  11. private static final Properties properties = new Properties();
  12. private static final PropertyUtils propertyUtils = new PropertyUtils();
  13. private PropertyUtils(){
  14. init();
  15. }
  16. private void init(){
  17. String[] propertyFiles = new String[]{Constants.DATASOURCE_PROPERTIES};
  18. for (String fileName : propertyFiles) {
  19. InputStream fis = null;
  20. try {
  21. fis = PropertyUtils.class.getResourceAsStream(fileName);
  22. properties.load(fis);
  23. } catch (IOException e) {
  24. logger.error(e.getMessage(), e);
  25. if (fis != null) {
  26. IOUtils.closeQuietly(fis);
  27. }
  28. System.exit(1);
  29. } finally {
  30. IOUtils.closeQuietly(fis);
  31. }
  32. }
  33. }
  34. public static String getString(String key) {
  35. return properties.getProperty(key);
  36. }
  37. public static String getString(String key, String defaultVal) {
  38. String val = properties.getProperty(key.trim());
  39. return val == null ? defaultVal : val;
  40. }
  41. public static int getInt(String key) {
  42. return getInt(key, -1);
  43. }
  44. public static int getInt(String key, int defaultValue) {
  45. String value = getString(key);
  46. if (value == null) {
  47. return defaultValue;
  48. }
  49. try {
  50. return Integer.parseInt(value);
  51. } catch (NumberFormatException e) {
  52. logger.info(e.getMessage(),e);
  53. }
  54. return defaultValue;
  55. }
  56. public static Boolean getBoolean(String key) {
  57. String value = properties.getProperty(key.trim());
  58. if(null != value){
  59. return Boolean.parseBoolean(value);
  60. }
  61. return false;
  62. }
  63. public static Boolean getBoolean(String key, boolean defaultValue) {
  64. String value = properties.getProperty(key.trim());
  65. if(null != value){
  66. return Boolean.parseBoolean(value);
  67. }
  68. return defaultValue;
  69. }
  70. public static long getLong(String key, long defaultVal) {
  71. String val = getString(key);
  72. return val == null ? defaultVal : Long.parseLong(val);
  73. }
  74. }

mybatis-plus 分页查询+ dao层抽象的更多相关文章

  1. mybatis中分页查询

    1 如果在查询方法中有多个参数,可以使用map对象将所有数据都存储进去.比如分页查询,需要用到两个参数,可以将这两个参数包装到map中. 例子:分页查询 dao层方法 public List<S ...

  2. SSM框架之Mybatis(3)dao层开发

    Mybatis(3)dao层开发 以实现类完成CRUD操作 1.持久层dao层接口的书写 src\main\java\dao\IUserDao.java package dao; import dom ...

  3. Mybatis包分页查询java公共类

    Mybatis包分页查询java公共类   分页----对于数据量非常大的查询中.是不可缺少的. mybatis底层的分页sql语句因为须要我们自己去手动写.而实现分页显示的时候我们须要依据分页查询条 ...

  4. mybatis之分页查询

    1)StudentDao.java /** * 持久层*/ public class StudentDao { /** * 增加学生 */ public void add(Student studen ...

  5. mybatis mapper接口开发dao层

    本文将探讨使用 mapper接口,以及 pojo 包装类进行 dao 层基本开发 mybatis dao 层开发只写 mapper 接口 其中需要 开发的接口实现一些开发规范 1. UserMappe ...

  6. (二)Mybatis总结之通过Dao层与数据交互

    Mybatis概述 定义: Mybatis是一个支持普通sql查询,存储过程和高级映射的优秀持久层框架. Mybatis是(半自动的)跟数据库打交道的orm(object relationship m ...

  7. SpringBoot整合Mybatis关于分页查询的方法

    最近公司在用到SpringBoot整合Mybatis时当web端页面数据增多时需要使用分页查询以方便来展示数据.本人对分页查询进行了一些步骤的总结,希望能够帮助到有需要的博友.如有更好的方式,也希望评 ...

  8. springmvc+mybatis 实现分页查询

    为简化分页功能,设计了一个分页的JSP标签,只需要在页面使用分页标签,就可以完成所有页面的分页功能. 1. 项目结构和数据库设计 (1) 项目结构: (2) 数据库设计 2. PageModel.ja ...

  9. spring-boot 集合mybatis 的分页查询

    spring-boot 集合mybatis 的github分页查询 一.依赖包 <!-- mysql 数据库驱动. --> <dependency> <groupId&g ...

随机推荐

  1. OO第一单元总结——求导

    一.基于度量分析程序结构 (一)第一次作业 (1)设计思路 本次作业只涉及到简单幂函数通过加减运算而复合而成的函数,因此笔者自然的把函数分成了函数本体以及单个的项两个部分,在笔者的设计中两个类的功能如 ...

  2. 【Springboot】FastJson与Jackson全局序列化方式的配置和相关工具类

    springboot 版本: <parent> <groupId>org.springframework.boot</groupId> <artifactId ...

  3. 【原创】Centos8安装ansible

    1.安装步骤 # 安装epel扩展源 dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rp ...

  4. hdu5014 构造b数列使得t最大(小想法)

    题意:      给你一个序列a,他有n+1个数,每个数的范围是ai >= 0 && a[i] <= n,同时任意两个数字都是不相同的,就是ai != aj (i!=j), ...

  5. 在kubernetes上运行WASM负载

    在kubernetes上运行WASM负载 WASM一般用在前端业务中,但目前有扩展到后端服务的趋势.本文使用Krustlet 将WASM服务部署到kubernetes. 简介 Krustlet 是一个 ...

  6. 【Git】3. Git重要特性-分支操作,合并冲突详解

    一.分支介绍 在版本控制过程当中,有时候需要同时推进多个任务,这样的话,就可以给每个任务创建单独的分支. 有了分支之后,对应的开发人员就可以把自己的工作从主线上分离出来,在做自己分支开发的时候,不会影 ...

  7. CentOS安装Redis报错[server.o] Error 1

    原因 准备安装的Redis服务版本为6.0.8, gcc的版本为4.8.5,可能是gcc版本过低到导致的 解决办法 安装低版本Redis或者安装高版本gcc

  8. 【Azure 环境】基于Azure搭建企业级内部站点, 配置私有域名访问的详细教程 (含演示动画)

    前言 在Azure中,可以通过App Service快速部署,构建自定义站点(PaaS服务).默认情况下,这些站点被访问URL都是面向公网,通过公网进行解析.为了最好的安全保障,是否可以有一种功能实现 ...

  9. 基于Mysql的编程语言(实验六、七)

    本文参考1:MYSQL对sql的拓展 本文参考2:MySQL编程基础 本文参考3:MySql数据库编程 (侵删) 一.变量的定义 1.用户变量 set @变量名=表达式: 说明:无提前进行定义,直接用 ...

  10. C++ primer plus读书笔记——第13章 类继承

    第13章 类继承 1. 如果购买厂商的C库,除非厂商提供库函数的源代码,否则您将无法根据自己的需求,对函数进行扩展或修改.但如果是类库,只要其提供了类方法的头文件和编译后的代码,仍可以使用库中的类派生 ...