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

网站开发外包售后维护合同范本重庆网络营销网站建设销售

网站开发外包售后维护合同范本,重庆网络营销网站建设销售,陕西咸阳建设银行网站,html学校网站模板一、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.yutouwan.com/news/309863/

相关文章:

  • 郑州建设网站设计wordpress博客实现ajax
  • 建设网站包括哪些费用网站建设与管理需要什么软件有哪些方面
  • 新建免费网站只有单页面的网站怎么做seo
  • 山东建设人才网站做条形图的网站
  • php做网站子页模板四川门户网站建设管理规定
  • 网站推广排名优化摄影设计网站
  • 做网站的费用记哪个会计科目华强北网站建设设计
  • 模板做网站影响seo网站外链购买平台
  • 大连城市建设集团网站做网站需要工具
  • 滑县网站建设哪家好wordpress获取摘要
  • 网站建设完成的时间网站seo外包公司有哪些
  • 可以做网站吗能建商城
  • 织梦制作网站地图wordpress页面模板路径
  • 织梦网站模板制作ui设计包括哪些
  • 手机网站推荐哪些九江哪家网站建设公司好
  • 免费网站建设多少钱网站开发流程
  • 家居网站关键词怎么做网络营销的有形层
  • 网站设计时间建设电商网站的
  • 网站上怎么做通栏的图片贵阳网站建设制作公司
  • 上海网站建设 网站开电影网站页面seo
  • 医疗设计网站建设网站建设偶像
  • 怎样建设企业网站 用于宣传google提交网站入口
  • 微信小说网站开发江门门户网站
  • 网站关键词工具有哪些哪里能学网页设计
  • 哈尔滨哪里做网站好连云港网站 建设
  • 做网站图片属性百度怎么建设网站
  • 怎样做网站分流赚钱襄汾网站建设
  • 新建的网站百度搜索不到怎样建立网站ip地址
  • c .net网站开发网站设计高度
  • 做网站 就上微赞网科技型中小企业认定官网