首先是所需jar包,Maven中的配置如下:

<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>bson</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>1.7.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.9.1</version>
</dependency>

  获取连接的代码如下(本中用的是模板类):

List<ServerAddress> addrs = new ArrayList<ServerAddress>();
addrs.add(new ServerAddress(dataSource.getSourceIp(), Integer.valueOf(dataSource.getSourcePort())));
List<MongoCredential> credentials = new ArrayList<MongoCredential>();
credentials.add(MongoCredential.createScramSha1Credential(dataSource.getUsername(), dataSource.getSourceName(), dataSource.getPassword().toCharArray()));
MongoClient mongoClient = new MongoClient(addrs, credentials);
MongoDbFactory mongoDbFactory = new SimpleMongoDbFactory(mongoClient, dataSource.getSourceName());
MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory);
mongoTemplate.getCollectionNames();

  或者用如下方式获取:

ServerAddress serverAddress = new ServerAddress("192.168.16.121",27017);
List<ServerAddress> addrs = new ArrayList<ServerAddress>();
addrs.add(serverAddress);
//MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码
MongoCredential credential = MongoCredential.createScramSha1Credential("root", "admin", "123456Ab".toCharArray());
List<MongoCredential> credentials = new ArrayList<MongoCredential>();
credentials.add(credential);
//通过连接认证获取MongoDB连接
MongoClient mongoClient = new MongoClient(addrs,credentials);
//连接到数据库
MongoDatabase mongoDatabase = mongoClient.getDatabase("admin");
mongoDatabase.getCollection("test").find().iterator();
// 关闭数据库连接
mongoClient.close();

  附带简单增删改查的例子:

package test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import org.junit.Test;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update; import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.WriteResult; import bean.Book;
import bean.Good;
import bean.ShopDO;
import net.sf.json.JSONObject; public class MongoTemplateTest {
public static MongoTemplate mongoTemplate = getMongoTemplate(); public static void main(String[] args) {
System.out.println(mongoTemplate.getCollectionNames());
} public static MongoTemplate getMongoTemplate(){
String host = "192.168.16.121";
int port = 27017;
String databaseName = "test";
String username = "root";
String password = "123456Ab"; //ServerAddress(host,port)两个参数分别为 IP地址 端口号
ServerAddress serverAddress = new ServerAddress(host,port);
List<ServerAddress> addrs = new ArrayList<ServerAddress>();
addrs.add(serverAddress); //MongoCredential.createScramSha1Credential(username,source,password)三个参数分别为 用户名 数据库名称 密码
MongoCredential credential = MongoCredential.createScramSha1Credential(username, databaseName, password.toCharArray());
List<MongoCredential> credentials = new ArrayList<MongoCredential>();
credentials.add(credential); //通过连接认证获取MongoDB连接
MongoClient mongoClient = new MongoClient(addrs,credentials);
MongoDbFactory mongoDbFactory = new SimpleMongoDbFactory(mongoClient, databaseName);
MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory); return mongoTemplate;
} /**
* 插入数据
*/
@Test
public void save(){
ShopDO shop1 = new ShopDO(100L,"菜鸟教程");
ShopDO shop2 = new ShopDO(101L,"有道笔记");
mongoTemplate.save(shop1,"col");
mongoTemplate.save(shop2,"col");
System.out.println("mongoDB插入数据成功,集合为col,文档为:"+mongoTemplate.getCollection("col"));
} @Test
public void save1(){
Book book = new Book(22L,"英语","32.5");
mongoTemplate.save(book,"col");
} @Test
public void save2(){
Good good = new Good(new HashMap<String,String>(){{put("id","1");put("name","动物");}});
mongoTemplate.save(good,"col");
} @Test
public void save3(){
mongoTemplate.save(JSONObject.fromObject("{\"这样\":\"we\",\"好吧\":\"hai\"}"),"col");
System.out.println("mongoDB插入数据成功,集合为col,文档为:"+mongoTemplate.getCollection("col"));
} /**
* 查询所有
*/
@Test
public void findAll(){
List<ShopDO> list = mongoTemplate.findAll(ShopDO.class,"col");
System.out.println("mongoDB查询数据成功,集合为col,文档为:");
for (ShopDO shopDO:list){
System.out.println(shopDO.getNo()+"/"+shopDO.getName());
}
} /**
* 单条件查询
*/
@Test
public void simpleQuery(){
Query query = Query.query(Criteria.where("no").is(100L));
List<ShopDO> list = mongoTemplate.find(query,ShopDO.class,"col");
System.out.println("mongoDB按条件ID查询数据成功,集合为col,文档为:");
for (ShopDO shopDO:list){
System.out.println(shopDO.getNo()+"/"+shopDO.getName());
}
} /**
* 多条件查询
*/
@Test
public void muchQuery(){
Criteria criteria = new Criteria();
//or是条件或查询,and是条件与查询
criteria.orOperator(
Criteria.where("no").is(100),
Criteria.where("name").is("菜鸟教程"));
Query query = new Query(criteria); //组合查询放入query
Sort sort = new Sort(new Sort.Order(Sort.Direction.DESC,"no")); //结果集进行排序
query.with(sort);
List<ShopDO> list = mongoTemplate.find(query,ShopDO.class,"col");
System.out.println("mongoDB组合查询数据成功,集合为col,文档为:");
for (ShopDO shopDO:list){
System.out.println(shopDO.getNo()+"/"+shopDO.getName());
}
} /**
* 分页查询
*/
@Test
public void LimitQuery(){
Query query = new Query();
query.skip(1).limit(3);
List<ShopDO> list = mongoTemplate.find(query,ShopDO.class,"col");
System.out.println("mongoDB分页查询下标为1开始总共3行数据,集合为col,文档为:");
for (ShopDO shopDO:list){
System.out.println(shopDO.getNo()+"/"+shopDO.getName());
}
} /**
* 模糊查询
*/
@Test
public void LikeQuery(){
Query query = new Query(Criteria.where("name").regex("菜鸟"));
List<ShopDO> list = mongoTemplate.find(query,ShopDO.class,"col");
System.out.println("mongoDB查询名称叫菜鸟的数据成功,集合为col,文档为:");
for (ShopDO shopDO:list){
System.out.println(shopDO.getNo()+"/"+shopDO.getName());
}
Update update = new Update();
update.set("name","菜鸟教程old");
WriteResult wr = mongoTemplate.updateMulti(query,update,"col");
System.out.println("mongoDB更新数据成功,集合为col,行数为:" + wr.getN());
} /**
* 更新
*/
@Test
public void update(){
Query query = new Query(Criteria.where("no").is(100));
List<ShopDO> list = mongoTemplate.find(query,ShopDO.class,"col");
System.out.println("mongoDB查询no为100的数据成功,集合为col,文档为:");
for (ShopDO shopDO:list){
System.out.println(shopDO.getNo()+"/"+shopDO.getName());
}
Update update = new Update();
update.set("name","菜鸟教程new");
WriteResult wr = mongoTemplate.updateFirst(query,update,"col");
System.out.println("mongoDB更新数据成功,集合为col,行数为:" + wr.getN());
} /**
* 删除
*/
@Test
public void delete(){
Query query = new Query(Criteria.where("no").is(1));
WriteResult result = mongoTemplate.remove(query, "col");
System.out.println("mongoDB删除数据成功,集合为col,行数为:" + result.getN() + "删除的ID为"+result.getUpsertedId());
}
}

  

Java中获取MongoDB连接的方法的更多相关文章

  1. JAVA中获取键盘输入的方法总结

    Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!下面介绍三种解决方法: 方法一: ...

  2. Java中获取文件大小的正确方法

    本文出处:http://blog.csdn.net/djy1992/article/details/51146837,转载请注明.由于本人不定期会整理相关博文,会对相应内容作出完善.因此强烈建议在原始 ...

  3. JAVA中获取工程路径的方法

    在jsp和class文件中调用的相对路径不同.在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProp ...

  4. Java中获取资源文件的方法总结

    这里总结3中方法获取资源文件的 ServletContext Class ClassLoader 文件的位置 1. ServletContext public void doGet(HttpServl ...

  5. Java中获取路径的各种方法

    1. java文件中获得路径 Thread.currentThread().getContextClassLoader().getResource("") //获得资源文件(.cl ...

  6. Java中获取键盘输入值的三种方法

    Java中获取键盘输入值的三种方法     Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值 ...

  7. java中获取日期和时间的方法总结

    1.获取当前时间,和某个时间进行比较.此时主要拿long型的时间值. 方法如下:  要使用 java.util.Date .获取当前时间的代码如下 Date date = new Date(); da ...

  8. JAVA中获取文件MD5值的四种方法

    JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...

  9. 干货 | Java中获取类名的3种方法!

    获取类名的方法 Java 中获取类名的方式主要有以下三种. getName() 返回的是虚拟机里面的class的类名表现形式. getCanonicalName() 返回的是更容易理解的类名表示. g ...

随机推荐

  1. mongo shell远程连接使用数据库

    mongo mydb --username user1 --host --password --username 用户名 --host 连接ip --port 连接端口号 --password 密码 ...

  2. node.js 和 yarn 安装

    电脑环境 windows10 专业版 64 位 node.js 安装 Node.js 官方网站下载:https://nodejs.org/en/ 之后一步步得傻瓜式安装 配置环境变量和查看node.j ...

  3. python正则子组匹配

    子组匹配返回找到的第一个匹配项 []表示匹配列表中的任意一个,返回找到的第一个 这样可以发现如果要查找字母的话可以使用[a-z],返回找到的第一个字母 查找数字使用[0-9],返回找到的第一个数字相当 ...

  4. The Reason Why Cosmetic Airless Bottles Are Widely Used

    The contents of the Cosmetic Airless Bottles    can be isolated from the air, to prevent the product ...

  5. KM算法模板 hdu 2255

    KM算法是在匹配是完备的情况下寻找最优匹配. 首先,先将范围定为最大的情况,如果最大的情况无法满足,就下降一个维度继续匹配. 直到匹配成功. #include<cstdio> #inclu ...

  6. [lua]紫猫lua教程-命令宝典-L1-01-05. if判断结构

    L1[if]01. 简单的if判断结构 没什么说得 if得基本结构如下 xxx= ) then testlib.traceprint("1-100") ) then testlib ...

  7. JVM工具使用和Linux-top命令解析

    top 命令 top 命令查看现在线程占用资料的情况. 第三行,cpu状态信息,具体属性说明如下: us — 用户空间占用CPU的百分比.(重要) sy — 内核空间占用CPU的百分比. ni — 改 ...

  8. awk函数实现将简化IPV6地址补全

    在用awk处理文本时,有些场景需要将简化的IPV6地址补充成完整的IPV6地址,下边函数可简单实现: IPV6地址补全函数 # ipv6地址补全函数 function compipv6(orig_ad ...

  9. Python 高级特性介绍 - 迭代的99种姿势 与协程

    Python 高级特性介绍 - 迭代的99种姿势 与协程 引言 写这个笔记记录一下一点点收获 测试环境版本: Python 3.7.4 (default, Sep 28 2019, 16:39:19) ...

  10. redis-start

    start CAP BASE: 基本可用 Basically Available 软状态 Soft state 最终一致 Eventually consistent Redis:REmote DIct ...