当前位置: 首页 > news >正文

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.jsonString 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别名

@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);}
}
http://www.lryc.cn/news/121924.html

相关文章:

  • 2023-08-13力扣每日一题
  • 下一代深度学习的思考与若干问题
  • 【Linux】IP协议——网络层
  • 【CSS学习笔记】
  • 2023-arxiv-LLaMA: Open and Efficient Foundation Language Models
  • Ctfshow web入门 XXE 模板注入篇 web373-web378 详细题解 全
  • 小内存嵌入式设备软件的差分升级设计(学习)
  • 小程序具体开发
  • 《TCP IP网络编程》第十六章
  • HTML5 基础标签
  • 二、Qt的安装(Linux系统下安装Qt6过程)
  • Python 中被忽视的核心功能
  • Java+Excel+POI+testNG基于数据驱动做一个简单的接口测试【杭州多测师_王sir】
  • 2023.8.12号论文阅读
  • R语言中的函数24:Combinat:combn(), permn()
  • C++隐式调用和explicit关键字
  • Git 清除所有本地修改
  • 快速获得图像中像素值的小工具
  • yolo数据增强
  • 环保行业如何开发废品回收微信小程序
  • 个人对哈希数据结构学习总结 -- 理论篇
  • 在CMamke生成的VS项目中插入程序
  • 198、仿真-基于51单片机函数波形发生器调幅度频率波形Proteus仿真(程序+Proteus仿真+原理图+流程图+元器件清单+配套资料等)
  • Django 初级指南:创建你的第一个 Django 项目
  • 【MySQL】使用C++连接数据库
  • php代码审计,php漏洞详解
  • uniapp 将标题背景更换背景图片 完美解决(附加源码+实现效果图)
  • 必备工具:Postman Newman 详解
  • OpenCV基本操作——算数操作
  • css实现文字首行缩进的效果