三、Mongodb Java中的使用
添加maven依赖
<!--mongodb 驱动--> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver</artifactId> <version>3.6.4</version> </dependency> <!--mongodb Java 驱动--> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.6.4</version> </dependency> <!--单元测试支持--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>RELEASE</version> </dependency>
连接方式
/** * 无权限的连接方式 */ @Test public void noAuthConnection(){ try{ //通过连接认证获取MongoDB连接 MongoClient client = new MongoClient("127.0.0.1", 27017); // 连接到数据库: 如果指定的数据库不存在,mongo会自动创建数据库 MongoDatabase database = client.getDatabase("DEMO"); System.out.println("Mongodb connection successful..."); //创建一个集合(可以理解为创建一张表) database.createCollection("user"); }catch (Exception e){ e.printStackTrace(); } } /** * 权限认证的方式 */ @Test public void authConnection(){ try{ // 连接到 mongodb 服务 ServerAddress addr = new ServerAddress("127.0.0.1", 27017); // 设置权限认证:三个参数分别为 用户名 数据库名称 密码 MongoCredential credential = MongoCredential.createScramSha1Credential("demo", "DEMO", "demo123456".toCharArray()); //mongo的参数设置, 如最大连接、超时时间等 MongoClientOptions options = MongoClientOptions.builder().build(); //通过连接认证获取MongoDB连接 MongoClient client = new MongoClient(addr, credential, options); // 连接到数据库: 如果指定的数据库不存在,mongo会自动创建数据库 MongoDatabase database = client.getDatabase("DEMO"); System.out.println("Mongodb connection successful..."); //创建一个集合(可以理解为创建一张表) database.createCollection("user"); }catch (Exception e){ e.printStackTrace(); } } /** * 权限认证的方式2 */ @Test public void authConnectionByUri(){ try{ MongoClientURI uri = new MongoClientURI("mongodb://demo::27017/DEMO"); //通过连接认证获取MongoDB连接 MongoClient client = new MongoClient(uri); // 连接到数据库: 如果指定的数据库不存在,mongo会自动创建数据库 MongoDatabase database = client.getDatabase("DEMO"); System.out.println("Mongodb connection successful..."); //创建一个集合 database.createCollection("add_table"); }catch (Exception e){ e.printStackTrace(); } }
举几个个栗子
先封装一个简单的连接工具类
public class MongoDBJDBC { private MongoClient client; private MongoDatabase database; public MongoClient getClient(){ return this.client; } public MongoDatabase getDatabase(){ return this.database; } public MongoDBJDBC(){ try{ // 连接到 mongodb 服务 ServerAddress addr = new ServerAddress("127.0.0.1", 27017); // 设置权限认证:三个参数分别为 用户名 数据库名称 密码 MongoCredential credential = MongoCredential.createScramSha1Credential("demo", "DEMO", "demo123456".toCharArray()); //mongo的参数设置, 如最大连接、超时时间等 MongoClientOptions options = MongoClientOptions.builder().build(); //通过连接认证获取MongoDB连接 client = new MongoClient(addr, credential, options); // 连接到数据库: 如果指定的数据库不存在,mongo会自动创建数据库 database = client.getDatabase("DEMO"); System.out.println("Mongodb connection successful..."); }catch (Exception e){ throw new RuntimeException(e); } } }
添加、获取 集合
@Test public void addAndGetTable(){ MongoDBJDBC mongoDBJDBC = new MongoDBJDBC(); MongoDatabase database = mongoDBJDBC.getDatabase(); //添加集合 database.createCollection("add_table"); System.out.println("add table successful"); //获取集合 MongoCollection<Document> collection = database.getCollection("add_table"); System.out.println("get table successful"); }
添加文档
@Test public void insertData(){ MongoDBJDBC mongoDBJDBC = new MongoDBJDBC(); MongoDatabase database = mongoDBJDBC.getDatabase(); //获取集合 MongoCollection<Document> collection = database.getCollection("user"); System.out.println("get table successful"); //创建文档 Document document = new Document() .append("name", "张三") .append("age", 23) .append("sex", "男") .append("description", "this is a bad boy!"); //插入到数据库 collection.insertOne(document);//插入单条数据 List<Document> list = new ArrayList<>(); Document document1 = new Document() .append("name", "李四") .append("age", 6) .append("sex", "男") .append("description", "this is a good boy!"); Document document2 = new Document() .append("name", "赵八") .append("age", 15) .append("sex", "男") .append("description", "this is a bad boy!"); list.add(document1); list.add(document2); collection.insertMany(list);//插入多条条数据 }
检索所有文档
@Test public void findAllDoc(){ MongoDBJDBC mongoDBJDBC = new MongoDBJDBC(); MongoDatabase database = mongoDBJDBC.getDatabase(); //获取集合 MongoCollection<Document> collection = database.getCollection("user"); System.out.println("get table successful"); //执行查询 FindIterable<Document> findIterable = collection.find(); for (Document aFindIterable : findIterable) { System.out.println(aFindIterable.toString()); } }
更新文档
@Test public void updateDoc(){ MongoDBJDBC mongoDBJDBC = new MongoDBJDBC(); MongoDatabase database = mongoDBJDBC.getDatabase(); //获取集合 MongoCollection<Document> collection = database.getCollection("user"); System.out.println("get table successful"); //更新文档 将文档中name= 赵八 的文档修改为description= this is a good boy! collection.updateMany(Filters.eq("name", "赵八"), new Document("$set",new Document("description","this is a good boy!"))); }
删除文档
@Test public void delDoc(){ MongoDBJDBC mongoDBJDBC = new MongoDBJDBC(); MongoDatabase database = mongoDBJDBC.getDatabase(); //获取集合 MongoCollection<Document> collection = database.getCollection("user"); System.out.println("get table successful"); //执行删除 collection.deleteMany(Filters.eq("name", "赵八")); }
相关推荐
lbyd0 2020-11-17
BigYellow 2020-11-16
sushuanglei 2020-11-12
我心似明月 2020-11-09
sdmzhu 2020-09-01
zhushenghan 2020-11-09
sunnnyduan 2020-10-16
不要皱眉 2020-10-14
xiaohai 2020-09-29
songxiugongwang 2020-09-22
萌亖 2020-09-17
LuckyLXG 2020-09-08
mkhhxxttxs 2020-09-16
xiaohai 2020-09-16
newcome 2020-09-09
jaylong 2020-08-19
大秦铁骑 2020-08-19
thatway 2020-08-19