好文档 - 专业文书写作范文服务资料分享网站

MongoDB实操指南 - 图文

天下 分享 时间: 加入收藏 我要投稿 点赞

package com.huasheng.sitelog; import java.io.IOException; import java.io.InputStream; import java.util.Properties; /** * 配置类 * @author Administrator * */ public class Config { } static{ } try { Properties p=new Properties(); InputStream p.load(input); host=p.getProperty(\); port=Integer.parseInt( p.getProperty(\)); input.close(); e.printStackTrace(); input=Config.class.getResourceAsStream(\); } catch (IOException e) { }//加载 private static String host;//主机地址 private static int port;//端口 public static String getHost() { } public static int getPort() { } return port; return host; (4)创建管理类 package com.huasheng.sitelog; import com.mongodb.MongoClient; import com.mongodb.MongoClientOptions; import com.mongodb.MongoClientOptions.Builder; import com.mongodb.ServerAddress; import com.mongodb.WriteConcern; import com.mongodb.client.MongoDatabase;

/** * Mongo数据库连接管理类 * @author Administrator * */ public class MongoManager { 出 } } public static MongoDatabase getDatabase(){ } if(mongoClient==null){ } init(); //得到选项封装 MongoClientOptions options = builder.build(); mongoClient=new MongoClient(new ServerAddress(Config.getHost(), //初始化 private static void init(){ //创建一个选项构造器 Builder builder = new MongoClientOptions.Builder(); builder.connectTimeout(5000);//设置连接超时时间 builder.socketTimeout(5000);//读取数据的超时时间 builder.connectionsPerHost(30);//设置每个地址最大连接数 builder.writeConcern(WriteConcern.NORMAL);//设置写入策略 ,只有网络异常才会抛 private static MongoClient mongoClient=null; Config.getPort()),options); return mongoClient.getDatabase(\); (5)日志工具类 package com.huasheng.sitelog; import java.util.Map; import org.bson.Document; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; /** * 站点日志数据工具类

* @author Administrator * */ public class SiteLogUtil { } /** * 写入日志 * @param logname 日志名称 * @param map 日志数据 */ public static void save(String logname,Map map){ } MongoDatabase database = MongoManager.getDatabase(); MongoCollection collection = database.getCollection(logname); Document doc=new Document(map); collection.insertOne(doc); (6)编写测试代码 Map map=new HashMap(); map.put(\, \); map.put(\, \); map.put(\, new Date()); map.put(\, \大众\); map.put(\, \); map.put(\, 15.3); map.put(\, \八成新,贱卖了\); SiteLogUtil.save(\, map);//存入日志 7.4日志查询

7.4.1条件查询

(1)在SiteLogUtil类中添加方法

/** * 按条件查询 * @param logName * @param map * @return */ public static FindIterable list(String logName,Map map){

} MongoDatabase database = MongoManager.getDatabase(); MongoCollection collection = database.getCollection(logName); BasicDBObject bson=new BasicDBObject(map);//构建查询条件 return collection.find(bson);

(2)编写测试代码

Map map =new HashMap(); map.put(\, \); FindIterable list = SiteLogUtil.list(\, map); String json = JSON.serialize(list); System.out.println(json); 7.4.2分页查询

(1)在SiteLogUtil类中添加方法

/** * 分页查询日志 * @param logName 日志名称 * @param map 条件 * @param pageIndex 页码 * @param pageSize 页大小 * @return */ public static Map listPage(String logName,Map map,int pageIndex,int pageSize){ } MongoDatabase database = MongoManager.getDatabase(); MongoCollection collection = database.getCollection(logName); BasicDBObject bson=new BasicDBObject(map);//构建查询条件 FindIterable find = collection.find(bson); int skip= (pageIndex-1)*pageSize; find.skip( skip);//跳过记录数 find.limit(pageSize);//一页查询记录数 //{ total:x,rows:[] } long count = collection.count(bson); Map m=new HashMap(); m.put(\, count); m.put(\, find); return m; (2)添加测试数据

for(int i=0;i<1000;i++){

} Map map=new HashMap(); map.put(\, \+i);//用户ID map.put(\, \); map.put(\, new Date());//浏览时间 map.put(\, \大众\+i);//型号 map.put(\, \);//商品ID map.put(\, 11.8);//价格 map.put(\, \八成新,快来买吧\); SiteLogUtil.save(\, map); (3)编写测试代码:

Map map=new HashMap(); map.put(\, \); Map m = SiteLogUtil.listPage(\, map, 2, 10); String json = JSON.serialize(m); System.out.println(json);

使用Maven 的package命令进行打包。

创建WEB工程,引入jar包,调用此方法即可实现日志查询。代码略。

MongoDB实操指南 - 图文

packagecom.huasheng.sitelog;importjava.io.IOException;importjava.io.InputStream;importjava.util.Properties;/***配置类*@authorAdministrator**/publicclassConfig{
推荐度:
点击下载文档文档为doc格式
612j65wqsi0088t3x4ji0cqsi0v0jd00p3w
领取福利

微信扫码领取福利

微信扫码分享