MongoDB教程
+ -

MongoDB Java

2019-09-09 0 0

环境配置

Java 程序中如果要使用 MongoDB,你需要确保已经安装了 Java 环境及 MongoDB JDBC 驱动。
本章节实例时候 Mongo 3.x 以上版本。
你可以参考本站的Java教程来安装Java程序。现在让我们来检测你是否安装了 MongoDB JDBC 驱动。

Java

连接数据库

连接数据库,你需要指定数据库名称,如果指定的数据库不存在,mongo会自动创建数据库。
连接数据库的Java代码如下:

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

现在,让我们来编译运行程序并连接到数据库 mycol。
你可以根据你的实际环境改变 MongoDB JDBC 驱动的路径。
本实例将 MongoDB JDBC 启动包 mongo-java-driver-3.2.2.jar 放在本地目录下:

$ javac -cp .:mongo-java-driver-3.2.2.jar MongoDBJDBC.java
$ java -cp .:mongo-java-driver-3.2.2.jar MongoDBJDBC
Connect to database successfully
Authentication: true

本实例中 Mongo 数据库无需用户名密码验证。如果你的 Mongo 需要验证用户名及密码,可以使用以下代码:

import java.util.ArrayList;  
import java.util.List;  
import com.mongodb.MongoClient;  
import com.mongodb.MongoCredential;  
import com.mongodb.ServerAddress;  
import com.mongodb.client.MongoDatabase;  
public class MongoDBJDBC {  
    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() );  
        }  
    }  
}

创建集合

我们可以使用 com.mongodb.client.MongoDatabase 类中的createCollection()来创建集合
代码片段如下:

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

编译运行以上程序,输出结果如下:

Connect to database successfully
集合创建成功

获取集合

我们可以使用com.mongodb.client.MongoDatabase类的 getCollection() 方法来获取一个集合
代码片段如下:

import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
public class MongoDBJDBC{
   public static void main( String args[] ){
      try{   
       // 连接到 mongodb 服务
         MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
         // 连接到数据库
         MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  
       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() );
     }
   }
}

编译运行以上程序,输出结果如下:

Connect to database successfully
集合 test 选择成功

插入文档

我们可以使用com.mongodb.client.MongoCollection类的 insertMany() 方法来插入一个文档

代码片段如下:

import java.util.ArrayList;
import java.util.List;
import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
public class MongoDBJDBC{
   public static void main( String args[] ){
      try{   
         // 连接到 mongodb 服务
         MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
         // 连接到数据库
         MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  
         System.out.println("Connect to database successfully");
         MongoCollection<Document> collection = mongoDatabase.getCollection("test");
         System.out.println("集合 test 选择成功");
         //插入文档  
         /** 
         * 1. 创建文档 org.bson.Document 参数为key-value的格式 
         * 2. 创建文档集合List<Document> 
         * 3. 将文档集合插入数据库集合中 mongoCollection.insertMany(List<Document>) 插入单个文档可以用 mongoCollection.insertOne(Document) 
         * */
         Document document = new Document("title", "MongoDB").  
         append("description", "database").  
         append("likes", 100).  
         append("by", "Fly");  
         List<Document> documents = new ArrayList<Document>();  
         documents.add(document);  
         collection.insertMany(documents);  
         System.out.println("文档插入成功");  
      }catch(Exception e){
         System.err.println( e.getClass().getName() + ": " + e.getMessage() );
      }
   }
}

编译运行以上程序,输出结果如下:

Connect to database successfully
集合 test 选择成功
文档插入成功

检索所有文档

我们可以使用 com.mongodb.client.MongoCollection 类中的 find() 方法来获取集合中的所有文档。
此方法返回一个游标,所以你需要遍历这个游标。

代码片段如下:

import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
public class MongoDBJDBC{
   public static void main( String args[] ){
      try{   
         // 连接到 mongodb 服务
         MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
         // 连接到数据库
         MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  
         System.out.println("Connect to database successfully");
         MongoCollection<Document> collection = mongoDatabase.getCollection("test");
         System.out.println("集合 test 选择成功");
         //检索所有文档  
         /** 
         * 1. 获取迭代器FindIterable<Document> 
         * 2. 获取游标MongoCursor<Document> 
         * 3. 通过游标遍历检索出的文档集合 
         * */  
         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() );
      }
   }
}

编译运行以上程序,输出结果如下:

Connect to database successfully
集合 test 选择成功
Document{{_id=56e65fb1fd57a86304fe2692, title=MongoDB, description=database, likes=100, by=Fly}}

更新文档

你可以使用 com.mongodb.client.MongoCollection 类中的 updateMany() 方法来更新集合中的文档。
代码片段如下:

import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
public class MongoDBJDBC{
   public static void main( String args[] ){
      try{   
         // 连接到 mongodb 服务
         MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
         // 连接到数据库
         MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  
         System.out.println("Connect to database successfully");
         MongoCollection<Document> collection = mongoDatabase.getCollection("test");
         System.out.println("集合 test 选择成功");
         //更新文档   将文档中likes=100的文档修改为likes=200   
         collection.updateMany(Filters.eq("likes", 100), new Document("$set",new Document("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() );
      }
   }
}

编译运行以上程序,输出结果如下:

Connect to database successfully
集合 test 选择成功
Document{{_id=56e65fb1fd57a86304fe2692, title=MongoDB, description=database, likes=200, by=Fly}}

删除第一个文档

要删除集合中的第一个文档,首先你需要使用com.mongodb.DBCollection类中的 findOne()方法来获取第一个文档,然后使用remove
方法删除。

代码片段如下:

import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
public class MongoDBJDBC{
   public static void main( String args[] ){
      try{   
         // 连接到 mongodb 服务
         MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
         // 连接到数据库
         MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  
         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() );
     }
   }
}

编译运行以上程序,输出结果如下:

Connect to database successfully
集合 test 选择成功

更多操作可以参考:http://mongodb.github.io/mongo-java-driver/3.0/driver/getting- started/quick-tour/
参考文档:http://blog.csdn.net/ererfei/article/details/50857103

0 篇笔记 写笔记

VueJS 计算属性(Computed)
我们已经看到了Vue实例和组件的方法。计算属性(Computed Properties)类似于方法,但与方法相比有一些区别,我们将在本章中讨论。让我们通过一个例子来了解计算属性。 VueJs Instance&...... </div> </div> <div class="RecommentList"> <div> <a class="RecommentTitle" target=_blank href="/mongodb/mongodb-covered-query.html"> MongoDB 覆盖索引查询</a> <div class="pull-right" style="color:#888;"><!--2020-11-26 00:07:17--></div> </div> <div class="Intra">官方的MongoDB的<em>文档</em>中说明,覆盖查询是以下的查询:所有的查询字段是索引的一部分所有的查询返回字段在同一个索引中由于所有出现在查询中的字段是索引的一部分, MongoDB 无需在整个数据<em>文档</em>中检索匹配查询条件和返回使用相同索引的查询结果。因为索引存在于RAM中,从索引中获取数据比通过扫描<em>文档</em>读取...... </div> </div> <div class="RecommentList"> <div> <a class="RecommentTitle" target=_blank href="/mongodb/mongodb-relationships.html"> MongoDB 关系</a> <div class="pull-right" style="color:#888;"><!--2020-11-26 00:03:59--></div> </div> <div class="Intra">MongoDB 的关系表示多个<em>文档</em>之间在逻辑上的相互联系。<em>文档</em>间可以通过嵌入和引用来建立联系。MongoDB 中的关系可以是:1:1 (1对1)1: N (1对多)N: 1 (多对1)N: N (多对多) 接下来我们来考虑下用户与用户地址的关系。一个用户可以有多个地址,所以是一对多的关系。以下是 u...... </div> </div> <div class="RecommentList"> <div> <a class="RecommentTitle" target=_blank href="/perl/perl-embedded-documentation.html"> Perl POD <em>文档</em></a> <div class="pull-right" style="color:#888;"><!--2020-12-05 13:44:32--></div> </div> <div class="Intra">Perl 中可以在模块或脚本中嵌入 POD(Plain Old Documentation) <em>文档</em>。POD 是一种简单而易用的标记型语言(置标语言)。POD <em>文档</em>使用规则:POD <em>文档</em>以 =head1 开始, =cut 结束, =head1 前与 =cut 后添加一空行。Perl 会忽略 POD 中...... </div> </div> <div class="RecommentList"> <div> <a class="RecommentTitle" target=_blank href="/mongodb/mongodb-osx-install.html"> MongoDB OSX安装</a> <div class="pull-right" style="color:#888;"><!--2020-11-25 22:39:11--></div> </div> <div class="Intra">/<em>mongo</em>db/<em>mongo</em>db-osx-install.htmlMongoDB 提供了 OSX 平台上 64 位的安装包,你可以在官网下载安装包。下载地址:https://www.<em>mongo</em>db.<em>com</em>/download-center#<em>com</em>munity从 MongoDB 3.0 版本开始只支持 ...... </div> </div> <div class="RecommentList"> <div> <a class="RecommentTitle" target=_blank href="/mongodb/mongodb-linux-install.html"> MongoDB Linux安装</a> <div class="pull-right" style="color:#888;"><!--2020-11-25 22:34:35--></div> </div> <div class="Intra">MongoDB 提供了 linux 各个发行版本 64 位的安装包,你可以在官网下载安装包。安装前我们需要安装各个 Linux 平台依赖包。Red Hat/CentOS:sudo yum install libcurl opensslUbuntu 18.04 LTS (“Bionic”)/Debia...... </div> </div> <div class="RecommentList"> <div> <a class="RecommentTitle" target=_blank href="/python3/python3-xml-process.html"> Python3 XML解析</a> <div class="pull-right" style="color:#888;"><!--2020-11-21 11:39:07--></div> </div> <div class="Intra">什么是 XML?XML 指可扩展标记语言(eX tensible M arkup Language),标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。 你可以通过本站学习 XML 教程XML 被设计用来传输和存储数据。XML 是一套定义语义标记的规则,这些标记将<em>文档</em>分成许多部...... </div> </div> <div class="RecommentList"> <div> <a class="RecommentTitle" target=_blank href="/mongodb/mongodb-intro.html"> MongoDB 简介</a> <div class="pull-right" style="color:#888;"><!--2020-11-25 19:36:20--></div> </div> <div class="Intra">什么是MongoDB ?MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个<em>文档</em>,数据结构由键值(key=>va...... </div> </div> <div class="RecommentList"> <div> <a class="RecommentTitle" target=_blank href="/java/java-documentation.html"> Java <em>文档</em>注释</a> <div class="pull-right" style="color:#888;"><!--2020-12-02 21:51:45--></div> </div> <div class="Intra">Java 支持三种注释方式。前两种分别是 // 和 / / ,第三种被称作说明注释,它以 /** 开始,以 */ 结束。说明注释允许你在程序中嵌入关于程序的信息。你可以使用 javadoc 工具软件来生成信息,并输出到HTML文件中。说明注释,使你更加方便的记录你的程序信息。javadoc 标签ja...... </div> </div> <div class="RecommentList"> <div> <a class="RecommentTitle" target=_blank href="/mongodb/mongodb-capped-collection.html"> MongoDB 固定集合</a> <div class="pull-right" style="color:#888;"><!--2020-11-26 00:16:13--></div> </div> <div class="Intra">MongoDB 固定集合(CappedCollections)是性能出色且有着固定大小的集合,对于大小固定,我们可以想象其就像一个环形队列,当集合空间用完后,再插入的元素就会覆盖最初始的头部的元素!创建固定集合我们通过createCollection来创建一个固定集合,且capped选项设置为tru...... </div> </div> <div class="RecommentList"> <div> <a class="RecommentTitle" target=_blank href="/java/java-string-compareto.html"> Java <em>com</em>pareTo() 方法</a> <div class="pull-right" style="color:#888;"><!--2020-12-02 15:12:24--></div> </div> <div class="Intra"><em>com</em>pareTo() 方法用于两种方式的比较:字符串与对象进行比较。按字典顺序比较两个字符串。语法int <em>com</em>pareTo(Object o)或int <em>com</em>pareTo(String anotherString)参数o -- 要比较的对象。anotherString -- 要比较的字符串。返回...... </div> </div> <div class="RecommentList"> <div> <a class="RecommentTitle" target=_blank href="/mongodb/mongodb-autoincrement-sequence.html"> MongoDB 自动增长</a> <div class="pull-right" style="color:#888;"><!--2020-11-26 00:16:54--></div> </div> <div class="Intra">MongoDB 没有像 SQL 一样有自动增长的功能, MongoDB 的 _id 是系统自动生成的12字节唯一标识。但在某些情况下,我们可能需要实现 ObjectId 自动增长功能。由于 MongoDB 没有实现这个功能,我们可以通过编程的方式来实现,以下我们将在 counters 集合中实现_i...... </div> </div> <div class="RecommentList"> <div> <a class="RecommentTitle" target=_blank href="/java/java-string-comparetoignorecase.html"> Java <em>com</em>pareToIgnoreCase() 方法</a> <div class="pull-right" style="color:#888;"><!--2020-12-02 15:13:02--></div> </div> <div class="Intra"><em>com</em>pareToIgnoreCase() 方法用于按字典顺序比较两个字符串,不考虑大小写。语法int <em>com</em>pareToIgnoreCase(String str)参数str -- 要比较的字符串。返回值如果参数字符串等于此字符串,则返回值 0;如果此字符串小于字符串参数,则返回一个小于 0 的值...... </div> </div> <div class="RecommentList"> <div> <a class="RecommentTitle" target=_blank href="/mongodb/mongodb-indexing-limitation.html"> MongoDB 索引限制</a> <div class="pull-right" style="color:#888;"><!--2020-11-26 00:11:47--></div> </div> <div class="Intra">额外开销每个索引占据一定的存储空间,在进行插入,更新和删除操作时也需要对索引进行操作。所以,如果你很少对集合进行读取操作,建议不使用索引。内存(RAM)使用由于索引是存储在内存(RAM)中,你应该确保该索引的大小不超过内存的限制。如果索引的大小大于内存的限制,MongoDB会删除一些索引,这将导致性...... </div> </div> <div class="RecommentList"> <div> <a class="RecommentTitle" target=_blank href="/mongodb/mongodb-connection.html"> MongoDB 连接</a> <div class="pull-right" style="color:#888;"><!--2020-11-25 22:54:58--></div> </div> <div class="Intra">在本教程我们将讨论 MongoDB 的不同连接方式。启动 MongoDB 服务在前面的教程中,我们已经讨论了如何启动 MongoDB 服务,你只需要在 MongoDB安装目录的 bin 目录下执行 <em>mongo</em>db 即可。执行启动操作后,<em>mongo</em>db 在输出一些必要信息后不会输出任何信息,之后就等待...... </div> </div> </div> </main> <div class="column right-column" style="border:0px;"> <div class="card middle"> <div class="card-header "> <a class="collapsed card-link" data-toggle="collapse" href="#">技术专栏</a> </div> <div class="collapse show"> <li class="list-inline list-group-item list-group-item-action"><a title=".NET Core教程" href="/dotnet-core/index.html">.NET Core教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="A/B测试教程" href="/ab-testing/index.html">A/B测试教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="ADO.Net教程" href="/ado-net/index.html">ADO.Net教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="AIML教程" href="/aiml/index.html">AIML教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="Ajax教程" href="/ajax/index.html">Ajax教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="ARP教程" href="/arp/index.html">ARP教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="BIOS编程教程" href="/bios/index.html">BIOS编程教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="Bochs模拟器教程" href="/bochs/index.html">Bochs模拟器教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="C#教程" href="/csharp/index.html">C#教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="C++11教程" href="/cpp11/index.html">C++11教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="C++教程" href="/cpp/index.html">C++教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="C++标准库" href="/cppstdlib/index.html">C++标准库</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="C/C++技巧" href="/ccpp-skill/index.html">C/C++技巧</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="CEF浏览器" href="/cef/index.html">CEF浏览器</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="CENTOS7教程" href="/centos7/index.html">CENTOS7教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="C语言教程" href="/c/index.html">C语言教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="dedecms5.7原代码分析" href="/dedecms/index.html">dedecms5.7原代码分析</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="Docker教程" href="/docker/index.html">Docker教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="gcc命令选项教程" href="/gcc/index.html">gcc命令选项教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="Go语言教程" href="/go/index.html">Go语言教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="H264学习资料" href="/h264/index.html">H264学习资料</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="Java教程" href="/java/index.html">Java教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="jQuery教程" href="/jquery/index.html">jQuery教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="JSON教程" href="/json/index.html">JSON教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="Libuv教程" href="/libuv/index.html">Libuv教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="Linux" href="/linux/index.html">Linux</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="Linux命令大全" href="/linuxcmd/index.html">Linux命令大全</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="Linux驱动教程" href="/linuxdriver/index.html">Linux驱动教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="Lua教程" href="/lua/index.html">Lua教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="MakeFile教程" href="/makefile/index.html">MakeFile教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="Memcached教程" href="/memcached/index.html">Memcached教程</a></li> <li class="list-inline list-group-item list-group-item-action active font-weight-bold" ><a style="color:#fff;" title="MongoDB教程" href="/mongodb/index.html">MongoDB教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="MySQL数据库" href="/mysql/index.html">MySQL数据库</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="Nasm教程" href="/nasm/index.html">Nasm教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="Nginx服务器" href="/nginx/index.html">Nginx服务器</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="ObjectiveC教程" href="/objectc/index.html">ObjectiveC教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="OsgEarth教程" href="/osgearth/index.html">OsgEarth教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="Perl" href="/perl/index.html">Perl</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="PHP教程" href="/php/index.html">PHP教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="ProtcolBuffer教程" href="/protcolbuffer/index.html">ProtcolBuffer教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="Python3教程" href="/python3/index.html">Python3教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="QT学习笔记" href="/qt/index.html">QT学习笔记</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="Redis教程" href="/redis/index.html">Redis教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="Ruby教程" href="/ruby/index.html">Ruby教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="SQLite" href="/sqlite/index.html">SQLite</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="SQL教程" href="/sql/index.html">SQL教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="UNIX/Linux教程" href="/unix/index.html">UNIX/Linux教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="VBScript教程" href="/vbscript/index.html">VBScript教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="VueJS教程" href="/vuejs/index.html">VueJS教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="Windows运维大全" href="/windows/index.html">Windows运维大全</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="XPath教程" href="/xpath/index.html">XPath教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="关于本站" href="/about/index.html">关于本站</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="批处理教程" href="/bat/index.html">批处理教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="技术笔记" href="/blog/index.html">技术笔记</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="正则表达式教程" href="/regexp/index.html">正则表达式教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="设计模式教程" href="/designpattern/index.html">设计模式教程</a></li> <li class="list-inline list-group-item list-group-item-action"><a title="高质量 C++/C 编程指南" href="/highcpp/index.html">高质量 C++/C 编程指南</a></li> </div> </div> </div> </div> <footer> <div class="maincontent text-center"> <a href="/about/about.html">关于我们</a> <a href="/about/disclaimer.html">免责声明</a> <a href="/about/connect.html">侵删联系</a> <a href="/sitemap/sitemap.xml">网站地图</a> <br>Copyright © 2021 <a href="http://www.bytekits.com">字节流 QQ群:952873936</a> <a class="d-sm-inline d-none" href="http://beian.miit.gov.cn/" target="_blank" rel="nofollow">陕ICP备19020272号-1</a> </div> </footer> <script src="/res/jquery2.1.1/jquery-2.1.1.min.js"></script> <script src="/res/bootstrap4.1.0/bootstrap.min.js"></script> <script src="/res/bootstrap-toggle/bootstrap-toggle.js"></script> <script src="/res/prettyPrint/prettify.js"></script> <script src="/res/js/main.js"></script> <script src="/res/feedback/js/jquery.feedback.js"></script> <script src="/res/feedback/js/feedback.js"></script> <script src="/res/share/jquery.share.min.js"></script> <script src="/res/js/third-www.js"></script> <script type="text/javascript" src="/res/simditor-2.3.19/scripts/module.js"></script> <script type="text/javascript" src="/res/simditor-2.3.19/scripts/hotkeys.js"></script> <script type="text/javascript" src="/res/simditor-2.3.19/scripts/uploader.js"></script> <script type="text/javascript" src="/res/simditor-2.3.19/scripts/simditor.js"></script> <script> $(function() { $("#share_code").click(function(){ $("#commentform").toggle(); }); $("#ShowNote").click(function() { $("#NoteList").toggle(); if($("#ShowNote i").hasClass("fa-minus-square")) { $("#ShowNote i").removeClass("fa-minus-square"); $("#ShowNote i").addClass("fa-square"); } else { $("#ShowNote i").removeClass("fa-square"); $("#ShowNote i").addClass("fa-minus-square"); } }); if("undefined" != typeof Simditor) { toolbar = ['title', 'bold', 'italic', 'underline', 'strikethrough', 'fontScale', 'color', '|', 'ol', 'ul', 'blockquote', 'code', 'table', '|', 'link', 'image', 'hr', '|', 'indent', 'outdent', 'alignment']; mobileToolbar = ["bold", "underline", "strikethrough", "color", "ul", "ol"]; //if (mobilecheck()) { // toolbar = mobileToolbar; //} var editor = new Simditor({ textarea: $('#editor'), placeholder: '写内容...', upload:false, defaultImage: '/res/img/comm/top-logo.png', codeLanguages: '', toolbar: toolbar }); editor.on('selectionchanged', function() { $(".code-popover").hide(); }); } var commentform=$('#commentform'); commentform.submit(function(e){ e.preventDefault(); var NoteContent = editor.getValue(); if(NoteContent.length<20) { alert("内容太短"); return; } var request = JSON.stringify({ArticleDetailId:ArticleDetailId,ArticleCommentContent:NoteContent}); $.post("/my/http.php", { action:"MakeArticleComment", request:request }, function(data,status) { console.log(data); json= JSON.parse(data); if(json.status ==0) { var NoetList=$("NoteList"); NoteContent = NoteContent.replace(/<pre><code>/g,"<pre>"); NoteContent = NoteContent.replace(/<\/code><\/pre>/g,"</pre>"); NoteContent +="<a href=\"/"+json.UserAccount+"\"/>"+json.UserNickName+"</a>"; NoteContent +=" "+json.CreateTime; console.log(NoteContent); var n=document.createElement("div"); n.innerHTML=NoteContent; NoteList.append(n); editor.setValue(''); } else { alert(json.info); } }); }); }); </script> <div id="container_drag" style="display:none;"></div> <script> var ArticleDetailId=1445; </script> <div class="fixbottom" style="overflow:hidden;" > <button type="button" class="btn btn-secondary" style="font-weight:normal" id="feedback">技术提问/意见反馈</button> </div> <div class="fixed-btn"> <a class="go-top" href="javascript:void(0)" title="返回顶部" style="display: inline-block;"> <i class="fa fa-angle-up"></i></a> <a class="writer" href="javascript:void(0)" title="标记/收藏"><i class="fa fa-star-o" id="BookMark2" aria-hidden="true"></i></a> <a class="qrcode" href="javascript:void(0)" title="关注我们"><i class="fa fa-qrcode"></i></a> <a class="dashang" href="javascript:void(0)" onclick="dashangToggle()" title="打赏,支持一下"><i class="fa fa-heart-o"></i></a> <div id="bottom-qrcode" style="display:none;"> <h6>加入QQ群</h6> <div class="panel-body"><img alt="微信关注" src="/res/img/comm//qq-qun.png"></div> </div> </div> <div class="hide_box"></div> <div class="shang_box"> <a class="shang_close" href="javascript:void(0)" onclick="dashangToggle()" title="关闭"><img src="/res/img/dashang/close.jpg" alt="取消" /></a> <div class="shang_tit">感谢您的支持,我会继续努力的!</div> <div class="shang_payimg"><img src="/res/img/dashang/alipay-img.jpg" alt="扫码支持" title="扫一扫" /></div> <div class="pay_explain">扫码打赏,你说多少就多少</div> <div class="shang_payselect"> <div class="pay_item checked" data-id="alipay"> <span class="radiobox"></span> <span class="pay_logo"><img src="/res/img/dashang/alipay-logo.jpg" alt="支付宝" /></span> </div> <div class="pay_item" data-id="wechat"> <span class="radiobox"></span> <span class="pay_logo"><img src="/res/img/dashang/wechatpay-logo.jpg" alt="微信" /></span> </div> </div> <div class="shang_info"> <p>打开<span id="shang_pay_txt">支付宝</span>扫一扫,即可进行扫码打赏哦</p> <p>您的支持,是我们前进的动力!</p> </div> </div> </script> </body> </html>