標籤:work rem move except 資訊 valueof stat mapper 查詢
在實際的項目中,經常利用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與portString 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