h5做网站教程做彩票网站

bicheng/2026/1/18 16:05:48/文章来源:
h5做网站教程,做彩票网站,海南做网站的公司,泰安网站制作工作室一、MongoDB简介 1.1 MongoDB介绍 MongoDB是一个强大、灵活#xff0c;且易于扩展的通用型数据库。MongoDB是C编写的文档型数据库#xff0c;有着丰富的关系型数据库的功能#xff0c;并在4.0之后添加了事务支持。 随着存储数据量不断的增加#xff0c;开发者面临一个困…一、MongoDB简介 1.1 MongoDB介绍 MongoDB是一个强大、灵活且易于扩展的通用型数据库。MongoDB是C编写的文档型数据库有着丰富的关系型数据库的功能并在4.0之后添加了事务支持。 随着存储数据量不断的增加开发者面临一个困难如何扩展数据库而扩展数据库分为横向扩展和纵向扩展纵向扩展就是使用计算能力更强大的机器它的缺点就是机器性能的提升有物理极限的制约而且大型机通常都是非常昂贵的而MongoDB的设计采用的是横向扩展的模式面向文档的数据模型使它很容易的在多台服务器上进行数据分割。MongoDB能自动处理夸集群的数据和负载自动重新分配文档这样开发者就能集中精力编写应用程序而不需要考虑如果扩展的问题。 1.2 MongoDB安装 MongoDB的安装简单来说分为两种 官网下载对应物理机的安装包直接安装使用Docker镜像安装到Docker上 推荐使用第二种直接使用MongoDB镜像安装到Docker上这样带来的好处是 安装简单、方便且快速更容易进行数据迁移使用Docker可以很容易的导入和导出整个MongoDB到任何地方 所以本文将重点介绍MongoDB在Docker上的安装和使用。 如果想要直接在物理机安装Docker可以查看我之前的一篇文章《MongoDB基础介绍安装与使用》https://www.cnblogs.com/vipstone/p/8494347.html 1.3 Docker上安装MongoDB 在Docker上安装软件一般需要两步 pull下载对应的镜像相对于下载软件装载镜像到容器相对于安装软件 1.3.1 下载镜像 下载镜像需要到镜像市场https://hub.docker.com/如要要搜索的软件“mongo”选择官方镜像“Official”点击详情获取相应的下载方法我们得到下载MongoDB的命令如下 docker pull mongo:latest 1.3.2 装载镜像到容器 使用命令 docker run --name mongodb1 -p 27018:27017 -d mongo:latest –name 指定容器名称-p 27018:27017 映射本地端口27018到容器端口27017-d 后台运行mongo:latest 镜像名称和标签 使用“docker images”查看镜像名称和标签如下图 容器装载成功之后就可以使用Robo 3T客户端进行连接了是不需要输入用户名和密码的如下图 表示已经连接成功了。 Robo 3T为免费的连接MongoDB的数据库工具可以去官网下载https://robomongo.org/download 1.3.3 开启身份认证 如果是生成环境没有用户名和密码的MongoDB是非常不安全的因此我们需要开启身份认证。 Setp1装载容器 我们还是用之前下载的镜像重新装载一个容器实例命令如下 docker run --name mongodb2 -p 27019:27017 -d mongo:latest --auth 其中“–auth”就是开启身份认证。 装载完身份认证成功容器之后我们需要进入容器内部给MongoDB设置用户名和密码。 Setp2进入容器内部 docker exec -it 容器id/名称 bash Setp3进入mongo命令行模式 mongo admin Setp4创建用户 db.createUser({ user: ‘admin’, pwd: ‘admin’, roles: [ { role: “userAdminAnyDatabase”, db: “admin” } ] }); 创建的用户名为“admin”密码为“admin”指定的数据库为“admin”。 这个时候我们使用Robo 3T 输入相应的信息进行连接如下图 表示已经连接成功了。 1.3.4 创建数据库设置用户 上面我们用“admin”账户使用了系统数据库“admin”通常在生成环境我们不会直接使用系统的数据库这个时候我们需要自己创建自己的数据库分配相应的用户。 Setp1首先需要进入容器 docker exec -it 容器id/名称 bash Setp2创建数据库 use testdb 如果没有testdb就会自动创建数据库。 Setp3创建用户分配数据库 db.createUser({ user: ‘admin’, pwd: ‘admin’, roles: [ { role: “readWrite”, db: “testdb” } ] }); 其中 role: “readWrite” 表式给用户赋值操作和读取的权限当然增加索引、删除表什么的也是完全没有问题的。 到目前为止我们就可以使用admin/admin操作testdb数据库了。 1.3.5 其他Docker命令 删除容器docker container rm 容器id/名称 停止容器docker stop 容器id/名称 启动容器docker start 容器id/名称 查看运行是容器docker ps 查询所有的容器docker ps -a 二、MyBatis集成MongoDB Spring Boot项目集成MyBatis前两篇文章已经做了详细的介绍这里就不做过多的介绍本文重点来介绍MongoDB的集成。 Setp1添加依赖 在pom.xml添加如下依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-mongodb/artifactId /dependencySetp2配置MongoDB连接 在application.properties添加如下配置 spring.data.mongodb.urimongodb://username:pwd172.16.10.79:27019/testdbSetp3创建实体类 import java.io.Serializable;public class User implements Serializable {private Long id;private String name;private int age;private String pwd;//...略set、get } Setp4创建Dao类 import com.hello.springboot.entity.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; import org.springframework.stereotype.Component; import java.util.List;Component public class UserDao {Autowiredprivate MongoTemplate mongoTemplate;/*** 添加用户* param user User Object*/public void insert(User user) {mongoTemplate.save(user);}/*** 查询所有用户* return*/public ListUser findAll() {return mongoTemplate.findAll(User.class);}/*** 根据id 查询* param id* return*/public User findById(Long id) {Query query new Query(Criteria.where(id).is(id));User user mongoTemplate.findOne(query, User.class);return user;}/*** 更新* param user*/public void updateUser(User user) {Query query new Query(Criteria.where(id).is(user.getId()));Update update new Update().set(name, user.getName()).set(pwd, user.getPwd());mongoTemplate.updateFirst(query, update, User.class);}/*** 删除对象* param id*/public void deleteUserById(Long id) {Query query new Query(Criteria.where(id).is(id));mongoTemplate.remove(query, User.class);}} Setp4创建Controller import com.hello.springboot.dao.IndexBuilderDao; import com.hello.springboot.dao.UserDao; import com.hello.springboot.entity.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.ModelAndView;RestController RequestMapping(/) public class UserController {Autowiredprivate UserDao userDao;RequestMapping(/)public ModelAndView index() {User user new User();user.setId(new Long(1));user.setAge(18);user.setName(Adam);user.setPwd(123456);userDao.insert(user);ModelAndView modelAndView new ModelAndView(/index);modelAndView.addObject(count, userDao.findAll().size());return modelAndView;} } Setp5创建页面代码 html headtitle王磊的博客/title /head body Hello ${count} /body /html到此为止已经完成了MongoDB的集成启动项目输入“http://localhost:8080/”去数据库查看插入的数据吧。 正常插入数据库如下图 三、MongoDB主键自增 细心的用户可能会发现虽然MongoDB已经集成完了但插入数据库的时候user的id是手动set的值接下来我们来看怎么实现MongoDB中的id自增。 3.1 实现思路 MongoDB 实现id自增和Spring Boot JPA类似是在数据库创建一张表来记录表的“自增id”只需要保证每次都增加的id和返回的id的原子性就能保证id实现“自增”的功能。 3.2 实现方案 有了思路之后接下来我们来看具体的实现方案。 3.2.1 创建实体类 import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document;Document(collection IndexBuilder) public class IndexBuilder {Idprivate String id;private Long seq;//..省略get、set方法 }其中collection IndexBuilder是指数据库的集合名称对应关系型数据库的表名。 3.2.2 创建Dao类 import com.hello.springboot.entity.IndexBuilder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.query.Update; import org.springframework.stereotype.Component; import static org.springframework.data.mongodb.core.FindAndModifyOptions.options; import static org.springframework.data.mongodb.core.query.Criteria.where; import static org.springframework.data.mongodb.core.query.Query.query;Component public class IndexBuilderDao {Autowiredprivate MongoOperations mongo;/*** 查询下一个id* param collectionName 集合名* return*/public Long getNextSequence(String collectionName) {IndexBuilder counter mongo.findAndModify(query(where(_id).is(collectionName)),new Update().inc(seq, 1),options().returnNew(true).upsert(true),IndexBuilder.class);return counter.getSeq();} }3.2.3 使用“自增”的id User user new User(); user.setId(indexBuilderDao.getNextSequence(user)); //...其他设置核心代码indexBuilderDao.getNextSequence(“user”) 使用“自增”的id实现id自增。 到此为止已经完成了MongoDB的自增功能如果使用正常数据库应该是这样的 数据库的IndexBuilder就是用来记录每个集合的“自增id”的。 MongoDB集成的源码https://github.com/vipstone/springboot-example/tree/master/springboot-mybatis-mongodb

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/89162.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

做第三方库个人网站H5建网站

计算机数据及软件的安全计算机数据及软件的安全一、计算机软件的安全问题 1、软件在计算机安全中的二重性 软件是计算机系统的重要组成部分。和硬件相比,软件是计算机系统的灵魂,用户通过软件才能使用计算机。 (1)计算机软件是系统安全保护的对象和安全控…

在ai中做网站图片怎么设置深圳营销型网站建设服务

运维工程师的出路到底在哪里? 你是不是也常常听到身边的运维人员抱怨,他们的出路到底在哪里呢?别着急,让我告诉你,运维人员就像是IT界的“万金油”,他们像“修理工”一样维修服务器,像“消防员…

最专业企业营销型网站建设学校网页设计方案

使用bootstrap的grid system可以在一个较为粗糙的范围得到较好的响应性,但是通过viewport可以看到网站在具体哪个像素点处变得丑陋,再通过css media query来精细调整网页布局。 可以通过media query来提高网页移动响应能力。

商贸公司寮步网站建设极致发烧重庆建站程序

前言我们都知道依赖注入的方式常见的主要有三种构造函数注入属性注入接口注入在大名鼎鼎的Spring框架中大量使用属性注入的方式,属性注入的方式写起来那是真的爽;而在Asp.NetCore中则不支持属性注入,如果不使用第三方库,我们就只能…

网站的图片怎么做昆明找工作哪个网站好

在视频制作和分享过程中,一个有吸引力的封面或截图往往能吸引更多的观众点击观看。有时候要在特定的时间段内从视频中提取一帧作为封面或截图。如果每个视频都手动提取的话就会耗费很长时间,那么如何智化能批量提取呢?现在一起来看下云炫AI智…

我想做直播网站该怎么做网站职能建设论文

私域运营活动是公司运营中非常重要的一环,它能够提高用户参与度、增加用户忠诚度,并为公司带来更多的商业机会。然而,策划和执行一场成功的私域运营活动并不容易,需要思维缜密、部门合作以及落地能力等方面的综合素养。今天来跟大…

舆情网站网址内江市建设培训中心网站

文章目录 前言1. 本地安装Docker2. 本地部署Apache Answer2.1 设置语言选择简体中文2.2 配置数据库2.3 创建配置文件2.4 填写基本信息 3. 如何使用Apache Answer3.1 后台管理3.2 提问与回答3.3 查看主页回答情况 4. 公网远程访问本地 Apache Answer4.1 内网穿透工具安装4.2 创建…

自己想做一个网站怎么做做网站怎么接业务

随着科技的不断发展,视频制作已经不再是专业人士的专属领域,越来越多的人开始使用各种视频制作软件来记录生活、创作内容。其中,会声会影是被广泛使用的一款视频制作软件,其旗舰版更是备受关注。 据悉,会声会影2024旗舰…

怎样建立自己的个人网站推广产品的软文怎么写

Self-attention(自注意力)和 Word2Vec 是两种不同的词嵌入技术,用于将单词映射到低维向量空间。它们之间的区别: Word2Vec: Word2Vec 是一种传统的词嵌入(word embedding)方法,旨在为…

公司网站用什么开发如何查看网站域名信息

1. 递归实现的缺陷 在以前的文章中我们把快速排序和归并排序的递归实现方式进行了介绍,但是在校招面试和在企业的日常开发过程中,仅掌握递归方法是不够的,因为递归也有它的缺陷。 我们知道在函数调用过程中会在内存中建立栈帧,栈…

网站目录做二级域名WordPress网站生成小程序

面试题之ElasticSearch 1.es的基础知识2. es的集群、节点、分片、副本分片的定义?3. es为什么快?4. 倒排索引的原理是什么?5. es的segment是什么?6. es的分段存储和分段索引的概念及区别?7. 索引相关的问题&#xff1f…

创新的o2o网站建设制作wordpress页面模板

一、名词解释 Device ID:设备ID。 IMEI:(International Mobile Equipment Identity)国际移动设备标识的缩写。是由15位数字组成的“电子串号”,它与每台手机一一对应,每个IMEI在世界上都是唯一的。 MEID…

仿站小工具wordpress域名网站模板

题目 输入样例: 5 2 1 2 3 4 5输出样例: 6 思路 本题默认所有读者已经理解了如何求前缀和。 可以利用双层循环分别枚举左端点和右端点即可枚举完所有区间,而对于每个区间,利用一维前缀和判断它是否是一个k倍区间,是…

海口网站建设交易网站建设具体方案

目录 1 添加修改运费模板 2 删除运费模板 3 是否有商品使用过改运费模板 /// <summary> 添加修改运费模板 /// </summary>

海洋网站建设网络闵行区天气

echarts在HTML里测试正常&#xff0c;在jsp页面不显示&#xff0c;而且还把整个页面变成空白echarts在HTML里测试正常&#xff0c;在jsp页面不显示&#xff0c;而且还把整个页面变成空白&#xff0c;请大神帮忙&#xff0c;急&#xff0c;在线等Created by IntelliJ IDEA.User:…

包头建网站公司哪家强销售类网站数据库的建设

一、Ajax初始 1、什么是Ajax&#xff1f; 异步的JavaScript和xml 2、xml是什么&#xff1f; 一种标记语言&#xff0c;传输和存储数据----------现在用JSON传输数据 3、Ajax的作用 局部加载 可以使网页异步更新 4、Ajax的原理或者步骤(6步) 创建Ajax对象 if (window.X…

视频网站为什么有人做随便来一个公司邮箱

RRDtool作为一个合格的运维工程师&#xff0c;监控技能必须是要掌握的&#xff0c;当然监控的软件很多很多(cacti,nagios,zabbix...)。而生产环境中一般只运用1、2种而已。所以全部掌握这些有点不靠谱。所以选择其中一种掌握之即可&#xff0c;当工作环境变化后还可以以之为跳板…

标准件做啥网站wordpress主题标签关键词

2023已悄然过去&#xff0c;还记得跨年夜那天&#xff0c;我突然接到一星期要期末考的消息&#xff0c;我的内心是多么奔溃&#xff0c;先不说一天一门强度如此之高&#xff0c;重要的是矩阵论&#xff0c;工程优化等等科目&#xff0c;还要速成&#xff0c;于是麻木得预习一日…

零基础自己建网站网站采用哪种开发语言

2017年3月26日晚间&#xff0c;农业银行发布了2017年的年报。数据显示&#xff0c;2017年农业银行实现营业收入5428.98亿元&#xff0c;同比增长6.42%&#xff0c;净利润1929.62亿元&#xff0c;同比增长4.9%&#xff0c;截至2017年末&#xff0c;农业银行总资产21.05万亿元&am…

wordpress站点logo腾讯云服务器控制台

71. Kotlin中的@Metadata注解介绍以及生成流程 ?kotlin中的@Metadata注解是一个很特殊的注解,它记录了Kotlin代码中的一些信息,比如 class 的可见性,function 的返回值,参数类型,property 的 lateinit,nullable 的属性,typealias类型别名声明等。 我们都知道Kotlin代码…