Java项目初始化ES、MYSQL表结构及表数据

这篇具有很好参考价值的文章主要介绍了Java项目初始化ES、MYSQL表结构及表数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 一、初始化MYSQL数据

public boolean initMysql() throws Exception {
    log.info("initMysql.start");
    //获取所连接的数据库名称
  
    String database = systemMapper.getDatabase();
    if (StringUtils.isBlank(database)) {
        throw new BusinessException("连接数据库失败,数据库不存在");
    }
    //当库中没有表、则执行sql脚本
    if (systemMapper.countTable(database) == 0) {
        SqlSession sqlSession = sqlSessionFactory.openSession();
        Connection conn = sqlSession.getConnection();
        String mysqlInitPath="config/mysql/init.sql";
        ClassPathResource rc = new ClassPathResource(mysqlInitPath);
        EncodedResource er = new EncodedResource(rc, "utf-8");
        ScriptUtils.executeSqlScript(conn, er);
        log.info("initMysql.db:" + database + ".end");
    }
    log.info("initMysql.end");
    return true;
}

其中SystemMapper为

@Mapper
public interface SystemMapper {
    //获得当前数据库表的数量
    @Select("select count(*) from information_schema.TABLES where TABLE_SCHEMA= #{schema}")
    int countTable(@Param("schema")String schema);
    //===获得当前连接的数据库名称
    @Select("select database()")
    String getDatabase();
}

二、初始化ES数据

public boolean initEs() throws Exception {
    log.info("initEs.start");
   
     // 读取配置
    String artInfoMappingPath =config/es/art_info_index_mapping.json

    String artInfoMapping = ResourceUtil.readStr(artInfoMappingPath,        StandardCharsets.UTF_8);
 
     // 创建博文索引
     String esIndex="wechat"
     createIndexIfNotExist(esIndex, artInfoMapping);

     // 创建别名
     String alias="art_info";
     addAlias(alias, esIndex); 
     return true;
}

 如果索引不存在就创建es索引

    private void createIndexIfNotExist(String index, String mapping) {
        // 判断索引存不存在
        if (StrUtil.isBlank(index) || esAggregateService.indexExist(index)) {
            return;
        }
        log.info("initEs --> index: {}", index);
        // 创建索引
        CreateIndexRequest request = new CreateIndexRequest(index);
        Settings.Builder settings = Settings.builder()
                .put("max_result_window", 100000);
        request.settings(settings);
        request.mapping(mapping, XContentType.JSON);
        createIndex(request);
        }

 

public void createIndex(CreateIndexRequest request) {
    try {
        CreateIndexResponse response = elasticSearchClient.indices().create(request, RequestOptions.DEFAULT);
        log.info("create index: {}, isAcknowledged: {}", response.index(), response.isAcknowledged());
    } catch (IOException e) {
        log.error("ES 索引创建失败 --> ", e);
        throw new BusinessException(ResultCode.INTERNAL_SERVER_ERROR);
    }
}

 根据需要、添加es别名文章来源地址https://www.toymoban.com/news/detail-653921.html

@Override
public void addAlias(String alias, String... index) {
    // 构建请求参数
    IndicesAliasesRequest indicesAliasesRequest = new IndicesAliasesRequest();
    IndicesAliasesRequest.AliasActions aliasActions = new IndicesAliasesRequest.AliasActions(IndicesAliasesRequest.AliasActions.Type.ADD)
            .indices(index)
            .alias(alias);
    indicesAliasesRequest.addAliasAction(aliasActions);
    try {
        AcknowledgedResponse response = elasticSearchClient.indices().updateAliases(indicesAliasesRequest, RequestOptions.DEFAULT);
        log.info("add alias --> index: {}, alias: {}, isAcknowledged: {}", index, alias, response.isAcknowledged());
    } catch (IOException e) {
        log.error("ES 别名创建失败 --> ", e);
        throw new BusinessException(ResultCode.INTERNAL_SERVER_ERROR);
    }
}

到了这里,关于Java项目初始化ES、MYSQL表结构及表数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++结构体初始化方法

    在 C++ 里可以将结构体看作没有任何成员函数的对象,下面对 C++ 结构体的几种初始化方法进行总结。 如果只是想全部初始化为 0 可以按照如下方法 结构体包含数组(数组在结构体变量定义完就初始化为0) 直接赋值的方法虽然很直观,但是如果需要初始化多个结构体变量,

    2024年02月16日
    浏览(50)
  • MYSQL的初始化

    #一 MYSQL安装后 应该进行初始化 ##首先配置好环境变量 在 此电脑 中的 属性 配置信息如下 ## 初始化MYSQL 在mysql的根目录中创建一个my.ini的文档 my.ini的文本内容如下(直接复制即可) [mysql] default-character-set=utf8 [mysqld] character-set-server=utf8 default-storage-engine=INNODB #二、配置Data ##用

    2024年02月12日
    浏览(51)
  • 第九节 初始化项目

    目录 系列文章目录 前言 操作方法 总结 初始化项目,导入默认reset.scss 、variables.scss及mixins.scss等并修改main.js引入样式 将默认样式表文件导入到项目。样式文件已经放到资源里请自行下载(

    2024年01月20日
    浏览(45)
  • Spring初始化项目

    访问地址:https://start.spring.io idea配置:https://start.spring.io 访问地址:https://start.aliyun.com/bootstrap.html idea配置:https://start.aliyun.com 官网 阿里巴巴 版本 最新 稍旧 国内软件 大部分没有(mybatis plus) 有的支持(如:mybatis plus)

    2024年02月09日
    浏览(47)
  • 外卖项目初始化01

    项目的搭建 创建项目 仓库(把代码上传上去,切换个人分支) 工程化scss reset.scss main.scss [统一的出口] common.scss [公共的样式] vant.scss [覆盖vant的样式] var.scss 【变量的文件, 新 】 css3 的变量 一键切换皮肤 【了解一下】 mixin.scss 屏幕适配 【 新 】 px 转换成 vw axios的配置(

    2024年02月09日
    浏览(48)
  • git初始化项目上传

    步骤1:创建远程仓库 平台上建好项目,并copy远程仓库的URL 步骤2:初始化本地Git 首先,进入您本地的项目根目录下,然后,打开命令行界面,导航到该目录并执行以下命令: 执行完之后我们可以看到根目录下会多出一个.git文件。 如果是java项目可以在这个项目根目录下加个

    2024年02月10日
    浏览(59)
  • C语言结构体的初始化方式

    逐个初始化字段 :这是最直接的方式,你可以逐个为结构体的每个字段进行初始化。 2.使用结构体字面值初始化 :这种方式允许你在初始化时使用一个字面值来为结构体提供初始值 3. 全局初始化 :在全局范围内,你可以在变量声明时就进行初始化。 4. 使用  memset  函数 :

    2024年02月09日
    浏览(57)
  • Vue初始化项目加载逻辑

    项目创建 我们只需要创建项目即可,剩余的依赖都没必要安装 我们先来看main.js,咱们加了一行备注 通过备注可知,我们首先加载的是App.vue 我们再来看一下App.vue 里都有啥 也就是下面这个红框里的内容才是 那下面的内容是哪里来的呢 那就需要看一下路由设置了 我们看到/目

    2024年02月08日
    浏览(104)
  • 多级缓存架构(一)项目初始化

    克隆此项目到本地 https://github.com/Xiamu-ssr/MultiCache 来到 start 目录下,分别有以下文件夹 docker :docker相关文件 item-service :springboot项目 在 docker/docker-compose.yml 中已经定义好如下 mysql 块 my.cnf 如下 运行以下命令启动 docker-compose 之后使用数据库连接工具连接 mysql 容器,创建 he

    2024年02月02日
    浏览(63)
  • 数据结构与算法——顺序表(顺序存储结构)及初始化详解

    顺序表 ,全名 顺序存储结构 ,是线性表的一种。通过《什么是线性表》一节的学习我们知道,线性表用于存储逻辑关系为“一对一”的数据,顺序表自然也不例外。 不仅如此,顺序表对数据的物理存储结构也有要求。 顺序表存储数据时,会提前申请一整块足够大小的物理

    2024年02月16日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包