【开源Mongdb驱动】SpringBoot+Mybatis+Mongdb融合使用教程

news/2024/7/10 20:00:00 标签: 开源, spring boot, mybatis

#【开源Mongdb驱动】SpringBoot+Mybatis+Mongdb无缝融合使用教程

介绍

本文介绍一款基于JAVA开源的mongodb jdbc驱动为基础的无缝与springboot+mybatis融合使用案例

mongodb JDBC 使用案例

https://blog.csdn.net/gongbing798930123/article/details/135002530
《基于开源的JAVA mongodb jdbc 驱动 使用教程》

功能价值

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

开源地址

https://gitee.com/bgong/jdbc-mongodb-driver

代码操作指南

meavn pom文件依赖

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mongo.jdbc.example</groupId>
  <artifactId>mongo-jdbc-springboot-example</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
   <properties>
          <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
          <spring-nacos.version>2.2.8.RELEASE</spring-nacos.version>
          <gson.version>2.9.0</gson.version>
          <spring-cloud.version>2020.0.2</spring-cloud.version>
  
  </properties>
  
   <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.2</version>
        <relativePath/>
    </parent>
  
  <dependencies>
  
  <!-- 核心包  start   --->
  <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongodb-driver</artifactId>
        <version>3.11.2</version>
    </dependency>
    
      <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongodb-driver-core</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>
  
       <!-- 核心包  end   --->

     <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
            
            
             <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
  
         <!-- 热部署  -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>provided</scope>
        </dependency>
        
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>${gson.version}</version>
        </dependency>
        
          <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        </dependency>
        
         <dependency>
    		<groupId>commons-lang</groupId>
   	 		<artifactId>commons-lang</artifactId>
   	 		    <version>2.6</version>
   	 		
		</dependency>
          
          <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        
        
             <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.4</version>
           
        </dependency>
  
  
  </dependencies>
  
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
  
   <build>
        <sourceDirectory>src/main/java</sourceDirectory>
        <resources>
            <resource>
                <filtering>true</filtering>
                <directory>src/main/resources</directory>
                <excludes>
                        <exclude>**/*.properties</exclude>
                </excludes>
            </resource>
          </resources>
        <plugins>
        
       
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!--<source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>-->
                    <includeSystemScope>true</includeSystemScope>
                    <executable>true</executable>
                    <fork>true</fork>
                </configuration>
                <version>2.7.0</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>



application-dev.properties 配置


spring.datasource.driverClassName=com.mongo.jdbc.Driver
spring.datasource.url=jdbc:mongo://10.28.55.226:27017/demo_db?isSSL=false
spring.datasource.username=
spring.datasource.password=
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration,org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration
spring.datasource.initial-size=2

JDBC连接串说明

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

Dao层

package com.mongo.jdbc.example.dao;

import java.util.Map;

import org.apache.ibatis.annotations.Mapper;

import com.mongo.jdbc.example.entity.UserEntity;

/**
 * 
 * @author:binggong
 * @createtime: 2023年12月10日 下午7:18:22 
 * @version:V.0.1
 * @tag:  
 *
 */
@Mapper
public interface IUserDao {
	
	/**
	 *  写入数据
	 * @param data
	 * @throws Exception
	 */
	public void addData(UserEntity data) throws Exception;
	
	
	/**
	 *  查询数据
	 * @param dname
	 * @return
	 * @throws Exception
	 */
	public Map getData(String dname) throws Exception;

}

Mybatis Mapper文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mongo.jdbc.example.dao.IUserDao">
  
  <insert id="addData" parameterType="com.mongo.jdbc.example.entity.UserEntity">
   db.tb_user.insert({"deptno":#{deptno},"dname":#{dname},"loc":#{loc}})
  </insert>


   <select id="getData" resultType="java.util.Map" parameterType="java.lang.String">
   	db.tb_user.find({"dname":#{dname}})
  </select>


</mapper>

详细源码下载

在这里插入图片描述


http://www.niftyadmin.cn/n/5263404.html

相关文章

初学者如何入门 Generative AI 之 Stable Diffusion 与 CLIP :看两篇综述,玩几个应用感受一下先!超多高清大图,沉浸式体验

文章大纲 4种 图片生成 的算法扩散模型的起源Stable DiffusionUNetCLIP参考文献与学习路径A synthography of an astronaut riding a horse created in NightCafe Studio with Stable Diffusion XL (SDXL). Prompt is a photograph of an astronaut riding a horse with weight…

Linux(二十一)——virtualenv安装成功之后,依然提示未找到命令(-bash: virtualenv: 未找到命令)

Linux(二十一)——virtualenv安装成功之后&#xff0c;依然提示未找到命令&#xff08;-bash: virtualenv: 未找到命令&#xff09; 解决办法&#xff1a; 创建软连接 ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv

整数拼接C语言(2020年蓝桥杯试题I)

思路&#xff1a;枚举出所以可能&#xff0c;然后进行判断&#xff0c;在统计个数 #include <stdio.h> int f(int a,int b){//将两个整数拼接的函数 int num[100],i0,x;while(a){num[i]a%10;//将a拆分&#xff0c;放进数组里面 a/10;}for(xi-1;x>0;x--){bb*10num[x];…

DevOps 和人工智能 – 天作之合

如今&#xff0c;人工智能和机器学习无处不在&#xff0c;所以它们开始在 DevOps 领域崭露头角也毫不令人意外。人工智能和机器学习正在通过自动化任务改变 DevOps&#xff0c;并使各企业的软件开发生命周期更高效、更深刻和更安全。我们在 DevOps 趋势中简要讨论过这一问题&am…

【机器学习 | 基于实例学习】经典算法—KDD算法详解

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…

RHEL8_Linux下载ansible

本章内容主要介绍RHEL8中如何安装ansible ansible时如何工作的在RHEL8中安装ansible 1.ansible工作原理 如果管理的服务器很多&#xff0c;如几十台甚至几百台&#xff0c;那么就需要一个自动化管理工具了&#xff0c;ansible就是这样的一种自动化管理工具。 1&…

Kafka基础理论与常用命令详解(超详细)

文章目录 前言一、Kafka概述1. Kafka简介2. Kafka架构2.1 Broker&#xff08;代理服务器&#xff09;2.2 Topic&#xff08;主题&#xff09;2.3 Producer&#xff08;生产者&#xff09;2.4 Consumer&#xff08;消费者&#xff09;2.5 Consumer Group&#xff08;消费者组&am…

第一次数学建模赛后总结

大家好&#xff0c;这里是七七。 前些日子参加了一次数学建模比赛&#xff0c;赛后总结了一下&#xff0c;发现有很多事情是到了动手操作的时候&#xff0c;才发现问题的。总结了一下&#xff0c;有以下几点。 一、准备 在赛前准备阶段只傻傻的准备了很多学校给我们列举的数…