Spring boot中怎么实现Nosql功能
发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,这篇文章给大家介绍Spring boot中怎么实现Nosql功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。步骤1:检查X插件是否安装如果想要mysql支持文档型存储,需要my
千家信息网最后更新 2024年11月28日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安全错误
数据库的锁怎样保障安全
服务器怎么限制端口号ip地址
织梦扫描数据库增加新文件
杭州云象网络技术有限公司网站
我们应该注意哪些网络安全问题
连接数据库的公用类
云服务器放网站安全吗
网络技术教学视频 百度云
天津软件开发渠道
华为5g工具测试软件开发
做软件开发两年要不要转管理
市局网络安全工作方案
天心区软件开发测试
实现注册和登录需要数据库么
网络安全外包服务报价核算
服务器戴尔r740初始开机密码
数据库条件查询语句用什么隔开
国家网络安全新闻
数据库新技术 例子
大学生网络安全教育之我见
河北小型软件开发常用指南
网络安全我知道 教案
php+软件开发
青岛蓝恩网络技术网络
网络安全隐患检测服务
网络安全设备试运行
网络安全靠文明手抄报简单
把苹果电脑的网络服务器被删了
优米互联网科技有什么手游
国家网络安全新闻
梁溪区上门软件开发价格表格