java maven项目(非spring项目)中mongodb的增删改查

mongodb-driver是mongo官方推出的java连接mongoDB的驱动包,相当于JDBC驱动。

一、数据库准备

(一)开启mongodb

如果是windows上,进入到MongoDB安装目录下bin目录(如果添加到了环境变量,直接输入即可)

打开CMD,输入mongod.exe --dbpath=你创建的data路径。回车之后,就开启了MongoDB服务端(不要关闭当前CMD。如果关闭了,就关闭了mongodb。)

mongod.exe --dbpath=E:\chushiyan

如果是服务器centos7,可参考我的博客:Docker 环境下MongoDB安装、连接

(二)连接mongodb、插入测试数据

另开一个CMD

mongo
user testdb # 创建testdb数据库
db.createCollection("user") # 创建user集合

# 插入测试数据:
db.user.insert({
_id:"1",
name:"chushiyan",
email:"chushiyan0415@163.com",
password:"123456",
});


二、创建maven工程,导入mongodb-driver依赖

<dependencies>
    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongodb-driver</artifactId>
        <version>3.6.3</version>
    </dependency>
</dependencies>

如果没使用maven,可以加入如下的jar包:

bson-3.6.3.jar
mongodb-driver-3.6.3.jar
mongodb-driver-core-3.6.3.jar

三、增删改查

1、测试增加

import com.mongodb.BasicDBObject;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * @author chushiyan
 * @email chushiyan0415@163.com
 * @description 测试
 */

public class Main {
    public static void main(String[] args) {
        // 创建连接
        MongoClient client = new MongoClient("127.0.0.1");
        // 使用默认的端口27017,如果是其他端口,可以指定:
        // MongoClient client = new MongoClient("127.0.0.1:27018");
        

        // 打开数据库
        MongoDatabase testdb = client.getDatabase("testdb");

        // 获取集合
        MongoCollection<Document> userCollection = testdb.getCollection("user");

		Map<String, Object> map = new HashMap<String, Object>();
        map.put("_id", UUID.randomUUID().toString().replace("-", ""));
        map.put("email", user.getEmail());
        map.put("password", user.getPassword());

        Document document = new Document(map);
        userCollection.insertOne(document);

        // 关闭连接
        client.close();
    }
}

2、UserDao.java

对连接数据库、获取集合的代码进行封装

import com.example.pim.domain.User;
import com.example.pim.utils.MD5Utils;
import com.mongodb.BasicDBObject;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;

import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

/**
 * @author chushiyan
 * @email chushiyan0415@163.com
 * @description 用户Dao
 */
public class UserDao {

    private static MongoCollection<Document> userCollection;

    static {
        try {
            // 连接
            MongoClient mongoClient = new MongoClient("127.0.0.1");

            // 获取db
            MongoDatabase db = mongoClient.getDatabase("testdb");

            // 获取集合
            userCollection = db.getCollection("user");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


    /**
     * 增:添加用户
     */
    public void add(User user) {
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("_id", UUID.randomUUID().toString().replace("-", ""));
        map.put("email", user.getEmail());
        map.put("name", user.getName());
        map.put("password", user.getPassword());
        Document document = new Document(map);
        userCollection.insertOne(document);
    }
    
    /**
    * 查:根据 id 查询
    */ 
    public User findUserById(String id) {

        // 构建查询条件
        BasicDBObject bson = new BasicDBObject();
        bson.append("_id", id);

        // 查询记录获取文档集合
        FindIterable<Document> documents = userCollection.find(bson);

        Document document = documents.first();

        return documentToUser(document);

    }
    
	/**
	* 查:根据邮箱密码查询用户
	*/
    public User findUserByEmailAndPassword(User user) {
        // 构建查询条件
        BasicDBObject bson = new BasicDBObject();
        bson.append("email", user.getEmail());
        bson.append("password", user.getPassword());

        // 查询记录获取文档集合
        FindIterable<Document> documents = userCollection.find(bson);
        
        Document document = documents.first();
        
        return documentToUser(document);
    }


    /**
    * 改:修改用户
    */
    public void update(User user) {

        BasicDBObject newDocument = new BasicDBObject();
        newDocument.put("name", user.getName());
		newDocument.put("password", user.getPassword());
       
        BasicDBObject updateDocument = new BasicDBObject();
        updateDocument.append("$set", newDocument);

        BasicDBObject searchQuery = new BasicDBObject().append("_id", user.get_id());

        userCollection.updateOne(searchQuery, updateDocument);
    }
    
	/**
	* 改:修改密码
	*/ 
    public void updatePassword(String _id, String newPassword) {

        BasicDBObject newDocument = new BasicDBObject();
        newDocument.put("password", newPassword);
        BasicDBObject updateDocument = new BasicDBObject();
        updateDocument.append("$set", newDocument);
        BasicDBObject searchQuery = new BasicDBObject().append("_id", _id);
        userCollection.updateOne(searchQuery, updateDocument);
    }
	
    
    private User documentToUser(Document document) {
        if (document != null) {
            User user = new User();
            user.set_id(document.getString("_id"));
            user.setEmail(document.getString("email"));
            user.setName(document.getString("name"));
            user.setPassword(document.getString("password"));
            return user;
        }
        return null;
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Maven项目,你可以通过以下步骤来实现使用JDBC驱动操作MySQL数据库的增删改查: 1. 添加MySQL JDBC驱动依赖:在项目的pom.xml文件,添加MySQL JDBC驱动的依赖。例如: ```xml <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.23</version> </dependency> </dependencies> ``` 2. 创建数据连接:在Java代码,使用JDBC连接MySQL数据库。例如: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DatabaseConnection { private static final String JDBC_URL = "jdbc:mysql://localhost:3306/mydatabase"; private static final String USERNAME = "root"; private static final String PASSWORD = "password"; public static Connection getConnection() throws SQLException { return DriverManager.getConnection(JDBC_URL, USERNAME, PASSWORD); } } ``` 3. 执行增删改查操作:使用连接对象执行SQL语句来进行数据库的增删改查操作。例如: ```java import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class DatabaseOperations { public static void insertData(String name, int age) throws SQLException { Connection connection = null; PreparedStatement statement = null; try { connection = DatabaseConnection.getConnection(); String sql = "INSERT INTO users (name, age) VALUES (?, ?)"; statement = connection.prepareStatement(sql); statement.setString(1, name); statement.setInt(2, age); statement.executeUpdate(); } finally { if (statement != null) { statement.close(); } if (connection != null) { connection.close(); } } } // 类似地,可以实现删除、更新和查询操作的方法 } ``` 这样,你就可以在Maven项目使用JDBC驱动来实现MySQL数据库的增删改查操作了。请注意,以上代码仅为示例,你需要根据自己的数据库和表结构进行适当的修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值