Spring boot中怎么实现Nosql功能
发表于:2025-01-27 作者:千家信息网编辑
千家信息网最后更新 2025年01月27日,这篇文章给大家介绍Spring boot中怎么实现Nosql功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。步骤1:检查X插件是否安装如果想要mysql支持文档型存储,需要my
千家信息网最后更新 2025年01月27日Spring boot中怎么实现Nosql功能
这篇文章给大家介绍Spring boot中怎么实现Nosql功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
步骤1:检查X插件是否安装
如果想要mysql支持文档型存储,需要mysql预先安装好X插件,登录mysql,然后,运行如下命令,即可:
SHOW plugins;
看到如下效果即可:
看到mysqlx插件是激活状态,表明现在mysql支持文档方式存储,即mysql支持nosql。
步骤2:添加依赖库
implementation "mysql:mysql-connector-java" implementation "com.google.protobuf:protobuf-java"
步骤3:添加Spring配置
-- 创建数据库里面的SCHEMAcreate schema xxxx_db character set utf8;-- 配置用户权限grant all privileges on xxxx_db.* to 'xxxx'@'localhost';
application.properties
mysqlx.datasource.url=mysqlx://localhost:33060/xxxx_db?user=xxxx&password=xxxxxmysqlx.datasource.schema=xxxx_db_sch
注意:这里的密码,如果有特殊的字符,需要使用百分号编码的方式。
Mysqlx.java
package com.xxx.properties;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;@Data@NoArgsConstructor@AllArgsConstructorpublic class Mysqlx { private String url; private String schema;}
MysqlxConfig.java
package com.xxx.config;import com.xxx.properties.Mysqlx;import com.mysql.cj.xdevapi.Schema;import com.mysql.cj.xdevapi.Session;import com.mysql.cj.xdevapi.SessionFactory;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.DependsOn;@Configurationpublic class MysqlxConfig { @Bean("mysqlx") @ConfigurationProperties(prefix = "mysqlx.datasource") public Mysqlx mysqlx() { return new Mysqlx(); } @Bean("sessionFactory") public SessionFactory sessionFactory() { return new SessionFactory(); }}
步骤3:DAO层调用xdevapi
FormLogRepositoryImpl.java
package com.xxx.dao;import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.databind.ObjectMapper;import com.xxx.model.FormLog;import com.xxx.model.exception.HandleException;import com.mysql.cj.xdevapi.Schema;import org.springframework.stereotype.Repository;import javax.annotation.Resource;import java.io.IOException;import java.util.List;import java.util.Optional;import java.util.stream.Collectors;@Repositorypublic class FormLogRepositoryImpl implements FormLogRepository { private static final String name = "logs"; @Resource private Mysqlx mysqlx; @Resource private SessionFactory sessionFactory; @Resource private ObjectMapper jacksonObjectMapper; @Override public FormLog save(FormLog formLog) { Session session = sessionFactory.getSession(mysqlx.getUrl()); try { session.createSchema(mysqlx.getSchema(), true) .createCollection(name, true) .add(jacksonObjectMapper.writeValueAsString(formLog)) .executeAsync(); } catch (JsonProcessingException e) { e.printStackTrace(); } finally { if (session != null) { session.commit(); session.close(); } } return formLog; } @Override public Optionalfind(String id) { Session session = sessionFactory.getSession(mysqlx.getUrl()); try { return sessionFactory.getSession(mysqlx.getUrl()).createSchema(mysqlx.getSchema(), true).createCollection(name, true).find(String.format("$._id='%s'", id)).execute() .fetchAll().stream() .map( dbDoc -> { try { return jacksonObjectMapper.readValue(dbDoc.toString(), FormLog.class); } catch (IOException e) { throw new HandleException( String.format("读取日志对象异常,内容为:\n%s", dbDoc.toFormattedString())); } }) .findFirst(); } finally { if (session != null) { session.commit(); session.close(); } } }}
关于Spring boot中怎么实现Nosql功能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
步骤
内容
插件
支持
功能
文档
方式
更多
存储
帮助
配置
不错
特殊
兴趣
命令
字符
密码
对象
小伙
小伙伴
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
在数据库中怎么建立表
交易系统 数据库
web连接不到数据库
方舟进化生存服务器出现英文字母
电子发票 服务器
redis基本数据库类型
电脑软件开发学啥语言
oracle 练习数据库
2013中标达梦数据库 中标
呼市网络安全周
title 网络安全
新三板网络安全龙头
微星msi无法连接服务器
软件开发测试用例范例
货物运输代理服务器
公司网络安全应急处置措施
自主可控服务器的应用
网络安全知识展板
万方文献数据库优缺点
安全删除数据库
方舟手游服务器管理密码分享
威扣服务器
软件开发毕业做软件测试
智慧软件开发关键因素
服务器后面的网口是干什么用的
数据库技术初级培训教程
天津网络安全通报中心
福建智能软件开发性价比
如何查询pg数据库实例名
思科怎么看vtp连那个服务器