mongodb--java連線資料庫實現增刪改查
1.新建一個maven專案,匯入
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.10.1</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.9</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.9</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.1</version>
</dependency>
</dependencies>
2.連線資料庫查詢所有資料表和集合程式碼:
public static void main(String[] args) throws UnknownHostException {
Mongo mongo = new Mongo("localhost", 27017);//預設可以不寫:for (String dbName : mongo.getDatabaseNames()) {
System.out.println("資料庫例項:" + dbName);
}
DB db = mongo.getDB("demo");//這個就是資料表-》use demo時建立的
for (String cName : db.getCollectionNames()) {//遍歷demo這個資料表中的集合
System.out.println("demo存在的集合:" + cName);
}
DBCollection webInfo = db.getCollection("test");
//這個是dos命令在db.test.insert()....操作時自動建立的test集合
//手動建立某個資料表的集合語法:先進入某個資料表:1.use xxx 2.db.集合名.insert(等操作)這個會建立集合
//或者直接在某個資料表中輸入命令:db.createCollection("集合名")
DBCursor dbCursor = webInfo.find();
//這個找到test集合或遍歷集合中的所有資料
while (dbCursor.hasNext()) {
System.out.println("每個文件資料為:" + dbCursor.next());
}
//或者這種遍歷集合的方法也可以
for (Iterator it = dbCursor.iterator(); it.hasNext();) {
System.out.println("每個文件資料為:" + it.next());
}
//輸出集合的個數
System.out.println("文件個數為:" + dbCursor.count());
//利用mongodb自帶的json轉化為序列化文件
System.out.println("序列化此文件"+JSON.serialize(dbCursor));
}
3.java----mongodb新增資料:
private void add(User user) throws UnknownHostException{
Mongo mongo=new Mongo();
DB db= mongo.getDB("demo");
if(db!=null){
DBCollection jihe=db.getCollection("user");
if(jihe!=null){
Gson gson=new Gson();
System.out.println(gson.toJson(user));
DBObject dbObject=(DBObject)JSON.parse(gson.toJson(user));
jihe.insert(dbObject);
}
}
System.out.println("新增成功");
}
4.java----mongodb查詢資料:
private DBObject findOne(User user) throws UnknownHostException{
Mongo mongo=new Mongo();
DB db=mongo.getDB("demo");
if(db!=null){
DBCollection dbc=db.getCollection("user");
if(dbc!=null){
Gson gson=new Gson();
DBObject dbo=(DBObject)JSON.parse(gson.toJson(user));
DBObject result=dbc.findOne(dbo);
System.out.println("查詢成功");
return result;
}
}
return null;
}
5.java---mongodb修改資料
private void update(User user1,User user) throws UnknownHostException{
Mongo mongo=new Mongo();
DB db=mongo.getDB("demo");
DBCollection dbc=db.getCollection("user");
Gson gson=new Gson();
DBObject q=(DBObject)JSON.parse(gson.toJson(user1));
DBObject o=(DBObject)JSON.parse(gson.toJson(user));
dbc.update(q, o);
System.out.println("修改成功");
}
6.java---mongodb刪除資料
private void delete(int id) throws UnknownHostException{
Mongo mongo=new Mongo();
DB db=mongo.getDB("demo");
DBCollection dbc= db.getCollection("user");
Gson gson=new Gson();
User user=new User();
user.setId(id);
DBObject dbo=(DBObject)JSON.parse(gson.toJson(user));
dbc.remove(dbo);
System.out.println("刪除成功");
}
7.java---mongodb查詢所有
private List<DBObject> findAll() throws UnknownHostException{
List<DBObject> list=new ArrayList<DBObject>();
Mongo mongo=new Mongo();
DB db=mongo.getDB("demo");
if(db!=null){
DBCollection dbc=db.getCollection("user");
if(dbc!=null){
DBCursor result=dbc.find();
while (result.hasNext()) {
list.add(result.next());
}
System.out.println("查詢成功");
return list;
}
}
return list;
}