基于开源的JAVA mongodb jdbc 驱动 使用教程

基于开源的JAVA mongodb jdbc 驱动 使用教程介绍

介绍

本文介绍一款开源的基于JAVA的 Mongodb JDBC 驱动使用教程

开源地址

复制代码
https://gitee.com/bgong/jdbc-mongodb-driver

功能价值

  1. 与mybaits融合:复用mybatis的功能特性,如:缓存,if动态判断标签等特性
  2. 开发更加便捷: 统一dao层,使代码更具维护性,同时操作mongodb 便捷
  3. 产品融合能力: 作为底层组件,可以与BI、低代码平台等需要JDBC特性产品融合能力

基于 Mongodb jdbc+springboot+mybatis融合案例

复制代码
https://blog.csdn.net/gongbing798930123/article/details/135003268
《【开源Mongdb驱动】SpringBoot+Mybatis+Mongdb融合使用教程》

代码操作指南

meavn pom文件依赖

复制代码
 <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongodb-driver</artifactId>
        <version>3.11.2</version>
  </dependency>

<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>bson</artifactId>
    <version>3.11.2</version>
</dependency>

	<dependency>
		<groupId>com.google.code.gson</groupId>
		<artifactId>gson</artifactId>
		<version>2.8.2</version>
	</dependency>
	 
<dependency>
     <groupId>com.mongo.jdbc</groupId>
  <artifactId>jdbc-mongodb-driver</artifactId>
  <version>1.0.0</version>
      <scope>system</scope>
       <systemPath>${project.basedir}/src/main/resources/libs/mongo-connector-java-1.0.0.jar</systemPath>
</dependency>

POM文件说明
mongo-connector-java-1.0.0.jar 因为没有放到meavn的公共库里面去,所以需要在开源地址下载里面对应的驱动包放在项目里面或者本地meavn仓库中。

操作代码

复制代码
package com.mongo.jdbc.example;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

/**
 * 
 * @author:binggong
 * @createtime: 2023年12月10日 下午2:35:47 
 * @version:V.0.1
 * @tag:  mongodb jdbc 操作
 *
 */
public class JdbcMongoCommandExample {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
			
			Class.forName("com.mongo.jdbc.Driver");
			
			/**
			 *  连接方案1
			 */
//			Properties properties = new Properties();
//			properties.put("user", "");
//			properties.put("password", "");
//			properties.put("address", "localhost:27017");
//			properties.put("dbname","demo_db");
//			properties.put("isSSL","false");
//			Connection conn = DriverManager.getConnection("", properties);
			
			
			/**
			 *  连接方案2
			 *  jdbc:mongo://localhost:27017/db_name?isSSL=false
			 */
			String jdbcUrl ="jdbc:mongo://localhost:27017/demo_db?isSSL=false";
			
			Connection conn = DriverManager.getConnection(jdbcUrl, null, null);
			 
			//写入操作
			String insertScript= "db.tb_user.insert({\"deptno\":?,\"dname\":?,\"loc\":?});";	
			PreparedStatement ps = conn.prepareStatement(insertScript);
			ps.setInt(1, 1);
			ps.setString(2, "数据中台部");
			ps.setString(3, "湖北武汉");
			
			ps.execute();
			
			
			//查询数据
			String queryScript = "db.tb_user.find()";
			
			 ps = conn.prepareStatement(queryScript);

			 ResultSet rs = ps.executeQuery();
			 
			 while(rs.next()) {
				String _id = rs.getString("_id");
				String deptno = rs.getString("deptno");
				String dname = rs.getString("dname");
				String loc = rs.getString("dname");
				
				System.out.println("_id:"+_id+"|deptno:"+deptno+"|dname:"+dname+"|loc:"+loc);

			 }
			 
			 //删除数据
			 String deleteScript = "db.tb_user.deleteMany({'loc':?})";
				
			 ps = conn.prepareStatement(deleteScript);
			 ps.setString(1, "湖北武汉");
				
			ps.execute();
			
			ps.close();
			
			
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		

	}

}

JDBC连接串说明

复制代码
例如:jdbc:mongo://localhost:27017/db_name?isSSL=false
jdbc:mongo://为固定标示,标示为mongodb jdbc 驱动连接串
localhost:27017 :连接的主机和短裤
db_name :为数据库名称
isSSL=false :mongodb连接配置参数,如有多配置参加可以在后面用&keyxx=valuex 追加

案例代码下载

相关推荐
NE_STOP43 分钟前
MyBatis-plus进阶之映射与条件构造器
java
ssshooter1 小时前
告别 Chat Completions:深度解析 AI 接口新标准 `/v1/responses`
人工智能·后端·开源
阿懂在掘金1 小时前
早点下班(Vue2.7版):旧项目也能少写 40%+ 异步代码
前端·vue.js·开源
Seven973 小时前
NIO的零拷贝如何实现高效数据传输?
java
冬奇Lab15 小时前
一天一个开源项目(第46篇):Caddy - 自动 HTTPS 的现代化 Web 服务器,支持 HTTP/3
网络协议·nginx·开源
架构师沉默18 小时前
别又牛逼了!AI 写 Java 代码真的行吗?
java·后端·架构
IvorySQL19 小时前
PostgreSQL 技术日报 (3月10日)|IIoT 性能瓶颈与内核优化新讨论
数据库·postgresql·开源
非优秀程序员19 小时前
OpenClaw 2026 最新功能全解析:Gemini、PDF 原生到安全强化完整拆解
人工智能·开源·产品经理
非优秀程序员20 小时前
OpenClaw 教学:25 个工具 + 53 个技能完整指南
人工智能·开源·全栈
SkyWalking中文站21 小时前
在成熟开源大型项目中实践 Agentic Vibe Coding:软件工程与工程控制论还在延续
开源·vibecoding