zoukankan      html  css  js  c++  java
  • mongoDB在java上面的应用

    1、实际应用过程中肯定不会直接通过Linux的方式来连接和使用数据库,而是通过其他驱动的方式来使用mongoDB

    2、本教程只针对于Java来做操作,主要是模拟mongoDB数据库在开发过程中的应用

    3、在官网下载对应的jar包,来做mongoDB的驱动支持,当然也可以利用pom.xml文件自己下载

      jar下载地址:https://oss.sonatype.org/content/repositories/releases/org/mongodb/mongodb-driver/3.4.2/

      这个是3.4.2版本的,有需要可以下载其他版本

      

    也可以在pom.xml文件中加入

    <dependencies>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver</artifactId>
            <version>3.4.2</version>
        </dependency>
    </dependencies>

    4、连接数据库,连接数据库的方式有两种。一种是没有用户名密码,另外一种是有的

      1)没有密码

      public static void main(String[] args) {
            try{
                // 连接到 mongodb 服务
                MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
                // 连接到数据库
                MongoDatabase mongoDatabase = mongoClient.getDatabase("test");  
                System.out.println("Connect to database successfully");                
            }catch(Exception e){
                System.err.println( e.getClass().getName() + ": " + e.getMessage() );
            }
              
        }

      2)有密码

      public static void main(String[] args) {
            try {  
                //连接到MongoDB服务 如果是远程连接可以替换“localhost”为服务器所在IP地址  
                //ServerAddress()两个参数分别为 服务器地址 和 端口  
                ServerAddress serverAddress = new ServerAddress("localhost",27017);  
                List<ServerAddress> addrs = new ArrayList<ServerAddress>();  
                addrs.add(serverAddress);                
                //MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码  
                MongoCredential credential = MongoCredential.createScramSha1Credential("username", "databaseName", "password".toCharArray());  
                List<MongoCredential> credentials = new ArrayList<MongoCredential>();  
                credentials.add(credential);                
                //通过连接认证获取MongoDB连接  
                MongoClient mongoClient = new MongoClient(addrs,credentials);                
                //连接到数据库  
                MongoDatabase mongoDatabase = mongoClient.getDatabase("databaseName");  
                System.out.println("Connect to database successfully");  
            } catch (Exception e) {  
                System.err.println( e.getClass().getName() + ": " + e.getMessage() );  
            }  
        }

    5、创建集合

        public static void main(String[] args) {
            try{   
                // 连接到 mongodb 服务
                MongoClient mongoClient = new MongoClient( "localhost" , 27017 ); 
                // 连接到数据库
                MongoDatabase mongoDatabase = mongoClient.getDatabase("test");  
                System.out.println("Connect to database successfully");
                mongoDatabase.createCollection("test");
                System.out.println("集合创建成功");        
            }catch(Exception e){
                System.err.println( e.getClass().getName() + ": " + e.getMessage() );
            }
        }

    6、获取集合

        public static void main(String[] args) {
            try{   
                // 连接到 mongodb 服务
                MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
                // 连接到数据库
                MongoDatabase mongoDatabase = mongoClient.getDatabase("test");  
                System.out.println("Connect to database successfully");
                MongoCollection<Document> collection = mongoDatabase.getCollection("test");
                System.out.println("集合 test 选择成功");
            }catch(Exception e){
                System.err.println( e.getClass().getName() + ": " + e.getMessage() );
            }
        }

    7、插入文档(BSON格式)

        public static void main(String[] args) {
            try{   
                MongoClient mongoClient = new MongoClient( "localhost" , 27017 );  // 连接到 mongodb 服务
                MongoDatabase mongoDatabase = mongoClient.getDatabase("test");  // 连接到数据库
                System.out.println("Connect to database successfully");
                MongoCollection<Document> collection = mongoDatabase.getCollection("test"); //获取集合
                System.out.println("集合 test 选择成功"); 
                Document document = new Document("title", "MongoDB").append("description", "database").append("likes", 100);  //新建文档
                List<Document> documents = new ArrayList<Document>();  
                documents.add(document);  
                collection.insertMany(documents);  //添加文档(对应的BSON数据)
                System.out.println("文档插入成功");  
            }catch(Exception e){
                System.err.println( e.getClass().getName() + ": " + e.getMessage() );
            }
        }

    8、检索文档,查找对用数据

    public static void main(String[] args) {
        try{   
            MongoClient mongoClient = new MongoClient( "localhost" , 27017 );  // 连接到 mongodb 服务
            MongoDatabase mongoDatabase = mongoClient.getDatabase("test");  // 连接到数据库
            System.out.println("Connect to database successfully");
            MongoCollection<Document> collection = mongoDatabase.getCollection("test"); //获取集合
            System.out.println("集合 test 选择成功"); 
            FindIterable<Document> findIterable = collection.find();  //获取迭代器
            MongoCursor<Document> mongoCursor = findIterable.iterator();  //获取游标
            while(mongoCursor.hasNext()){  //循环获取数据
            System.out.println(mongoCursor.next());  
        }  
        }catch(Exception e){
            System.err.println( e.getClass().getName() + ": " + e.getMessage() );
        }
    }

    9、更新文档数据

    public static void main( String args[] ){
        try{   
            MongoClient mongoClient = new MongoClient( "localhost" , 27017 );  // 连接到 mongodb 服务
            MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  // 连接到数据库
            System.out.println("Connect to database successfully");
            MongoCollection<Document> collection = mongoDatabase.getCollection("test");
            System.out.println("集合 test 选择成功");
            collection.updateMany(Filters.eq("likes", 100), new Document("$set",new Document("likes",200)));  //更新文档 将文档中likes=100的文档修改为likes=200   
            FindIterable<Document> findIterable = collection.find();  //检索查看结果
            MongoCursor<Document> mongoCursor = findIterable.iterator();  
            while(mongoCursor.hasNext()){  
                System.out.println(mongoCursor.next());  
            }  
        }catch(Exception e){
            System.err.println( e.getClass().getName() + ": " + e.getMessage() );
        }
    }

    10、删除文档

    public static void main( String args[] ){
        try{   
            MongoClient mongoClient = new MongoClient( "localhost" , 27017 );  // 连接到 mongodb 服务
            MongoDatabase mongoDatabase = mongoClient.getDatabase("test");  // 连接到数据库
            System.out.println("Connect to database successfully");
            MongoCollection<Document> collection = mongoDatabase.getCollection("test");
            System.out.println("集合 test 选择成功");        
            collection.deleteOne(Filters.eq("likes", 200));  //删除符合条件的第一个文档          
            collection.deleteMany (Filters.eq("likes", 200));  //删除所有符合条件的文档  
            //检索查看结果  
            FindIterable<Document> findIterable = collection.find();  
            MongoCursor<Document> mongoCursor = findIterable.iterator();  
            while(mongoCursor.hasNext()){  
                System.out.println(mongoCursor.next());  
            }  
        }catch(Exception e){
            System.err.println( e.getClass().getName() + ": " + e.getMessage() );
        }
    }

    11、基本的操作就是这样,在实际应用过程中,可以通过一定的数据格式要求来做一些修改和添加,数据的应用可以通过Document来具体获取获取进行处理

    12、为了方便数据库的管理和学习也可以参考其他的学习方法,来实现对应的结果

    13、推荐一个学习mongoDB的网站,适合新手!老鸟略过。。。

      网址:http://www.runoob.com/mongodb/mongodb-tutorial.html

  • 相关阅读:
    线程池的爆掉
    WebApi的调用-1.前端调用
    使用SqlSugar 4.X的T4生成实体类
    JSON.NET 空值处理, 数字转字符,时间格式化
    C#获取路径
    MVC4 下DropDownList使用方法(转)
    14.并发与异步
    14.并发与异步
    14.并发与异步
    VS2013 生成时复制文件或目录到指定目录
  • 原文地址:https://www.cnblogs.com/ll409546297/p/6547485.html
Copyright © 2011-2022 走看看