Java如何实现手动连接数据库(Mysql或Oracle) | 超级详细,建议收藏

news2024/9/25 21:24:58

👨‍🎓作者:bug菌
✏️博客: CSDN、 掘金、 infoQ、 51CTO等
🎉简介:CSDN博客专家,C站历届博客之星Top50,掘金/InfoQ/51CTO等社区优质创作者,全网粉丝合计10w+,对一切技术感兴趣,重心偏Java方向;硬核公众号「 猿圈奇妙屋」,欢迎小伙伴们的加入,一起秃头,一起变强。
..
✍️温馨提醒:本文字数:1999字, 阅读完需:约 5 分钟

        嗨,家人们,我是bug菌呀,我又来啦。今天我们来聊点什么咧,OK,接着为大家更《springboot零基础入门教学》系列文章吧。希望能帮助更多的初学者们快速入门!

        如果小伙伴们在批阅文章的过程中觉得文章对自己有帮助,请别吝啬手中的赞呀,大胆的把文章 点亮👍,相信你点赞了好的文章,平台也会经常给你推荐高质量好文,您的点赞三连(收藏+关注+留言)就是对bug菌写文道路上最好的鼓励与支持😘。时光不弃🏃🏻‍♀️,创作不停💕,加油☘️

一、前言🔥

环境说明:Windows10 + Idea2021.3.2 + Jdk1.8 + SpringBoot 2.3.1.RELEASE

        突然接到这么个需求,在数据清洗模块中,有对接第三方业务系统,而第三方业务系统所使用到的数据库是多个的,而且还不确定具体数据库数量,所以就产生了一个问题,既然要去拿第三方的数据库数据,采用配置的方式,肯定是无济于事,解决不了根本性问题,所以这就产生了一个概念,代码手动连接库的方法,继而获取库表信息及数据。

        这样,这个问题于是就解决了。

        所以接下来,我们要讲的内容,就是如何实现手动连接数据库呢?比如mysql或者oracle为例,给大家进行演示。

三、正文 🔥

1、概念

        自从接触了springboot框架,我们就渐渐淡忘了连接数据库的底层原理,原先在玩springmvc那一套的时候,其实最开始,就是手动配置数据库连接方式来进行手动连接的。

然后现在我们通常就是直接在.yaml或者.properties文件中配置。

然后今天,我就带着大家重新捡起以前的玩法。其实你了解它的原理,就很简单的。

2、代码实现

        如下就是完整的手动连接数据库的实现,你们可以借鉴一下,我尽量把注释都写全。

    /**
     * 手动连接数据库
     *
     * @param url
     * @param userName
     * @param passWord
     * @param driverClass
     */
    public Connection getConn(String url, String userName, String passWord, String driverClass) {

        //声明数据库连接对象
        Connection conn = null;
        try {
            //加载驱动
            Class.forName(driverClass);
            //初始化数据库连接,获取连接对象
            conn = DriverManager.getConnection(url, userName, passWord);
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("获得数据库连接出错");
        }
        return conn;
    }

3、功能测试

        接下来,我就给大家做个演示,以mysql为例:


接着,我们是可以看到,Connection已经成功取到了数据库连接信息。

        如上,手动连接数据库的方式就写好了。剩下的你就可以指定表名,进行sql查询啦。

如下是mysql连接信息。 

{
	"dbUrl": "jdbc:mysql://127.0.0.1:3306/springboot_db?serverTimezone=GMT%2B8",
	"userName": "root",
	"passWord": "123456",
	"driverClass": "com.mysql.cj.jdbc.Driver",
}

        另外,对于oracle数据库,连接信息入参也会有所不同,但上方封装的方法是不需要改动的,适配所有关系型数据库。比如oracle的连接信息:

{
	"dbUrl": "jdbc:oracle:thin:@127.0.0.1:3306:springboot_db",
	"userName": "root",
	"passWord": "123456",
	"driverClass": "oracle.jdbc.driver.OracleDriver",
}

... ...

        ok,以上就是我这期的全部内容啦,如果还想学习更多,可以看看我的往期热文推荐哦,不积跬步,无以至千里; 不积小流,无以成江海,一口吃不成一个大胖子,加油!咱们下期拜拜~~

三、往期推荐🔥

  • springboot系列(一):如何创建springboot项目及启动
  • springboot系列(二):yaml、properties两配置文件介绍及使用
  • springboot系列(三):多环境切换,实例演示
  • springboot系列(四):stater入门
  • springboot系列(五):史上最最最全springboot常用注解
  • springboot系列(六):mysql配置及数据库查询
  • springboot系列(七):如何通过mybatis-plus实现接口增删改查
  • springboot系列(八):mybatis-plus之条件构造器使用手册
  • springboot系列(九):mybatis-plus之如何自定义sql
  • springboot系列(十):mybatis之xml映射文件>、<=等特殊符号写法
  • springboot系列(十一):实现多数据源配置,开箱即用
  • springboot系列(十二):如何实现邮件发送提醒,你一定得会(准备篇)
  • springboot系列(十三):如何实现发送普通邮件?你一定得会
  • springboot系列(十四):如何实现发送图片、doc文档等附件邮件?你一定得会
  • springboot系列(十五):如何实现静态邮件模板发送?你一定得会
  • springboot系列(十六):如何实现发送邮件提醒,附完整源码
  • springboot系列(十七):集成在线接口文档Swagger2
  • springboot系列(十八):如何Windows安装redis?你玩过么
  • springboot系列(十九):如何集成redis?不会我教你
  • springboot系列(二十):如何通过redis实现手机号验证码功能 
  • ... ...

文末🔥

        安利一个超牛超硬核的专栏《springboot零基础入门教学》,此专栏包含数个完整项目从零到一的搭建及全代码实现(源码附有),对SpringBoot架构深入使用及对框架源码进行剖析加深理解。活动秒杀价9.9,火热🔥订阅中,活动结束后恢复原价99,早买不会亏,投资自己学习性价比最高。

我是bug菌,一名想走👣出大山改变命运的程序猿。接下来的路还很长,都等待着我们去突破、去挑战。来吧,小伙伴们,我们一起加油!未来皆可期,fighting!

感谢认真读完我博客的铁子萌,在这里呢送给大家一句话,不管你是在职还是在读,绝对终身受用。
时刻警醒自己:
抱怨没有用,一切靠自己;
想要过更好的生活,那就要逼着自己变的更强,生活加油!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/696170.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ant design vue 配置菜单外部打开

实现如下 菜单配置 前端项目地址:http://localhost:3000 菜单路径:dataCenter/HealthData 打开方式:外部 在项目中src-->config-->router.config.js文件 将需要再外部打开的菜单地址进行如下配置 菜单地址:/dataCenter/Hea…

软件测试面试题(完整版)

1、B/S架构和C/S架构区别 B/S 只需要有操作系统和浏览器就行,可以实现跨平台,客户端零维护,维护成本低,但是个性化能力低,响应速度较慢 C/S响应速度快,安全性强,一般应用于局域网中&#xff0c…

力姆泰克LBP滚珠丝杠电动推杆

LBP滚珠丝杠电动推杆 内含长寿命润滑脂,免维护 向下翻动查看更多 力姆泰克电动推杆 高强度/高耐磨材料选择,高精度的零部件加工,先进的壳体设计理念,造就高承载能力,抗冲击,低噪音,长寿命的优…

【AUTOSAR】BMS开发实际项目讲解(八)----BMS热管理冷却功能

热管理参数 项目 模式 BEV 进入条件(℃) 退出条件(℃) 目标水温(℃) 目标流速(L/min) 冷却 一级冷却 行车 T1_in35 T1_out28 20 20 快充 T1_in30 T1_out…

Vue3 刨析响应式 ref 原理

目标 了解 Vue ,手写一个方法,实现响应式,并读懂响应式 源码 class MyRef {constructor(value) {this._value value}// 访问器get value() {console.log(触发 getter 函数 访问);return this._value}// 读取器set value(newVal) {console.l…

微电网数字化系统硬件设备在储能行业中的应用

安科瑞虞佳豪 1如果说火爆的储能行业堪比新能源赛道上的皇冠,那么工商业储能就是皇冠上的明珠。 提及储能,人们习惯更多地关注源网侧储能电站(大储)身上,探讨发电侧配储、利用率、共享储能模式等话题,但其…

不一般!R型变压器直流电阻和绝缘电阻背后的秘密原来是这样!

一般来说,除了技术人员之外,我们可能不太清楚变压器的一些内部电阻,比如什么是R型变压器的直流电阻?事实上,这些都是变压器参数中的一些重要信息,通常与变压器的质量和使用有关。让我们和小r一起来看看什么…

AR项目问题汇总

1、unity使用URP 导致ARFoundation黑屏 (16条消息) unity使用URP 导致ARFoundation黑屏_arfoundation运行iphone黑屏_weixin_46813963的博客-CSDN博客https://blog.csdn.net/weixin_46813963/article/details/117509322Configuring the AR Camera background using a Scriptab…

Android Studio中App Inspection 或Profiler里网络请求数据显示中文乱码解决办法

如题,在Android开发时经常需要网络请求分析,但是Response 里面的中文经常乱码,用如下办法可解决 效果如下: 解决办法 Android studio在 Help中找到Edit Custom VM Options… 并打开文件,在文件中添加 -Dfile.encod…

记录一次 vite 配置别名路径 打包时出错的bug

vite多页应用,由于在vite.config.ts中define中配置的常量pages,而路径别名也有pages,所有导致打包时替换路径出错,将pages常量注释掉就好了 export default defineConfig({root: getRoot(), // 项目根路径base: "/", // 公共基础路径envDir: resolve(__dirname), /…

SpringBoot03:yaml配置注入

目录 一、yaml语法学习 1、配置文件 2、yaml概述 3、yaml基础语法 3.1、字面量:普通的值【数字、布尔值、字符串】 3.2、对象、Map(键值对) 3.3、行内写法: 3.4、数组(list、set) 二、注入配置文件 1、yaml注入配置文件…

selenium\webdriver\remote\errorhandler.py:242: SessionNotCreatedException问题解决

报错信息: raise exception_class(message, screen, stacktrace) E selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 112 E Current browser versi…

超强,Pytest自动化测试框架 fixture 传参实战(案例)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 为了提高复用性&a…

企业邮箱如何设置分级管理员

给邮局设置成员后,有的时候会分为多个分组,那么就需要设置分级管理员,分级管理员可以管理所属部门或群组的成员,为企业邮局的管理提供了更多的便利。设置方法如下: 例:我们要将销售分公司的高阳&#xff0…

MAYA粒子粘性

粒子被挡下来了

SpringBoot使用post方式上传文件

文章目录 SpringBoot使用post方式上传文件1.上传文件代码2.postman测试 SpringBoot使用post方式上传文件 1.上传文件代码 PostMapping("/upload/v1")public ResponseMsg<Map<String,Object>> fileUpload(RequestParam("file") MultipartFile …

java中对象的比较详解

一、问题背景 我们先来看这样一个背景&#xff0c;如果有一个学生类&#xff0c;成员属性有姓名name(String),年龄age(int),分数score(double). public class Test {class student{String name;int age;double score;public student(String name, int age, double score) {th…

【ubuntu】设置国内镜像源

ubuntu清华镜像源 备份 sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak 新建 sudo touch /etc/apt/sources.list sudo vi /etc/apt/sources.list 添加内容 # 默认注释了源码镜像以提高 apt update 速度&#xff0c;如有需要可自行取消注释 deb https://mirrors.tuna…

想不想知道智能配音怎么弄

配音是一种将人的声音与影像相结合的技术&#xff0c;可以为电影、动画、广告等视频内容提供声音和情感上的支持。当观众看到画面中的角色在说话时&#xff0c;如果有配音&#xff0c;则更容易进入故事情节并深入参与其中。对于一些需要讲述复杂信息的内容&#xff0c;通过配音…

Redis实战案例7-缓存雪崩及其解决思路

1. 缓存雪崩 如果缓存集中在一段时间内失效或者Redis服务宕机&#xff0c;所有的查询都落在数据库上&#xff0c;造成了缓存雪崩。 2. 解决思路 给不同的key的TTL添加随机值 在缓存的时候给过期时间加上一个随机值&#xff0c;这样就会大幅度的减少缓存在同一时间过期。 利用R…