JDBC 实战 MYSQL 和 JSP 网站开发| 学习笔记

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 快速学习 JDBC 实战 MYSQL 和 JSP 网站开发

开发者学堂课程【Java训练营第1期【5天玩转Java面向对象编程】:JDBC 实战 MYSQL 和 JSP 网站开发】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/349/detail/4085


JDBC 实战 MYSQL 和 JSP 网站开发


1. 网站开发历史。

一个是 Java 做数据库开发,之前课程讲述了 MYSQL 对象的基础概念。

行业知识

数据库编程在企业里面做项目开发,淘宝,微信,支付宝,大的项目都需要用到数据库。大型银行使用的都是 Oracle 数据库,而之后 MYSQL 占据了数据库首选的位置。如果没使用过数据库也无碍,它和电子表格很相似,电子表格是一种原始的数据管理软件,而 MYSQL 是更强的专业的这种大型数据存储软件。

Oracle 在国内主要是大的银行,例如工行,建行,也可能用多种数据库,互联网公司主要以 MYSQL 为主,或者是 MYSQL 源码改出的版本,淘宝最初创业时马云老师花了半年的时间创建出这个代码,最初是 PVP+ MYSQL 是马云从美国网站买回汉化改装,当时淘宝是没有支付宝这个概念的,支付宝后面是从淘宝独立出去的,这些是淘宝网站后期改成Java语言开发,数据库当然主要从外企挖的人才,主要典型的是 Oracle 公司,IBM 公司,还有 siim 公司,它是最初发明 Java 的公司,但是已经被 Oracle 收购了,这里其中有一些人进入了阿里,淘宝当时的数据库从MYSQL 切换到 Oracle,当年的 MYSQL 不完善

当年 Oracle 在银行里是比较成熟的,大企业一般用 Oracle,比较稳定,数据量大,淘宝业务需要这样数据库,先转 Java 后来转 Oracle,服务器一般买 IBM 的服务器,国际,一个厉害的服务器公司。

当年 sine 出来了,也想卖服务器,到它没有自己的数据库,所以买了 MYSQL,后面 sine 公司被 Oracle 买了,Oracle 有自己的数据库,开始收费使用,毕竟商业背景下市场是残酷的。MYSQL 有一个好处,诞生之处,就是开源的数据库,就是代码开放,任何人都可以查看。淘宝从 MYSQL 开始慢慢改,中间有一段时间从Oracle 签到了 MYSQL。

Oracle 付费,且维护数据库费用太贵了,当时的背景下,淘宝用 MYSQL,一是开源,二是免费。从公司的角度,为了省钱。技术角度,淘宝迁移逐步维护自己的淘宝 MYSQL 的一个分支,自己改变源码,改一些功能。从开始的看源代码,仿制扩展,逐步培养出数据库专家团队。

银行的钱必须要交,数据库,CPU 有多少核心,数据库是按照核心收费的,一台服务器有几个核心,就按照核心的数量收费。

企类似淘宝一般用 MYSQL 省钱,MYSQL 可以解决大家的一些问题,慢慢影响国有企业改造,现在大量企业开始使用 Java 和 MYSQL 的解决方案。

银行用 Oracle,从另一个角度相当于是放弃了人才的培养,腾讯,都开始开源的这种路线,腾讯也有 MYSQL的分支,对大企业,对技术的重视程度不如民营,阿里,腾讯,华为。


2.Java 数据库连接驱动 JDBC

Java 编程语音也是其中的一个语言,进行专业数据存取,要进行专业的数据库,如果用 Oracle 数据库,要提供一个驱动。

数据库自己安装部署,他有自己的标准的数据链接协议接口,用 Java 语言练习,包括建立网络链接,进行数据解析,也要遵守协议,Java 统一的数据库连接驱动JDBC。其他数据库也可以支持。

J代表 java,d代表 datebase,c代表 connect 的缩写,专门解决数据库问题,数据库有很多类。


3.ODBC 开放数据库连接

ODBC

1.微软提出的数据库接口标准: Open Database Connectivity

2.简称 ODBC,

3.开放数据库连接技术,解决不同异构数据库连接的问题

4.主要是 Windows 系统来用,支持多种数据库

5.现已成为 WOSA(The Windows Open System Architecture(Windows 开放系统体系结构))的主要部分

6.基于 Windows 系统一种数据库访问接口标准

7.用 ODBC 可以访问各类计算机上的 DB 文件,

8.也可以访问如 Excel 表和 ASCI 数据文件这类非数据库对象。


4.JDBC 与 ODBC 数据库连接

JDBC 与 ODBC 数据库连接

1.开放数据库连接(Open Database Connectivity ODBC)解决不同异构数据库连接的问题

2.jdbc、 Java Data Base Connectivity Java 数据库连接技术

3.支持多种数据库 MySQL, Oracle, SQLServer 等

4.封装了各种数据库访问的 AP ,基础类库

5.jDBc 很像微软的 ADO.NET,C#的数据库连接技术

6.可以向数据库传递 SQL 语句命令,实现各种操作

7.也可以调用存储过程

8. SQLHelperMySQLHelper 和支持 Java 和C#工具类

9.现在普遍使用 ORM 框架,底层使用了 BC 和 ADO.NEI

'Hibernate Entity Framework), mybatis(Dapper)

如果提到 Java 的数据库链接,要操作不同的数据库,想起 JDBC 就可以,ODBC 有点关系。

5.JDBC 支持的数据库

功能最强的应该是 Oracle 数据库,还有一个 IBM DB2 数据库1-2银行用的比较多,Java 公司开发 Oracle 数据库,IBM公司开放 DB2 数据库,基本都是把数据库软件装在特定的服务器上,捆绑时销售。

正常我们买东西都是拼接的,苹果电脑尽量的硬件几乎是自己出产的,达到最优的状态。如果都是一个公司开发的话,整合性会好很多,也可以装在其他机器上。

微软仿制了一个数据库。

sybase 现在已经不存在,曾经和微软合作研究数据库。

7也是官营数据库,8比电子表格好一点,至少它是一个数据库。Excel 在办公时不超过一万行,小型公司够用。

MYSQ L最大的优势就是开源。


6.Java连接数据库JDBC

图片52.png

注意框架 JDBC,SQL 也是一种编程语言,诞生比较早,比 Java 早,有函数的概念。编写的时候用 SQL 语言,

任何一个数据库出来都有对应的一个驱动,一般公司用的都是比较普遍的数据库。

JDBC 连接数据库架构。

图片53.png

概念解释

API 是中文翻译接口,是 appucation 的缩写,如果服务器公开,就一定要用标准的接口,一定有标准的协议,软件之间转换数据。


7.Java JDBC 连接 MYSQL 实战

PHP+ MYSQL+ Linux

原始编程通过命令行操作 MYSQL 数据库,当如果用到命令时,有一个可视化管理带界面的软件。

早期的网站都是 PHP+ MYSQL+ Linux

安卓手机的操作系统就是改 Linux,数据库装好后,写一个例子,演示一下通过原始的命令行来操作 MYSQL。

早期的数据库没有界面的管理工具,程序入门复杂。有些包需要手动添加,可以用Maven 自动化构建数据,不需要寻找包。

新建一个链接,数据库通讯,然后关闭

图片54.png

图片55.png

下载一个数据库,新闻有标题和内容,用户有用户和密码。

把数据库装好,在数据库里面建一个淘宝。程序附近有目录,MYSQL 安装后,有菜单,查找 MYSQL。

图片56.png

图片57.png

图片58.png

图片59.png

图片60.png

测定 MYSQL 有没有装成功可以通过 MYSQL 的服务,正常服务已经启动。MYSQL接受请求。这里一定要 MYSQL 的服务,MYSQL 后的状态进城 ID,正在运行。

用一个管理工具,演示一下如何新建数据库。

第一部本地安装完成数据库,新建连接,输入 local host,表示本机的意思,默认端口3206,密码1234。

点击链接测试,会出现成功的一样,点击确定。数据库装完,解压,双击点链接,再从新输入。测试成功后点确定。

点击莲绛就可以新疆数据库,先建立一个淘宝数据库。

小绿帽卸下来,解压,点击 ese,启动后可以配置数据库。

演示一下淘宝数据库

local host

重复上述,点确定。

配置完成后,新建数据库,右键,选中如图新建的选项,输入名字淘宝。建一个简单的数据库,确定后有图标,双击,右键选中表,会有新建表。选中路标,右键,给几个列,类型是 inter。再添加一个栏位,再添加一列。再添加栏位,ID表示编号,最大长度为100,保存后输入表名。

这时候输入数据就可以。

插入四缸数据

图片61.png

图片62.png

图片63.png

图片64.png

图片65.png

图片66.png


一个数据库可以建立多个表格,然后保存。表格里面的数字都可以。

用命令做也可以,选中 user,查询窗口,具体操作如图。

图片67.png

图片68.png

图片69.png

图片70.png

图片71.png

图片72.png

注意符号。

※代表所有的列

运行后有错误,增删改查。

照 user 表做练习

打开 expliese,换一个项目类型,选择 other,右键 new,找 Mmen。选择第三个。下一步,如图。随便起一个项目名字。

有很多方式构造,项目类型。版本不一定对,太多了麻烦。

图片73.png

图片74.png

图片75.png

图片77.png

图片78.png

图片79.png

图片80.png

然后 finish,试一下。

驱动有很多版本,包在如图位置。在属性里面可以找到。

Maven 具物,可以写 JDBC 实战 MYSQL。

链接如下。

加载驱动

举行连接

执行命令

处理结果

接受结果

关闭链接

ssl 是一个安全链接协议。

执行查询命令,最后接受结果。

导入操作。



            </div>
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
存储 SQL 关系型数据库
MySQL - 深入理解锁机制和实战场景
MySQL - 深入理解锁机制和实战场景
|
27天前
|
SQL 关系型数据库 MySQL
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)
96 0
|
3天前
|
关系型数据库 MySQL 中间件
【MySQL实战笔记】07 | 行锁功过:怎么减少行锁对性能的影响?-02 死锁和死锁检测
【4月更文挑战第19天】在高并发环境下,死锁发生在多个线程间循环等待资源时,导致无限期等待。MySQL中,死锁可通过`innodb_lock_wait_timeout`参数设置超时或`innodb_deadlock_detect`开启死锁检测来解决。默认的50s超时可能不适用于在线服务,而频繁检测会消耗大量CPU。应对热点行更新引发的性能问题,可以暂时关闭死锁检测(风险是产生大量超时),控制并发度,或通过分散记录减少锁冲突,例如将数据分拆到多行以降低死锁概率。
19 1
|
6天前
|
SQL 关系型数据库 MySQL
Python与MySQL数据库交互:面试实战
【4月更文挑战第16天】本文介绍了Python与MySQL交互的面试重点,包括使用`mysql-connector-python`或`pymysql`连接数据库、执行SQL查询、异常处理、防止SQL注入、事务管理和ORM框架。易错点包括忘记关闭连接、忽视异常处理、硬编码SQL、忽略事务及过度依赖低效查询。通过理解这些问题和提供策略,可提升面试表现。
25 6
|
13天前
|
存储 关系型数据库 MySQL
【MySQL实战笔记】 04 | 深入浅出索引(上)-02
【4月更文挑战第9天】InnoDB数据库使用B+树作为索引模型,其中主键索引的叶子节点存储完整行数据,非主键索引则存储主键值。主键查询只需搜索一棵树,而非主键查询需两次搜索,因此推荐使用主键查询以提高效率。在插入新值时,B+树需要维护有序性,可能导致数据页分裂影响性能。自增主键在插入时可避免数据挪动和页分裂,且占用存储空间小,通常更为理想。然而,如果场景仅需唯一索引,可直接设为主键以减少查询步骤。
15 1
【MySQL实战笔记】 04 | 深入浅出索引(上)-02
|
15天前
|
存储 SQL 关系型数据库
【MySQL实战笔记】03.事务隔离:为什么你改了我还看不见?-02
【4月更文挑战第7天】数据库通过视图实现事务隔离,不同隔离级别如读未提交、读已提交、可重复读和串行化采用不同策略。以可重复读为例,MySQL使用多版本并发控制(MVCC),每个事务有其独立的视图。回滚日志在无更早视图时被删除。长事务可能导致大量存储占用,应避免。事务启动可显式用`begin`或设置`autocommit=0`,但后者可能意外开启长事务。建议使用`autocommit=1`并显式管理事务,若需减少交互,可使用`commit work and chain`。
30 5
|
17天前
|
SQL 存储 关系型数据库
【MySQL实战笔记】02.一条SQL更新语句是如何执行的-2
【4月更文挑战第5天】两阶段提交是为确保`redo log`和`binlog`逻辑一致,避免数据不一致。若先写`redo log`, crash后数据可能丢失,导致恢复后状态错误;若先写`binlog`,crash则可能导致重复事务,影响数据库一致性。一天一备相较于一周一备,能缩短“最长恢复时间”,但需权衡额外的存储成本。
16 1
|
27天前
|
SQL 关系型数据库 MySQL
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(数据恢复补充篇)(一)
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(数据恢复补充篇)
30 0
|
1月前
|
存储 Kubernetes 关系型数据库
KubeSphere 核心实战之一【在kubesphere平台上部署mysql】(实操篇 1/4)
KubeSphere 核心实战之一【在kubesphere平台上部署mysql】(实操篇 1/4)
47 0
|
2月前
|
SQL 算法 关系型数据库
MySQL索引优化实战二
MySQL索引优化实战二