用java连接mongodb写一个账单管理系统,要求实现增加、删除、修改、查询这四样功能
时间: 2024-02-02 18:02:29 浏览: 21
好的,下面是一个简单的Java连接MongoDB实现账单管理系统的示例代码。
首先需要引入MongoDB的Java驱动包,可以通过Maven添加依赖:
```xml
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.12.7</version>
</dependency>
```
接着就可以编写Java程序连接MongoDB了:
```java
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import org.bson.Document;
import java.util.List;
import java.util.Scanner;
public class BillManagementSystem {
private static final String DB_NAME = "bill_db";
private static final String COLLECTION_NAME = "bills";
private MongoClient mongoClient;
private MongoCollection<Document> collection;
public BillManagementSystem() {
mongoClient = new MongoClient("localhost", 27017);
MongoDatabase database = mongoClient.getDatabase(DB_NAME);
collection = database.getCollection(COLLECTION_NAME);
}
public void addBill() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入账单名称:");
String name = scanner.nextLine();
System.out.println("请输入账单金额:");
double amount = scanner.nextDouble();
Document doc = new Document("name", name)
.append("amount", amount);
collection.insertOne(doc);
System.out.println("添加成功!");
}
public void deleteBill() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要删除的账单名称:");
String name = scanner.nextLine();
collection.deleteOne(Filters.eq("name", name));
System.out.println("删除成功!");
}
public void updateBill() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要修改的账单名称:");
String name = scanner.nextLine();
System.out.println("请输入修改后的账单金额:");
double amount = scanner.nextDouble();
collection.updateOne(Filters.eq("name", name), new Document("$set", new Document("amount", amount)));
System.out.println("修改成功!");
}
public void searchBill() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要查询的账单名称:");
String name = scanner.nextLine();
List<Document> results = collection.find(Filters.eq("name", name)).into(new ArrayList<>());
if (results.isEmpty()) {
System.out.println("没有找到该账单记录!");
} else {
for (Document doc : results) {
System.out.println("账单名称:" + doc.getString("name") + ",账单金额:" + doc.getDouble("amount"));
}
}
}
public void close() {
mongoClient.close();
}
public static void main(String[] args) {
BillManagementSystem system = new BillManagementSystem();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请选择操作:\n1.添加账单\n2.删除账单\n3.修改账单\n4.查询账单\n5.退出");
int choice = scanner.nextInt();
switch (choice) {
case 1:
system.addBill();
break;
case 2:
system.deleteBill();
break;
case 3:
system.updateBill();
break;
case 4:
system.searchBill();
break;
case 5:
system.close();
System.exit(0);
break;
default:
System.out.println("无效的操作!");
}
}
}
}
```
在上面的代码中,我们首先在构造函数中连接到MongoDB,并获得了一个账单集合的引用。然后实现了四个基本功能:添加账单、删除账单、修改账单和查询账单。最后在主函数中通过一个循环控制用户的操作,直到用户选择退出为止。
需要注意的是,这里没有进行任何的数据验证和处理,例如输入的金额是否合法、账单名称是否重复等等,这些处理应该根据具体的业务需求进行实现。