如何使用python连接mysql数据库

如何使用python连接mysql数据库,第1张

在 Python 语言环境下我们这样连接数据库

In [1]: from mysql import connector

In [2]: cnx = connector.connect(host="172.16.192.100",port=3306,user="appuser",password="xxxxxx")

但是连接数据库的背后发生了什么呢?

答案

当我们通过驱动程序(mysql-connector-python,pymysql)连接 MySQL 服务端的时候,就是把连接参数传递给驱动程序,驱动程序再根据参数会发起到 MySQL 服务端的 TCP 连接。当 TCP 连接建立之后驱动程序与服务端之间会按特定的格式和次序交换数据包,数据包的格式和发送次序由 MySQL 协议 规定。MySQL 协议:https://dev.mysql.com/doc/internals/en/client-server-protocol.html整个连接的过程中 MySQL 服务端与驱动程序之间,按如下的次序发送了这些包。

MySQL 服务端向客户端发送一个握手包,包里记录了 MySQL-Server 的版本,默认的授权插件,密码盐值(auth-data)。

2. MySQL 客户端发出 ssl 连接请求包(如果有必要的话)。

3. MySQL 客户端发出握手包的响应包,这个包时记录了用户名,密码加密后的串,客户端属性,等等其它信息。

4. MySQL 服务端发出响应包,这个包里记录了登录是否成功,如果没有成功也会给出错误信息。

JDBC由Sun公司制定,全称Java DataBase Connectivity,是一种可以执行SQL语句并可返回结果的Java API,支持多种关系型数据库,封装在java.sql.*

它的具体位置在\jre7\lib\rt.jar

1、JDBC的工作原理

JDBC的最大特点是独立于具体的关系型数据库,它定义了一系列的Java类,完成数据库连接(Connections)、SQL语句(Statements)、结果集(ResultSet)和其他的数据库对象,从而达到Java程序和数据库交互的目的

2、JDBC的四种驱动类型

在Java程序中,JDBC可以分为以下4种驱动类型:

(1)JDBC-ODBC Bridge

用JDBC-ODBC Bridge可以访问一个ODBC数据源,但在执行Java程序的机器上必须安装ODBC驱动,并完成配置

可以看出,中间存在一个JDBC-ODBC的转换,影响了执行的效率

(2)JDBC Native Bridge

这种方式需要在执行JSP程序的机器上安装本地的针对特定数据库(MySQL/SQL/Oracle)的驱动程序,通过这个程序把对数据库的JDBC调用转化为数据库的API调用,性能比JDBC-ODBC更好,缺点是要安装驱动

(3)JDBC-Network Bridge

这种方式不需要安装驱动程序,直接用JDBC通过网络连接数据库,与平台无关,所以在WEB开发中大量使用

(4)Pure Java JDBC Driver

Java驱动程序运行在客户端,客户端可以直接访问数据库,其体系结构最为简单,因此安全性及程序的逻辑性不行

3、JDBC连接数据库(以mysql为例)

(1)加载JDBC驱动程序

通过java.lang.Class类中的静态方法forName实现

(2)提供JDBC连接的URL

协议:子协议:数据源标识

其中,协议:在JDBC中总是以jdbc开始

子协议:是Bridge的驱动程序或是数据库管理系统名称,如MySQL就是mysql,常用的端口号是3306

数据源标识:标记找出数据源的地址和连接接口

(3)创建数据库的连接

向java.sql.DriverManager请求获取Connection对象

(4)创建Statement

其中Statement分为三类,区别如下:

A、执行静态SQL:通过Statement实例实现

B、执行动态SQL:通过PreparedStatement实例实现

C、执行数据库存储过程:通过CallableStatement实例实现

(5)执行SQL语句,完成数据库的增删改或是查询功能

其中Statement接口提供了三种执行SQL语句的方法,区别如下:

A、Result executeQuery(String sqlString):用于查询数据库的SQL,如SELECT,返回一个结果集(ResultSet)

B、int executeUpdate(String sql):用于执行INSERT、UPDATE或DELETE语句以及SQL DDL(数据定义)语句

C、boolean execute(String sql):用于返回多个结果集、多个更新计数或者二者组合(不太懂)

(6)得到处理结果(ResultSet)

(7)关闭JDBC对象

先关闭Statement再关闭Connection连接

参考文献:

1、邓子云,《JSP网络编程从基础到实践》(第2版)

2、邱加永,孙连伟,《JSP基础与案例开发详解》

3、谭贞军,《深入理解Java Web开发技术:探索基于主流框架的最佳组合》

文章知识点与官方知识档案匹配

Java技能树使用JDBC *** 作数据库JDBC概述

84644 人正在系统学习中

打开CSDN,阅读体验更佳

jsp学习笔记之JDBC原理及其使用_地球是圆嘀的博客

java项目的导包方式与javaweb项目的导包方式不一样 java项目:1.jar复制到工程这种 2.右键jar:build path 3.add external jars javaweb项目 1.jar项目复制到WEB-INF的lib中 核心:将java中的JDBC代码,复制到JSP中的<% %>...

JSP原理、使用_lpw666_的博客

JDBC 固定步骤: 事务 Junit单元测试 搭建一个环境,事务回滚 1、JSP 1.1、什么是JSP Java Server Pages : Java服务器端页面,也和Servlet一样,用于动态Web技术! 最大的特点: 写JSP就像在写HTML ...

关键技术——JSP与JDBC应用详解(电子版)

本书详细讲解了JSP和JDBC内容,适合Java开发人员使用,也是Java开发人员必须掌握的知识

java连接数据库——JSP实现JDBC

前两个是java连接数据库的典型方式,虽然除了JDBC还有odbc的方式,但odbc的效率和跨平台都不理想,所以现在的趋势就是使用JDBC来连接需要的数据库(我以MySQL为例),这节将介绍JSP中如何实现连接数据库,其实原理都一样,只是技术不同,建议在看本节知识的时候,以及对JSP技术和前端知识有一定的了解,要不然,或许不好理解。 以下是代码: <%@ page language="...

继续访问

JDBC 详解_IT__learning的博客_jdbc

三、JDBC 工作原理 1、装载驱动程序 JDBC 中规定,驱动类在被加载时,需要自己“主动”把自己注册到 DriverManger 中。com.mysql.jdbc.Driver 类的源代码如下: 通过以上源码可知我们注册驱动的时候只是 new 了自己,也就是 Driver。既然...

jsp学习 jdbc访问数据库_黑猫猫琉璃的博客

Connection root = DriverManager.getConnection("jdbc:mysql://localhost:3306/jsp", "root", "123456")3、创建sql会话对象preparedStatement(注意这个动态的preparedStatement类它的父类其实是Statement) ...

最新发布 jdbc的原理示意图和模拟实现

本次博客带领大家学习JDBC的原理示意图和模拟实现。

继续访问

jsp,servlet,类,jdbc项目运行原理以及最开始打开的页面需要传递数据时的处理

实现一个web项目时,显示主要靠的是html页面,这属于静态显示。而动态显示就需要用到jsp页面。 静态页面间的跳转主要是通过a标签,而动态页面跳转也是通过a标签,但是需要传递数据。当然也可以通过表单的提交。 页面呢,也分为传递数据的页面和接收数据的页面。 传递数据的页面呢,是通过a标签后面携带的参数跳转到需要接收数据的页面以保证接收数据的页面动态的数据显示,或者通过表单提交的对应servl...

继续访问

JavaWeb——JSP原理剖析和执行过程_万里顾—程的博客

JavaWeb——JSP原理剖析 1.什么是JSP JSP(Java Server Pages):Java服务器端页面,和Servlet一样,是一种动态网页开发技术。 JSP是一种Java servlet,基于Java Servlet API 因此,JSP拥有各种强大的企业级Java API,包括JDBC, JNDI(Java Na...

jdbc连接mysql原理_JDBC 原理浅析_月塔的博客

五.详解JDBC原理: <1>. 结构: DriverManager (是一工厂实现类,用了工厂方法模式) | Dirver (是驱动程序对象的接口,指向具体数据库驱动程序对象=DriverManager.getDriver(String URL)) |

JSP中 *** 作数据库的三个对象:Statement、PreparedStatement、CallableStatement

1、创建 Statement 对象 建立了到特定数据库的连接之后,就可用该连接发送 SQL 语句。Statement 对象用 Connection 的方法 createStatement 创建,如下列代码段中所示: Connection con = DriverManager.getConnection(url, "sunny", "")Statement stmt = con.c

继续访问

JSP访问数据库

JSP访问数据库内容介绍

继续访问

Java中原生 *** 作JDBC连接及原理_架构潜行之路的博客_java原生j...

JDBC全称又叫做Java DataBase Connectivity,也就是Java数据库连接,说白了就是用Java语言来 *** 作数据 库,提供统一API访问数据库 *** 作。 二、原理 JDBC主要是用于java连接数据库的,能连接什么数据库不固定,其实能连接很多种数据库,而且一般来...

JDBC编程的三个接口

JDBC编程的Connention接口,Statement接口和ResulSet接口,JDBC编程一个简单的查询过程

继续访问

3-JSP+JDBC数据库应用开发初步(二)

一、JSP+Servlet+JDBC开发数据库应用 上一讲“JSP+JDBC数据库应用开发初步”中,我们给出了一个小例子,采用JSP页面来处理用户的登录请求。本讲中,我们将该JSP页面替换为Servlet来处理用户登录请求。 实验步骤如下: 用户登录页面仍然采用原来的login.jsp页面,只需要把form表单的action方法修改为Servlet的url即可,其它不变。 资源页面也仍然采用resource.jsp不变,注意:该页面需要读取session中保存的用户名,若存在,则说明用户登录成功,可以显示

继续访问

java、jdbc、jsp……的简单解释

java版本 1. J2ME,功能有限,用于嵌入式设备。 2. J2SE,包含原始的核心类库,用于桌面应用程序和浏览器中的applet 3. J2EE,功能非常全面,用于数据处理和处理器端应用 J2EE功能非常的全面,那就看看它的工作模式图: JDBC是什么? 它是为java开发人员提供了一个行业标准API,可以在java应用与关系数据库之间建立起独立于数据库的连接,A...

继续访问

JSP基础(十二)——初步认识JDBC

与数据库交互是Web应用程序的一个重要的组成部分,JSP使用JDBC(Java DataBase Connectivity)技术来实现与数据库的连接。JDBC提供了JSP *** 作数据库的各种接口,所以JDBC数据库编程对Web开发是非常重要的。很多DBMS(数据库管理系统)都提供JDBC驱动程序,JSP可以直接利用它访问数据库,有些DBMS没有提供JDBC驱动程序,JSP可以通过Sun公司的JDBC-

继续访问

JDBC在jsp中的使用

今天在学习JDBC在jsp中的应用时遇到了一些问题,解决后记录一下,希望对其他人能有帮助。 默认读者具有一定的jsp和数据库知识,所以对这两者不做介绍,本文主要是解决按照书上的代码敲出来最后却不能得到想要的结果的问题。 第一步,导包 导入需要的包,例如java.sql.* java.io.* 第二步,加载数据库驱动 大家为了更好的记忆 *** 作步骤,不要每次建立数据库连接时都要找资料,我们应该了解每一步都是为了达到什么目的,例如现在的加载数据库驱动,可能有人会问?什么是数据库驱动呢? 数据库驱动是不

继续访问

JDBC,数据库与jsp的连接

JDBC技术的出现 为何会出现JDBC?对于我们的数据来说,都是具有时效性的,而有些数据是需要长久的保存下去,但是单单jsp并不能做到长久保存,因此我们需要将其保存在专门储存在数据库中,而jsp再次使用此数据的时候需要调用,因此就需要有一个中间的桥梁将数据库与jsp连接起来。但是最开始只有OBDC,OBDC是C语言开发的,主要再Windows环境中使用,如果用其他语言开发应用程序还需要其他中介的API和OBDC做沟通链接,这是很复杂的事。因此JDBC应运而生,这是专门针对Java和数据库连接技术,使得开发人

继续访问

JSP+JDBC连接数据库

首先 在创建项目时,要连接数据库,要将jar包导入项目(这只是方式之一,还有其他的方式实现同样的效果) 将jar包放在WEB-INF/lib目录下,然后右键,点击Build Path→Add to Build Path将其添加到项目的Libraries中,然后在JSP页面中头部添加如下代码 <%@page import="java.sql.*"%>即图中所示: 接下来就可以打代码了。 数据库的连接 //1.获取Driver实现类的对象 Class.forName("com.mysql.

继续访问

JSP和JDBC的使用

查询数据 <%@ page import="java.sql.*" %><%@ page contentType="text/htmlcharset=UTF-8" language="java" %><html><head><title>Title</title></head><body><!DOCTYPE html><html lang="en">

继续访问

认识JSP连接数据库原理

昨天有人来问JSP用jdbc连接数据库的两种方式,我懵了,才发现自己真的烂到家了,连这个都不知道,只会按网上说的方法写代码,根本就不懂原理,我需要知道原理。从网上查到一些说法,我综合整理了一下得出一些结论: 有人说JSP网站连接数据库有4种类型: [1]JDBC-OD

继续访问

关于Java Web的Servlet+JDBC(封装)+JSP的登录(送给入门的你)

关于Java Web的Servlet+JDBC(封装)+JSP的登录(送给入门的你)

JDBC与JSP初识

主要内容: -JDBC 三层架构进行组织后台代码 -JSP初识 - 在页面展示表中数据 - 在页面输入数据并处理数据课堂参考代码: 1、后台代码: (1)cn.sdut.dao. BaseDao.javapackage cn.sdut.daoimport java.sql.Connectionimport java.sql.DriverManage

继续访问

初学JSP与JDBC(mysql数据库)

之前一直不知道jsp怎么和数据库连接,后来看了大神的博客以及看书大概知道了一些。 1.下好jdbc的包。见链接。 把下载好的包放在tomcat的lib文件夹下面,然后建立一个web工程导入这个包。 ->build path->configure build path->然后就导入成功了。 我用的是mysql数据库。(数据库方面我就不多做解释,不懂的可以去查一查。) 2.JDB

继续访问

关于jsp+jdbc的简单实例

在页面显示所查数据库的内容,以表格形式显示 <%@page import="java.util.ArrayList"%><%@page import="java.util.List"%><%@page import="java.sql.ResultSet"%><%@page import="java.sql.SQLException&q

继续访问

JSP——JDBC相关

参考博客:https://www.cnblogs.com/xiaotiaosi/p/6394554.html JDBC中常用的类和接口: 1、驱动程序管理类:DriverManager 这个类是很重要的一个类,使用的频率也是比较高的,对于一般程序员来说 用的最多的一个方法就是Drivermanager.getConnection


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9995035.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存