通过读取配置文件,启动mongodb
在实际的项目中,经常利用mongodb数据库做缓存,mongodb的并发性比较高,所以对于快速存储、读取信息有很多优点。在项目中对于第一次的数据请求会直接访问数据库,而对于获得的信息通常都会在此时刻存入到mongodb中,下一次请求就不会再访问数据库而是直接在mongodb中进行增删改查。
而通常的mongodb我们一般利用配置文件的形式来设置,这对于后期的交付也特别有利。一般就是以下几个步骤:
1.写配置文件mongodb.properties
1 2 3 4 | #mongodb的ip和端口号 ipandport= 127.0 . 0.1 : 27017 #数据库名字 dbname=mongodbTest |
2.写得到mongodb的ip和端口号的类及方法GetMongoDBIpAndPort.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | 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{<br> //利用配置文件及其方法来创建链接 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 */ <br> 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; } } |
yian
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)