liujjun 发表于 2017-12-15 16:05:31

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
页: [1]
查看完整版本: mongoDB在java上面的应用