技术标签: java mongodb可视化 mongodb springboot
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.dyz</groupId>
<artifactId>mongodb</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>mongodb</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.3.3</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
spring:
data:
mongodb:
host: 192.168.25.6
port: 27017
database: articleDB
logging:
level:
org.springframework.data.mongodb.core: debug
/**
* @author dyz
* @version 1.0
* @date 2020/5/14 15:46
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Article {
@Id
private Long id;
/**
* 标题
*/
private String title;
/**
* 内容
*/
private String content;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 点赞数量
*/
private Long thumbUp;
/**
* 访客数量
*/
private Long visits;
}
/**
* @author dyz
* @version 1.0
* @date 2020/5/14 15:54
*/
public interface ArticleDao extends MongoRepository<Article, Long> {
/**
* 根据标题模糊查询
*
* @param title 标题
* @return 满足条件的文章列表
*/
List<Article> findByTitleLike(String title);
}
@SpringBootApplication
public class MongodbApplication {
public static void main(String[] args) {
SpringApplication.run(MongodbApplication.class, args);
}
@Bean
public Snowflake snowflake() {
return IdUtil.createSnowflake(1, 1);
}
}
@SpringBootTest
@Slf4j
class MongodbApplicationTests {
@Autowired
private ArticleDao articleDao;
@Autowired
private MongoTemplate mongoTemplate;
@Autowired
private Snowflake snowflake;
/**
* 新增数据
*/
@Test
public void testSave() {
Article article = new Article(1L, RandomUtil.randomString(20), RandomUtil.randomString(150), DateUtil.date(), DateUtil
.date(), 0L, 0L);
articleDao.save(article);
log.info("【文章】= {}", JSONUtil.toJsonStr(article));
}
/**
* 新增数据列表
*/
@Test
public void testSaveList() {
List<Article> articles = Lists.newArrayList();
for (int i = 0; i < 10; i++) {
articles.add(new Article(snowflake.nextId(), RandomUtil.randomString(20), RandomUtil.randomString(150), DateUtil
.date(), DateUtil.date(), 0L, 0L));
}
articleDao.saveAll(articles);
log.info("【文章】= {}", JSONUtil.toJsonStr(articles.stream()
.map(Article::getId)
.collect(Collectors.toList())));
}
/**
* 更新数据
*/
@Test
public void testUpdate() {
articleDao.findById(1262211396846882816L).ifPresent(article -> {
article.setTitle(article.getTitle() + "这条数据被更新");
article.setUpdateTime(DateUtil.date());
articleDao.save(article);
log.info("【文章】= {}", JSONUtil.toJsonStr(article));
});
}
/**
* 删除数据
*/
@Test
public void testDelete() {
// 根据主键删除
articleDao.deleteById(1L);
// 全部删除
articleDao.deleteAll();
}
/**
* 增加点赞数、访客数,使用save方式更新点赞、访客
*/
@Test
public void testThumbUp() {
articleDao.findById(1262211396846882816L).ifPresent(article -> {
article.setThumbUp(article.getThumbUp() + 1);
article.setVisits(article.getVisits() + 1);
articleDao.save(article);
log.info("【标题】= {}【点赞数】= {}【访客数】= {}", article.getTitle(), article.getThumbUp(), article.getVisits());
});
}
/**
* 增加点赞数、访客数,使用更优雅/高效的方式更新点赞、访客
*/
@Test
public void testThumbUp2() {
Query query = new Query();
query.addCriteria(Criteria.where("_id").is(1262211396846882816L));
Update update = new Update();
update.inc("thumbUp", 1L);
update.inc("visits", 1L);
mongoTemplate.updateFirst(query, update, "article");
articleDao.findById(1262211396846882816L)
.ifPresent(article -> log.info("【标题】= {}【点赞数】= {}【访客数】= {}", article.getTitle(), article.getThumbUp(), article
.getVisits()));
}
/**
* 分页排序查询
*/
@Test
public void testQuery() {
Sort sort = Sort.by("thumbUp", "updateTime").descending();
PageRequest pageRequest = PageRequest.of(0, 5, sort);
Page<Article> all = articleDao.findAll(pageRequest);
log.info("【总页数】= {}", all.getTotalPages());
log.info("【总条数】= {}", all.getTotalElements());
log.info("【当前页数据】= {}", JSONUtil.toJsonStr(all.getContent()
.stream()
.map(article -> "文章标题:" + article.getTitle() + "点赞数:" + article.getThumbUp() + "更新时间:" + article.getUpdateTime())
.collect(Collectors.toList())));
}
/**
* 根据标题模糊查询
*/
@Test
public void testFindByTitleLike() {
List<Article> articles = articleDao.findByTitleLike("更新");
log.info("【文章】= {}", JSONUtil.toJsonStr(articles));
}
}
文章浏览阅读1w次。TO_NUMBER函数()是Oracle中常用的类型转换函数之一,主要是将字符串转换为数值型的格式,与TO_CHAR()函数的作用正好相反。To_number函数的格式如下:To_number(varchar2 or char,'format model')To_number函数中也有很多预定义的固定格式:格式值含义9代表一个数字0强迫0显示$显示美元符号L强制显示一个当地的货币符号.显示一个小数..._mysql to_number
文章浏览阅读76次。第一种方案DAO层的函数方法1Public User selectUser(String name,String area);对应的Mapper.xml123<select id="selectUser" resultMap="Bas..._ 查询传多个值
文章浏览阅读1.7k次。主要用用获取手机屏幕尺寸_如何实时获取手机屏幕内容
文章浏览阅读1.7w次,点赞9次,收藏21次。获取打印输出流打印输出流:response.getWriter() 返回的是 PrintWriter可以通过 response.getWriter().write()和response.getWriter().print()响应数据给客户端,如果前端没有接收数据的位置,就会在浏览器上生成一个新的页面来显示内容。区别:write():仅支持输出字符类型数据,字符、字符数组、字符串等print():可以将各种类型(包括Object)的数据通过默认编码转换成bytes字节形式,这些字节都通过writ_servlet response返回数据
文章浏览阅读98次。JAVA毕业设计Web企业差旅在线管理系统计算机源码+lw文档+系统+调试部署+数据库。springcloud基于微服务架构的小区生活服务平台的设计与实现。jsp会议管理系统的设计与实现sqlserver。ssm+sqlserver精准扶贫项目管理系统。ssm+sqlserver音乐资源分享网站。ssm基于Web的精品课程网站的设计与实现。ssm基于JavaEE的网上图书分享系统。_基于javaweb的差旅报销系统毕业设计
文章浏览阅读2.4k次。我是从3.8.3更新到3.11.4,pycharm版本是2020.1.2,所以网上说的更改文件权限、检查路径是否有中文我统统都试过了,所以我狠心直接重装新版本的2022.3.3,一顿操作过后发现能成功创建project了也不报错。将python版本更新后,使用pycharm突然无法创建虚拟环境virtualenv失败,提示路径从C:\Users\Lenovo\AppData\Local\下的什么什么到创建的路径的下的什么什么 我这里已经解决了忘记截图保存。_error: the executable g:\workspace\pythonproject\venv\scripts\python.exe is
文章浏览阅读593次,点赞29次,收藏9次。Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP 程序的首选。web服务器软件:首先,我们知道JavaWeb是一个典型的浏览器/服务器(B/S)架构,一般情况下,我们在进行Web开发时,不止要搭建Web的开发环境,还需要对服务器端进行响应的配置。服务器:安装了服务器软件的计算机服务器软件:用来接收和处理用户的请求,并做出响应的软件。
文章浏览阅读181次。R 与 RStudio:安装和入门使用R 是一种强大的编程语言和环境,广泛用于数据分析和统计建模。RStudio 是一个用于 R 的集成开发环境(IDE),提供了方便的代码编写、调试和可视化工具。本文将向您介绍如何安装 R 和 RStudio,并提供一些入门使用 R 语言的示例代码。
文章浏览阅读400次。“三人行,必有我师焉”,学习就是要从别人身上学到好的。今天特意给大家推荐10个优质公众号,目前属于活跃度非常高的几个原创公众号,涵盖了python和AI,重点是他们还坚持在原创技术免费分享的第一线!SQL数据库开发专注数据相关领域,主要分享MySQL,数据分析,Python,Excel 等相关技术内容,关注回复「1024」获取资源大礼包。点击上方名片可关注深度学习与图网络..._公众号 跟我学ai
文章浏览阅读167次。NetMQ 是 ZeroMQ的C#移植版本。ZeroMQ是一个轻量级的消息内核,它是对标准socket接口的扩展。它提供了一种异步消息队列,多消息模式,消息过滤(订阅),对多种传输协议的无缝访问。NetMQ 也是一个社区开源项目,网站在Github上 https://github.com/zeromq/netmq, 可以通过Nuget包获取http://nuget.org/package..._netmq kafka
文章浏览阅读483次。 前一段时间买了几本新版金庸小说口袋本,包括变动比较大的《天龙八部》与《射雕英雄传》。《天龙八部》的改动还是比较大的。大家非常熟悉的”降龙十八掌”变成了”降龙二十八掌”,到了小说的最后,萧峰和虚竹二人将”二十八掌”精简成了”十八掌”,又绕了回来,作为铁杆金庸读者我觉得这样的变化有些画蛇添足,也不知道金庸老先生这样改的目的为何。小说中的线索也变化了很多,增加了诸如丁...
文章浏览阅读47次。springboot基于Springbootvue的教学辅助系统设计与实现。springboot基于springboot的智能ERP管理系统。springboot基于Springboot的高校教室管理系统。springboot基于springboot的产后护理系统。springboot基于java电商后台管理系统。springboot特困生在线申报和信息服务系统。ssm基于微信小程序的汉服租赁平台的设计与实现。ssm基于vue的高校宿舍报修系统的设计与实现。springboot少数民族饰品销售系统。