在实际的项目中,经常利用mongodb数据库做缓存,mongodb的并发性比较高,所以对于快速存储、读取信息有很多优点。在项目中对于第一次的数据请求会直接访问数据库,而对于获得的信息通常都会在此时刻存入到mongodb中,下一次请求就不会再访问数据库而是直接在mongodb中进行增删改查。

  而通常的mongodb我们一般利用配置文件的形式来设置,这对于后期的交付也特别有利。一般就是以下几个步骤:

  1.写配置文件mongodb.properties

#mongodb的ip和端口号
ipandport=127.0.0.1:27017
#数据库名字
dbname=mongodbTest

  2.写得到mongodb的ip和端口号的类及方法GetMongoDBIpAndPort.java

package org.fkit.B2118.util;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties; public class GetMongoDBIpAndPort {
//ip与端口号
private String ipAndPort;
//数据库名字
private String dbname;
//构造方法
public void getMongoDBIpAndPort(){ InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("mongodb.properties");
Properties p = new Properties();
try {
p.load(inputStream);
this.ipAndPort = p.getProperty("ipandport");//获取配置文件的值
this.dbname = p.getProperty("dbname");//获取配置文件的值
} catch (IOException e) {
e.printStackTrace();
}
} //setter,getter方法
public String getIpAndPort() {
return ipAndPort;
}
public void setIpAndPort(String ipAndPort) {
this.ipAndPort = ipAndPort;
}
public String getDbname() {
return dbname;
}
public void setDbname(String dbname) {
this.dbname = dbname;
} }

  3.写数据库的dao层,对数据库经行操作MongoDb.java

package org.fkit.B2118.dao;

import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.bson.types.ObjectId;
import org.fkit.B2118.controller.BuyTicketController;
import org.fkit.B2118.domain.B2118ticket;
import org.fkit.B2118.mapper.B2118ticketMapper;
import org.fkit.B2118.service.TicketService;
import org.fkit.B2118.service.TicketServiceImpl;
import org.fkit.B2118.util.GetMongoDBIpAndPort;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
import com.sun.swing.internal.plaf.basic.resources.basic; public class MongoDb { public static Mongo connection = null;
public static DB database = null;
public static DBCollection collection; public static MongoDb db ; @Autowired
@Qualifier("ticketService")
public TicketService ticketService;
public B2118ticketMapper ticketMapper;
public DBObject dbs = new BasicDBObject();
/*
* 创建一个数据库集合Connection
*/
public void createConnection(String name) throws UnknownHostException, MongoException{
          //利用配置文件及其方法来创建链接
GetMongoDBIpAndPort getMongoDBIpAndPort= new GetMongoDBIpAndPort();
getMongoDBIpAndPort.getMongoDBIpAndPort();//构造方法
String ipandport= getMongoDBIpAndPort.getIpAndPort();//得到ip与port
String dbname = getMongoDBIpAndPort.getDbname();//得到数据库名字 //建立一个Mongo的数据库连接对象
Mongo con = new Mongo(ipandport);
//创建相关数据库的连接
DB db = con.getDB(dbname);
db.createCollection(name, dbs);
}
     /*
* 打开一个数据库集合Connection
*/
	public static void openConnection(String name) throws UnknownHostException, MongoException{
GetMongoDBIpAndPort getMongoDBIpAndPort= new GetMongoDBIpAndPort();
getMongoDBIpAndPort.getMongoDBIpAndPort();
String ipandport= getMongoDBIpAndPort.getIpAndPort();
String dbname = getMongoDBIpAndPort.getDbname();
System.out.println(ipandport);
connection = new Mongo(ipandport);
database = connection.getDB(dbname);
collection=database.getCollection(name);
}
     /*
* 关闭一个数据库集合Connection
*/
	public static void closeConnection(String name) {
connection.close();
} /*
* 查询数据
*/
public List<B2118ticket> queryTicket() throws UnknownHostException, MongoException {
//实例化
try {
openConnection("ticket");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (MongoException e) {
e.printStackTrace();
} List<B2118ticket> b2118ticketlist=new ArrayList<B2118ticket>();
DBCursor cur = collection.find();
while (cur.hasNext()) {
DBObject object = cur.next();
B2118ticket b2118ticket = new B2118ticket();
b2118ticket.setTid(String.valueOf(object.get("tid")));
b2118ticket.setTrain(String.valueOf(object.get("train")));
b2118ticket.setTnum(String.valueOf(object.get("tnum")));
b2118ticket.setTtime((Date) object.get("ttime"));
b2118ticket.setTtotle(String.valueOf(object.get("ttotle")));
b2118ticket.setStart(String.valueOf(object.get("start")));
b2118ticket.setStarttime(String.valueOf(object.get("starttime")));
b2118ticket.setEnd(String.valueOf(object.get("end")));
b2118ticket.setEndtime(String.valueOf(object.get("endtime")));
b2118ticket.setPrice(String.valueOf(object.get("price")));
b2118ticketlist.add(b2118ticket);
}
System.out.println(b2118ticketlist);
closeConnection("ticket");
return b2118ticketlist;
}
public static int deleteAll(String collName){
//1.得到集合
DBCollection coll = database.getCollection(collName);
DBObject dbs = new BasicDBObject();
int count = coll.remove(dbs).getN();
return count;
}
}

  

通过读取配置文件,启动mongodb的更多相关文章

  1. 使用配置文件启动MongoDB

    Ubuntu 16.04 (阿里云ECS),MongoDB 4.0, 原来,已经写了10篇MongoDB的随笔了.可是,自己居然没有使用配置文件启动过MongoDB,对其更多的配置是不明白的. 昨天( ...

  2. Docker实战(1):通过配置文件启动MongoDB

    系统环境:Centos7 MongoDB 4.0.0 创建文件 注意:创建文件全是为了Docker run做准备,文件所对应的路径需与下一步的映射路径所对应,路径可自我更改. mkdir mongo ...

  3. MongoDB 配置文件启动

    MongoDB 服务启动有两种方式:一种是直接命令启动,一种是通过配置文件启动 1.命令启动: mongod -dbpath C:\data\db -logpath C:\data\log\mongo ...

  4. 操作3 mongodb和mysql 开启慢查询日志 ,以及mongodb从配置文件启动

    1. mongodb从配置文件启动 创建配置文件:/usr/local/mongodb/etc/mongodb.conf 配置文件的内容为: #Directory and relavent set d ...

  5. MySQL读取配置文件的顺序、启动方式、启动原理

    一.MySQL读取配置文件的顺序 读取顺序:/etc/my.cnf > /etc/mysql/my.cnf > /usr/etc/my.cnf > ~/.my.cnf 命令验证:[r ...

  6. MongoDB 通过配置文件启动

    mongod启动命令需指定一些参数启动服务,我们通过配置文件的方式配置这些参数加载配置. ./bin/mongod --config ./conf/mongodb.conf(或./bin/mongod ...

  7. skynet启动读取配置文件浅析(skynet_main.c)

    1.作为skynet的启动文件,主要完成了一些初始化和读取并存取配置文件内容的工作. 在这里只将代码读取配置文件的部分抽取出来,就算没有skynet环境,这些代码也是可以运行的,了解以后再对照源码进行 ...

  8. 进程监控工具supervisor 启动Mongodb

    进程监控工具supervisor 启动Mongodb 一什么是supervisor Superviosr是一个UNIX-like系统上的进程监控工具. Supervisor是一个Python开发的cl ...

  9. nova读取配置文件流程

          在我们安装nova的过程中,设置它的配置文件/etc/nova/nova.conf是必不可少的一步.配置好nova.conf文件,nova-compute.nova-network等服务才 ...

  10. SparkStreaming动态读取配置文件

    SparkStreaming动态读取配置文件 标签: SparkStreaming HDFS 配置文件 MySql 需求 要实现SparkStreaming在流处理过程中能动态的获取到配置文件的改变 ...

随机推荐

  1. 单独编译IMX6Q的VPU示例程序:mxc_vpu_test.out

    mxc_vpu_test.out是飞思卡尔为IMX6Q编写的VPU示例程序,有编解码和简单的网络传输功能. 首先从/opt/freescale/pkgs/中提取出imx-test-3.0.35-4.1 ...

  2. plist涉及到沙盒的一个问题

    http://blog.csdn.net/wowxavi1/article/details/8557271

  3. zTree中父节点禁用,子节点可以用

    参考学习网址:http://www.treejs.cn/v3/main.php#_zTreeInfo zTree中父节点禁用,子节点可以用 axios.get('/base/unit/unittree ...

  4. Performance Testing 前期准备以及场景设计

    性能测试的session参加过几个,也查阅了很多相关的资料.年前被分配了测试任务,一直拖到现在,准备开始做的时候,才发现真的是不知道如何做起啊.今天和同事聊了一下,有很大启发.测试小白一枚,只分享一下 ...

  5. 量化投资与Python之pandas

    pandas:数据分析 pandas是一个强大的Python数据分析的工具包.pandas是基于NumPy构建的. pandas的主要功能具备对其功能的数据结构DataFrame.Series集成时间 ...

  6. 2017-07-12(touch df du)

    touch 作用:修改文件时间或者创建新文件 文件三个主要的变动时间 mtime 当文件的内容发生改变的时候,就会更新这个时间 ctime 当文件的权限与属性发生改变的时候,就会更新这个时间 atim ...

  7. sqlserver存储过程及mybatis调用——待续

    创建带输入参数存储过程 use yanantestgoif exists (select * from sys.objects where name='yanan')drop procedure ya ...

  8. springmvc图片上传(兼容ie8以上,实时预览)

    html代码: <form id="uploadform" method="post" enctype="multipart/form-data ...

  9. C# WinForm调用UnityWebPlayer Control控件 <学习笔记1>

    工具 1.三维场景 Unity 5.0.2f1 2.开发环境Microsoft Visual Studio 2010 3.需要使用的控件 UnityWebPlayer Control 出现的问题及解决 ...

  10. TOMCAT原理详解及请求过程

    Tomcat: Tomcat是一个JSP/Servlet容器.其作为Servlet容器,有三种工作模式:独立的Servlet容器.进程内的Servlet容器和进程外的Servlet容器. Tomcat ...