Home Database Mysql Tutorial [MongoDB学习日志]Java对MongoDB的CRUD操作

[MongoDB学习日志]Java对MongoDB的CRUD操作

Jun 07, 2016 pm 05:37 PM
java jdbc mongodb

说起Java操作数据库自然会想到Sun的知名品牌JDBC,对于MongoDB这样的NoSQL数据库,暂时没有像JDBC这样的标准。这篇文章中对目前的形势做了分析和憧憬http://www.

  说起Java操作数据库自然会想到Sun的知名品牌JDBC,,对于MongoDB这样的NoSQL数据库,暂时没有像JDBC这样的标准。

  这篇文章中对目前的形势做了分析和憧憬


  回到正题记录下熟悉MongoDB为Java语言提供的操作接口mongo-java-driver.jar


  1.基本的根基不变,连接数据库

  2.基本的数据库操作不变,CRUD

  3.变化的是提供的接口,实现类名,操作对象大不相同

  4.变化的是没有标准的Java操作MongoDB的标准API


  MongoDB提供的Java操作API可以说是对Mongo数据库命令的Java翻译,熟悉Mongo命令,熟悉Java操作数据库的基本思路,很容易掌握基本操作。


  •   数据库连接

    package com.im; public final class SystemConstant { public static final class Configure { public static final String HOST = "127.0.0.1"; public static final int PORT = 27017; public static final String USERNAME = ""; public static final String PASSWORD = ""; public static final String DATABASE = "im"; } }package com.im; import java.net.UnknownHostException; import com.mongodb.Mongo; import com.mongodb.MongoException; public class MongoFactory { private static MongoFactory mongoFactory; private MongoFactory() { } public static MongoFactory getInstance() { if (mongoFactory == null) { mongoFactory = new MongoFactory(); } return mongoFactory; } public Mongo getMongo() { Mongo mongo = null; try { mongo = new Mongo(SystemConstant.Configure.HOST, SystemConstant.Configure.PORT); } catch (UnknownHostException e) { e.printStackTrace(); } catch (MongoException e) { e.printStackTrace(); } return mongo; } }

  •       数据库链接少不了的主机名,端口号,数据库名称。上面代码中的Mongo对象就相当与Connection对象。


  • 数据库的操作

    下面的每个方法代表一个方面的测试

    测试类初始化方法:

    private static BaseDao dao; @BeforeClass public static void start() { dao = new BaseDao("users","uf"); }

    关于BaseDao是对Mongo操作数据库的基本常用的方法做了封装的一个DAO对象,代码会在本文末尾附上。


  •     插入:


    // 添加一条记录 public void test1() { BasicDBObject jo = new BasicDBObject(); jo.put("_id", "00001"); jo.put("name", "Tomcat"); jo.put("age", 22); jo.put("interest", new String[] { "swimming", "Taiji", "football" }); int actual = dao.insert(jo); System.out.println(actual); Assert.assertEquals(1, actual); }


    // 添加多条记录 public void test2() { int actual = 0; int size = 0; for (int i = 2; i


       BasicDBObject对象是Mongo的BSONObject的基本实现类,而BSONObject对象正是Key-Value的形式的Map保存到数据库中。

       基本的查询(主键查询,查询集合,条件查询)

    // 查询指定编号的记录 public void test3() { BasicDBObject query = new BasicDBObject(); query.put("_id", "00001"); List dboList = dao.query(query); System.out.println(dboList.get(0).toString()); Assert.assertEquals(1, dboList.size()); } // 模糊查询,统计记录结果数量 public void test4() { BasicDBObject query = new BasicDBObject(); query.put("interest", new String[] { "swimming", "Taiji" }); long count = dao.getCount(query); Assert.assertEquals(9, count); } // 模块查询,查询结果集合 public void test5() { BasicDBObject query = new BasicDBObject(); query.put("interest", new String[] { "swimming", "Taiji" }); List dboList = dao.query(query); for (DBObject jo : dboList) { System.out.println(jo.toString()); } Assert.assertEquals(9, dboList.size()); }

      下面是插入数据后的数据库的数据情况,图中数据是各种测试后的数据,不完全对于每个方法的操作后数据库情况。

    更新操作

         Mongo更新操作要准备两个BasicDBObject对象,一个是要更新的对象,另一个是更新后的对象。

    // 更新指定记录的信息 public void test6() { BasicDBObject query = new BasicDBObject(); query.put("_id", "00001"); BasicDBObject jo = new BasicDBObject(); jo.put("_id", "00001"); jo.put("name", "Jackson"); jo.put("interest", new String[] { "Song", "Taiji", "Running" }); jo.put("firends", new BasicDBObject[] { (BasicDBObject) dao.query( new BasicDBObject("_id", "00002")).get(0), (BasicDBObject) dao.query( new BasicDBObject("_id", "00002")).get(0) }); int actual = dao.update(query, jo); Assert.assertEquals(1, actual); }

    删除操作

    // 删除指定记录 public void test7() { BasicDBObject query = new BasicDBObject(); query.put("_id", "000010"); dao.delete(query); List dboList = dao.query(query); Assert.assertEquals(0, dboList.size()); }


      Mongo删除比较容易,指定一个BasicDBObject作为匹配条件,将删除匹配的所有记录(文档对象)。

    多条件查询

    Statement of this Website
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

    Hot AI Tools

    Undresser.AI Undress

    Undresser.AI Undress

    AI-powered app for creating realistic nude photos

    AI Clothes Remover

    AI Clothes Remover

    Online AI tool for removing clothes from photos.

    Undress AI Tool

    Undress AI Tool

    Undress images for free

    Clothoff.io

    Clothoff.io

    AI clothes remover

    Video Face Swap

    Video Face Swap

    Swap faces in any video effortlessly with our completely free AI face swap tool!

    Hot Tools

    Notepad++7.3.1

    Notepad++7.3.1

    Easy-to-use and free code editor

    SublimeText3 Chinese version

    SublimeText3 Chinese version

    Chinese version, very easy to use

    Zend Studio 13.0.1

    Zend Studio 13.0.1

    Powerful PHP integrated development environment

    Dreamweaver CS6

    Dreamweaver CS6

    Visual web development tools

    SublimeText3 Mac version

    SublimeText3 Mac version

    God-level code editing software (SublimeText3)

    PHP: A Key Language for Web Development PHP: A Key Language for Web Development Apr 13, 2025 am 12:08 AM

    PHP is a scripting language widely used on the server side, especially suitable for web development. 1.PHP can embed HTML, process HTTP requests and responses, and supports a variety of databases. 2.PHP is used to generate dynamic web content, process form data, access databases, etc., with strong community support and open source resources. 3. PHP is an interpreted language, and the execution process includes lexical analysis, grammatical analysis, compilation and execution. 4.PHP can be combined with MySQL for advanced applications such as user registration systems. 5. When debugging PHP, you can use functions such as error_reporting() and var_dump(). 6. Optimize PHP code to use caching mechanisms, optimize database queries and use built-in functions. 7

    PHP vs. Other Languages: A Comparison PHP vs. Other Languages: A Comparison Apr 13, 2025 am 12:19 AM

    PHP is suitable for web development, especially in rapid development and processing dynamic content, but is not good at data science and enterprise-level applications. Compared with Python, PHP has more advantages in web development, but is not as good as Python in the field of data science; compared with Java, PHP performs worse in enterprise-level applications, but is more flexible in web development; compared with JavaScript, PHP is more concise in back-end development, but is not as good as JavaScript in front-end development.

    PHP vs. Python: Core Features and Functionality PHP vs. Python: Core Features and Functionality Apr 13, 2025 am 12:16 AM

    PHP and Python each have their own advantages and are suitable for different scenarios. 1.PHP is suitable for web development and provides built-in web servers and rich function libraries. 2. Python is suitable for data science and machine learning, with concise syntax and a powerful standard library. When choosing, it should be decided based on project requirements.

    PHP: The Foundation of Many Websites PHP: The Foundation of Many Websites Apr 13, 2025 am 12:07 AM

    The reasons why PHP is the preferred technology stack for many websites include its ease of use, strong community support, and widespread use. 1) Easy to learn and use, suitable for beginners. 2) Have a huge developer community and rich resources. 3) Widely used in WordPress, Drupal and other platforms. 4) Integrate tightly with web servers to simplify development deployment.

    Use Composer to solve the dilemma of recommendation systems: andres-montanez/recommendations-bundle Use Composer to solve the dilemma of recommendation systems: andres-montanez/recommendations-bundle Apr 18, 2025 am 11:48 AM

    When developing an e-commerce website, I encountered a difficult problem: how to provide users with personalized product recommendations. Initially, I tried some simple recommendation algorithms, but the results were not ideal, and user satisfaction was also affected. In order to improve the accuracy and efficiency of the recommendation system, I decided to adopt a more professional solution. Finally, I installed andres-montanez/recommendations-bundle through Composer, which not only solved my problem, but also greatly improved the performance of the recommendation system. You can learn composer through the following address:

    PHP's Impact: Web Development and Beyond PHP's Impact: Web Development and Beyond Apr 18, 2025 am 12:10 AM

    PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

    PHP vs. Python: Use Cases and Applications PHP vs. Python: Use Cases and Applications Apr 17, 2025 am 12:23 AM

    PHP is suitable for web development and content management systems, and Python is suitable for data science, machine learning and automation scripts. 1.PHP performs well in building fast and scalable websites and applications and is commonly used in CMS such as WordPress. 2. Python has performed outstandingly in the fields of data science and machine learning, with rich libraries such as NumPy and TensorFlow.

    What is the CentOS MongoDB backup strategy? What is the CentOS MongoDB backup strategy? Apr 14, 2025 pm 04:51 PM

    Detailed explanation of MongoDB efficient backup strategy under CentOS system This article will introduce in detail the various strategies for implementing MongoDB backup on CentOS system to ensure data security and business continuity. We will cover manual backups, timed backups, automated script backups, and backup methods in Docker container environments, and provide best practices for backup file management. Manual backup: Use the mongodump command to perform manual full backup, for example: mongodump-hlocalhost:27017-u username-p password-d database name-o/backup directory This command will export the data and metadata of the specified database to the specified backup directory.

    See all articles