Java使用MongoDB数据库进行增删改查,使用密码账户操作
1、MongoDB数据库用户的创建
由于MongoDB安装默认的账户是没有密码的,是对所有ip 都开放的。我选择了新建一个用户来访问数据库,首先直接点击bin目录下的mongo.exe启动数据库
使用admin数据库,新建一个用户
use admin //使用admin数据库
db.createUser({user:"ceshi",pwd:"123456",roles:["root"]}) //新建测试用户
db.auth("ceshi","123456") //验证用户存不存在
我新建了一个测试用户,密码是123456,用户角色是root用户就是超级管理员嘛
然后使用该账户登录
[code]mongo --port 27017 -u "adminUser" -p "adminPass" --authenticationDatabase "admin"
例如:mongo --port 27017 -u "ceshi" -p "123456" --authenticationDatabase "admin"
或
[code]mongo admin -u "adminUser" -p "adminPass"
例如:mongo admin -u "ceshi" -p "123456"
使用cmd命令窗口,路径定位到mongodb目录下的bin路径,输入登录数据库的语句进行操作,可以参考下图:
2、MongoDB新建数据库和集合
新建一个test的数据库,并且新建一个user的集合id是自增的
use ceshidata //创建一个数据库ceshidata
db.createCollection("user",{capped:true,autoIndexId:true}) //新建一个集合user,_id自增
3、java使用MongoDB数据库简单教程
新建一个maven项目工程,导入mongodb相关依赖的jar
[code] <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.8.0</version> </dependency>
新建一个类MongoDBTest
[code]import com.mongodb.MongoClient; import com.mongodb.MongoCredential; import com.mongodb.ServerAddress; 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; import org.bson.Document; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class MongoDBTest { public static void main(String args[] ){ try{ //ServerAddress()两个参数分别为 服务器地址 和 端口 ServerAddress serverAddress = new ServerAddress("localhost",27017); //MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码 MongoCredential credential = MongoCredential.createScramSha1Credential("ceshi", "admin", "123456".toCharArray()); //通过连接认证获取MongoDB连接 MongoClient mongoClient = new MongoClient(Arrays.asList(serverAddress), Arrays.asList(credential)); //连接到数据库 MongoDatabase mongoDatabase = mongoClient.getDatabase("ceshidata"); System.out.println("<______________Mongodb数据库连接成功!_____________>"); create(mongoDatabase); //创建集合 add(mongoDatabase);//新增数据 find(mongoDatabase);//查看数据 update(mongoDatabase);//修改数据 delete(mongoDatabase);//删除数据 }catch(Exception e){ System.err.println("!!MongoDB数据库连接异常:" + e.getMessage() ); } } public static void create(MongoDatabase a){ try{ a.createCollection("user"); System.out.println("集合创建成功"); }catch(Exception e){ System.err.println( "!!集合创建异常:" + e.getMessage() ); } } public static void find(MongoDatabase a){ try { MongoCollection<Document> list = a.getCollection("user"); FindIterable<Document> findIterable = list.find(); MongoCursor<Document> mongoCursor = findIterable.iterator(); while (mongoCursor.hasNext()) { System.out.println("查询的数据:" + mongoCursor.next()); } }catch(Exception e){ System.err.println( "!!数据查询异常:" + e.getMessage() ); } } public static void add(MongoDatabase a) { try { //新增两个学生和教师的数据 MongoCollection<Document> collections = a.getCollection("user"); Document document1 = new Document("name", "学生"). append("age", 18). append("type", "学生"). append("likesport", "打乒乓球"); Document document2 = new Document("name", "学生"). append("age", 19). append("type", "学生"). append("likesport", "打羽毛球"); Document document3 = new Document("name", "老师"). append("age", 33). append("type", "教师"). append("likeTv", "湖南Tv"); Document document4 = new Document("name", "老师"). append("age", 30). append("type", "教师"). append("likeTv", "星空卫视"); List<Document> documents = new ArrayList<Document>(); documents.add(document1); documents.add(document2); documents.add(document3); documents.add(document4); collections.insertMany(documents); System.out.println("数据插入成功"); }catch(Exception e){ System.err.println( "!!数据新增异常:" + e.getMessage() ); } } public static void update(MongoDatabase a){ try { MongoCollection<Document> mongoCollection = a.getCollection("user"); //修改满足条件的第一条数据 mongoCollection.updateOne(Filters.eq("name", "老师"), new Document("$set", new Document("address", "深圳市福田区"))); //修改所以满足条件的数据 mongoCollection.updateMany(Filters.eq("name", "老师"), new Document("$set", new Document("likeTv", "CCTV-1"))); FindIterable<Document> findIterable = mongoCollection.find(); MongoCursor<Document> mongoCursor = findIterable.iterator(); while (mongoCursor.hasNext()) { System.out.println("更新后的数据:" + mongoCursor.next()); } }catch(Exception e){ System.err.println( "!!数据更新异常:" + e.getMessage() ); } } public static void delete(MongoDatabase a){ try { MongoCollection<Document> collection = a.getCollection("user"); //删除符合条件的第一个文档 collection.deleteOne(Filters.eq("name", "老师")); //删除所有符合条件的文档 collection.deleteMany(Filters.eq("name", "学生")); //检索查看结果 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.getMessage() ); } } }
就对于MongoDB而言如果某条数据没有某属性就不需要使用, 只需要写入有的属性,这就是nosql的好处吧。
下面就是上面的程序运行的结果,我们使用MongoDB命令新建了user集合所以使用java语言新建集合就会报异常(数据集合已经存在的异常)老师数据修改的时候可以发现第一个老师修改的时候新增了一个地址address,MongoDB中只要是相同的主键就会修改,没有就会新增,修改和删除都可以指定对第一个数据或者全部满足条件的数据操作。
《………………………………………………菜鸟起飞中,请各位走过路过的多多指教……………………………………》
- java 使用DOM对XML文档进行增删改查操作
- 使用MyEclipse对MongoDB数据库 进行增删改查操作
- java 使用DOM4J对XML文件进行增删改查操作
- java使用DOM对XML文档进行增删改查操作实例代码
- MAC下安装mysql并使用java链接进行增删改查操作(帮助自己记忆)
- java学习笔记——使用JDBC,对数据库进行增删改查(方案一)【推荐】
- 使用AES算法对文件进行加密/解密的操作(JAVA)
- 使用js模仿java的实体类对类/对象进行get操作
- 使用ODBC连接SQL Server数据库进行增删查改操作全过程
- mongodb通过java对数组元素及内嵌文档进行增删改查操作
- java 如何使用缓冲区对文件进行读写操作
- Java的jdbc使用addBatch进行批处理操作的几种方式
- java中使用JXL对Excel文件进行数据的写入、导出操作
- Java-web下使用RSA进行加密解密操作
- [Sqlite]-->Java使用jdbc连接Sqlite数据库进行各种数据操作的详细过程
- Mac OS X"想要进行更改。键入管理员的名称和密码以允许执行此操作("Mac OS X"想使用系统钥匙串)
- java使用JDBC连接mysql并且进行批量增删改操作
- 简易的java操作数据库进行增删改查
- Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询
- Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询