在实际的项目中,经常利用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. 常用SQL笔记总结

    DDL(data definition language)创建和管理表 1.创建表 1.直接创建 例如: create table emp( name varchar(20), salary int ...

  2. CCF系列之I’m stuck!(201312-5)

    试题名称: I’m stuck! 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定一个R行C列的地图,地图的每一个方格可能是'#', '+', '-', '|', '.', ...

  3. CCF系列之ISBN号码(201312-2)

    试题名称: ISBN号码 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字.1位识别码和3位分隔符,其规 ...

  4. python基础6之迭代器&生成器、json&pickle数据序列化

    内容概要: 一.生成器 二.迭代器 三.json&pickle数据序列化 一.生成器generator 在学习生成器之前我们先了解下列表生成式,现在生产一个这样的列表[0,2,4,6,8,10 ...

  5. RAC某节点v$asm_disk查询hang分析处理

    主题:RAC某节点v$asm_disk查询hang分析处理 环境:Oracle 11.2.0.3 RAC 故障描述:RAC环境2个节点,节点1查询v$asm_disk正常返回结果,节点2查询v$asm ...

  6. 程序员之殇 —— One program, One king (血月)

    Are we living in the time of the end? (程序员的时代是否已经终结了?) 最近,我时常问自己这个问题. 刚读完了一个美国博士的论文,UDT (UDP-based D ...

  7. POI--HSSFCell类

    用POI创建单元格,使用「HSSFCell」类 该类包含三个构造方法.  protected HSSFCell(Workbook book, Sheet sheet, int row, CellVal ...

  8. DOM4J使用简介

    Dom4j 使用简介 作者:冰云 icecloud(AT)sina.com 时间:2003.12.15   版权声明: 本文由冰云完成,首发于CSDN,未经许可,不得使用于任何商业用途. 文中代码部分 ...

  9. 利用JS判断浏览器种类

    现在浏览器很多,写代码的时候常常存在兼容性问题,所以判断用户使用的浏览器很重要.userAgent带有浏览器的种类及版本号等信息,所以可以通过userAgent属性来判断.一些冷门的浏览器,可以通过打 ...

  10. z-index在IE中的坑

    在CSS2.1规范中,每个盒模型的位置是三维的,分别是平面画布上的x轴,y轴以及表示层叠的z轴.对于每个html元素,都可以通过设置z-index属性来设置该元素在视觉渲染模型中的层叠顺序. z-in ...