Java和Python各自链接MySQL的方法(1)

文末有福利领取哦~

👉一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。img

👉二、Python必备开发工具

img
👉三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
img

👉 四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
img

👉五、Python练习题

检查学习结果。
img

👉六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
img

img

👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

📒博客首页:*铁甲小宝同学*

🎅文章目的:Python和Java对MySQL的链接😻

🙏博主也在学习阶段,如若发现问题,请告知,非常感谢🙏

💗同时也非常感谢各位小伙伴们的支持💗

🌈每日一语:心猿意马,易放难收!

文章目录

  • Java和Python各自链接MySQL的方法

    • 前言:
  • Java数据库的链接

    • 环境配置
  • 代码实现

    • 1.Driver的链接
  • 2.DriverManager的链接

  • Python数据库的链接

    • 环境配置
  • 代码实现

前言:


如今在座的各位应该都是用过APP,网站等这些客户端吧。

如今大部分的客户端都是由三层模型组成——客户端,中间层,数据库。我们可以通过下图能更加清晰的了解这个结构。

在这里插入图片描述

一般我们使用一些网站查询我们想要的东西,这个流程大概就是通过客户端发送请求到服务器,再由服务器传回数据到客户端。然后我们就能得到我们所需要的数据。

通常我们得到的数据都是存储在数据库中的,我们有没有想过服务器是怎么获取的数据呢???

首先服务器得到请求后他会先给后端发送一个请求,然后再由后端来获取数据返回给服务器,服务器在传送到客户端。

在来问一下大家,后端是怎么得到数据库里面的数据呢???

这个也就是我们今天所要给大家讲的JDBC——使用后端语言链接数据库!!!

Java数据库的链接


环境配置

使用工具:

IDEA,MySQL-8.0,MySQL驱动(mysql-connector-java-8.0.27)等。

MySQL驱动的下载:

首先打开MySQL官网按照下图所示步骤下载和安装!

在这里插入图片描述

紧接着滑动页面到最下端。

在这里插入图片描述

打开后是这样的界面:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

小伙伴们按照以上的方法下载安装即可。

注:因为MySQL官网页面会不断的更新,一些小伙伴可能找不到,大家只要记住找到倒数第三张图片上面的那个版本驱动即可下载!

MySQL驱动的配置:

首先我们需要在我们的IDEA里面新建一个项目,然后我们在src的同级目录下创建一个lib文件夹,将我们下载好的MySQL驱动解压到lib下面即可。

[^注意:在lib文件夹下面的文件是 jar类型的,并不是zip类型的文件!!!]:

在这里插入图片描述

当驱动放在指定位置后我们再在IDEA里面找到MySQL驱动,按照下图步骤慢慢完善即可:

在这里插入图片描述

在这里插入图片描述

点击即可!!!

到这里Java MySQL的驱动基本上算是配置好了,接下来就是要进行使用Java代码链接MySQL数据库了!!!

代码实现

在Java中有两个API可以链接数据库,分别是:DriverDriverManager

1.Driver的链接

首先创建驱动对象:

Driver driver = new com.mysql.cj.jdbc.Driver();

使用driver进行链接:

Connection conn = driver.connect(url,info);

完整代码:

public static void main(String[] args) throws SQLException {

Driver driver = new com.mysql.cj.jdbc.Driver();

String url = “jdbc:mysql://localhost:3306/数据库表名”;

Properties info = new Properties();

info.setProperty(“user”,“root”);

info.setProperty(“password”,“数据库密码”);

Connection conn = driver.connect(url,info);

System.out.println(conn);

}

运行结果:com.mysql.cj.jdbc.ConnectionImpxxxxxxx,表示成功运行!!!

2.DriverManager的链接

Driver一样创建驱动:

Driver driver = new com.mysql.cj.jdbc.Driver();

数据库的注册:

DriverManager.registerDriver(driver);//进行数据库注册

我们选用DriverManager三种链接方法里面的其中一个比较简单的连接方法:

Connection conn = DriverManager.getConnection(url,user,password);

完整代码:

public static Connection getConnection() throws Exception{

Driver driver = new com.mysql.cj.jdbc.Driver();

String url = “jdbc:mysql://localhost:3306/数据库表名”;

String user = “root”;

String password = “数据库密码”;

DriverManager.registerDriver(driver);//进行数据库注册

Connection conn = DriverManager.getConnection(url,user,password);

return conn;

}

//关闭数据库的链接

public static void closeREsource(Connection conn, PreparedStatement ps){

try {

ps.close();

} catch (SQLException e) {

e.printStackTrace();

}

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

运行结果:com.mysql.cj.jdbc.ConnectionImpxxxxxxx,表示成功运行!!!

补充:DriverManager是Driver的升级版,Driver是Java链接MySQL最基础的方法。因为Driver不能解耦,所以逐渐被DriverManager所替代!

Java对数据库的链接就到这里了,接下来可能就带给大家Java对数据库表的增删改查了。

Python数据库的链接


最后

不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~

给大家准备的学习资料包括但不限于:

Python 环境、pycharm编辑器/永久激活/翻译插件

python 零基础视频教程

Python 界面开发实战教程

Python 爬虫实战教程

Python 数据分析实战教程

python 游戏开发实战教程

Python 电子书100本

Python 学习路线规划

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

### MySQL Connector MySQL Connector/Python 的区别与使用场景 #### 1. **定义与开发背景** MySQL Connector 是一组由 MySQL 官方提供的数据库驱动程序集合,旨在帮助开发者轻松实现应用程序与 MySQL 数据库之间的交互。其中,`mysql-connector-python` 是专门为 Python 编程语言设计的一个子集[^1]。而更广义的 `mysql-connector` 则可能指代其他编程语言(如 Java、C++ 等)中的对应实现。 对于 Python 开发者而言,`mysql-connector-python` 提供了一种无需额外依赖即可快速集成 MySQL 功能的方式[^2]。 --- #### 2. **技术特性对比** | 特性 | `mysql-connector` (通用概念) | `mysql-connector-python` | |--------------------------|-------------------------------------|--------------------------------------| | **适用的语言** | 多种语言 | 专为 Python 设计 | | **官方支持程度** | 高 | 高 | | **是否纯 Python 实现** | 不一定 | 是 | | **安装复杂度** | 可能需要编译或其他本地库的支持 | 单一命令即可完成安装 | | **连接池支持** | 支持 | 支持 | | **跨平台兼容性** | 较高 | 极高 | --- #### 3. **具体差异分析** ##### (1)**实现方式** - `mysql-connector-python` 是完全基于 Python 的实现,这意味着它不需要任何外部 C 扩展或二进制文件来运行。这种特性使其非常适合在虚拟环境中部署,尤其是在隔离性强的应用场景下。 - 而传统的 `mysql-connector`(例如针对 C/C++ 或 Java 的版本),通常依赖于底层系统的动态链接或者 JVM 运行时环境。这使得它们更适合那些对性能要求极高且允许绑定低级资源的操作场合。 ##### (2)**安装过程** - 对于 `mysql-connector-python` 来说,其安装极为简便,仅需一条 pip 命令即可完成全部设置[^2]: ```bash pip install mysql-connector-python ``` - 相较之下,某些非 Python 版本的 `mysql-connector` 可能涉及到复杂的构建步骤,甚至还需要手动配置系统级别的共享库路径等操作。 ##### (3)**API 接口风格** 尽管两者都提供了类似的 API 形式以便简化 SQL 查询处理逻辑,但由于目标受众不同,各自的设计哲学也有所侧重: - 在 Python 社区内广泛接受的习惯做法被融入到了 `mysql-connector-python` 中,比如上下文管理器模式(`with`)以及迭代游标的运用等等; - 其他语言版本可能会更加贴近该语言自身的惯用法,则未必能够直接移植过来。 --- #### 4. **典型应用场景划分** ##### (1)适合选用 `mysql-connector-python` 的情形 当项目主要围绕 Python 展开,并希望减少对外部工具链的依赖时,可以选择此选项。特别是以下几种情况尤为推荐: - Web 后端服务框架搭建阶段,例如 Flask/Django 结合 RESTful API 输出数据流; - ETL(Extract Transform Load)作业自动化过程中频繁读写关系型存储单元; - 敏捷团队内部快速原型验证环节,追求最小化初始投入成本的同时保持灵活性。 ##### (2)倾向于传统 `mysql-connector` 的领域 如果业务需求超出了单纯依靠解释型脚本来解决问题的能力范畴,则应考虑转向更为强大的解决方案——即采用适配相应宿主语言特性的专用客户端库形式呈现出来的经典形态下的 `mysql-connectors` 。这类应用包括但不限于: - 需要极致优化 I/O 性能的大规模并发事务管理系统; - 深入嵌入硬件层面控制循环的数据采集装置固件编写活动; - 跨异构计算节点同步状态信息传递机制建设任务。 --- ### 示例代码片段展示两种调用方法 以下是分别利用这两种方式进行基本查询演示的例子: #### 使用 `mysql-connector-python` ```python import mysql.connector conn = mysql.connector.connect( host='localhost', database='test_db', user='root', password='password' ) cursor = conn.cursor() cursor.execute("SELECT * FROM users LIMIT 5;") for row in cursor.fetchall(): print(row) cursor.close() conn.close() ``` #### 类似伪代码表示其他语言版 `mysql-connector` 假定这里讨论的是某种虚构但具有代表意义的高级静态类型语言 XLang ,那么大致结构如下所示: ```xlang // 导入库声明部分省略... Database db := NewMysqlConnection("tcp", "localhost:3306", "test_db", "root", "password") defer db.Close() // 自动释放资源句柄 rows, err := db.Query("SELECT * FROM users LIMIT ?", []interface{}{5}) if err != nil { panic(err.Error()) } columns := rows.Columns() values := make([]sql.RawBytes, len(columns)) scanslice := make([]interface{}, len(values)) for i := range values { scanslice[i] = &values[i] } for rows.Next() { if err := rows.Scan(scanslice...); err != nil { log.Fatal(err) } var value string for _, colData := range values { if colData == nil { value = "NULL" } else { value = string(colData[:]) } fmt.Println(value) } } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值