zoukankan      html  css  js  c++  java
  • java中操作Mongodb

    Mongodb是一个nosql型的数据库,存储的是类似于json对象,能够支持类似于关系型数据库的一些操作。以下是java操作mongodb。

    一、建立连接(没有使用任何框架,连接是自己写的,同时在这个类写了关闭连接的方法),传入ip地址、端口和数据库名称(mongodb称集合)

    public class MongoDbConn {
        private static MongoClient mongoClient = null;
        private static MongoDatabase mongoDatabase = null;
        public static MongoDatabase getDatabase(String ipaddress,int port,String dbName) {
            mongoClient = new MongoClient(ipaddress, port);
            mongoDatabase = mongoClient.getDatabase(dbName);
            return mongoDatabase;
        }
        public static void closeDatabase(){
            try{
                if(mongoClient!=null){
                    mongoClient.close();
                }
            }catch(Exception e){
                throw new RuntimeException();
            }finally{
                mongoClient = null;
            }
            
        
        }
    
    }

    二、使用操作,以下是查询的例子

    public List<Data> getAllAbsData(RankParam rankParam) {
            List<Data> dataList = new ArrayList<Data>();
            MongoDatabase mongoDatabase = MongoDbConn.getDatabase("localhost", 27017, "area_new");
            MongoCollection<Document> collection = mongoDatabase.getCollection("vaabs_monthly");
            FindIterable<Document> findIterable = null;
            if ("vaabs".equals(rankParam.getIndexCode())) {
                if (rankParam.getAreaCode() == null || "".equals(rankParam.getAreaCode())) {// 全国
                    //db.vaabs_monthly.find({"$and":[{"indusId":300},{"areaCode":/.*0000$/}]})
                    Pattern queryPattern = Pattern.compile(".*0000$", Pattern.CASE_INSENSITIVE);
                    BasicDBObject queryObject = new BasicDBObject();
                    queryObject.put("areaCode", queryPattern);
                    queryObject.put("indusId", rankParam.getIndusId());
                    findIterable = collection.find(queryObject);
                    
                }else {//全省所有市的数据
                    //db.vaabs_monthly.find({"$and":[{"indusId":300},{"date":"2007-01-31"},{"areaCode":/^13/},{"areaCode":/.*00$/},{"areaCode":{"$not":/.*0000$/}}]})
                    //Pattern startPattern = Pattern.compile("^13", Pattern.CASE_INSENSITIVE);
                    Pattern startPattern = Pattern.compile("^"+rankParam.getAreaCode(), Pattern.CASE_INSENSITIVE);
                    Pattern endPattern = Pattern.compile(".*00$", Pattern.CASE_INSENSITIVE);
                    Pattern notPattern = Pattern.compile(".*0000$", Pattern.CASE_INSENSITIVE);
                    BasicDBObject queryObject = new BasicDBObject().append(QueryOperators.AND, new BasicDBObject[]{new BasicDBObject("indusId",rankParam.getIndusId()),
                            new BasicDBObject("areaCode",startPattern),new BasicDBObject("areaCode",endPattern),new BasicDBObject("areaCode", new BasicDBObject("$not",notPattern))
                            });
                    
                    findIterable = collection.find(queryObject);
                    
                    
                }
                MongoCursor<Document> mongoCursor = findIterable.iterator();
                while (mongoCursor.hasNext()) {
                    Document document = mongoCursor.next();
                    dataList.add(new Data(document.getString("name"), document.getDouble("value"), document.getString("date"), document.getString("areaCode"), document.getInteger("indusId")));
                }
    
            }else{
                
            }
            return dataList;
            
        }
  • 相关阅读:
    富数据控件 DetailsView 和 FormView
    富数据控件 LstView(模版、分组)
    ADO.NET 基础(事务、通用的数据工厂)
    文件和流(使用流读写文件)
    ASP.NET 状态管理(Application)
    根据定制的 XML 文件进行随机抽取节
    缓存(缓存依赖)
    文件浏览器
    ASP.NET 状态管理(cookie、Session)
    使用HtmlControl动态创建一个表格
  • 原文地址:https://www.cnblogs.com/fengmao/p/7596455.html
Copyright © 2011-2022 走看看