JDBC : Java Database Connectivity,Java数据库连接。SUN公司为了简化、统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC。

JDBC就像一座桥,连接Java程序与数据库 。

JDBC的简介

驱动实际上就是现在的程序能够跟目标程序进行通信的一个接口规范,驱动中包含接口实现。

进行JDBC开发
1、学习JDBC接口规范 java.sql javax.sql 接口如何使用

2、在工程中导入 相应数据库驱动(JDBC实现)

核心JDBC接口规范
DriverManager 驱动管理器
Connection 连接

Statement 操作状态 (子接口 PreparedStatement、CallableStatement)
ResultSet
结果集

第一个JDBC程序
1、搭建数据库环境
在运行中通过services.msc启动MySQL

再通过cmd连接mysql

创建数据库
切换数据库
创建数据表:

向数据表插入数据

通过查询语句进行查询:

2、创建web工程
megustas,导入数据库驱动(去各个数据库的官网下载),将对应的jar包复制到WebContent\WEB-INF\lib目录下:

3、新建Java程序,使用JDBC接口规范连接数据库

注意:在实际开发中并不推荐采用registerDriver方法注册驱动,一般使用具体原因会在后续JDBC
API中进行详细介绍。

结果集ResultSet可以通过下图进一步认识:

sql注入

可以使用PreparedStatement代替Statement,通过预编译来防止这种sql注入。

小结

一、搭建实验环境 :
1、在mysql中创建一个库,并创建user表和插入表的数据。
2、新建一个Java工程,并导入数据驱动。

二、编写程序,在程序中加载数据库驱动
DriverManager. registerDriver(Driver driver)

三、建立连接(Connection)
Connection
conn=DriverManager.getConnection(url,user,pass);

四、创建用于向数据库发送SQL的Statement对象,并发送sql(向数据库发送的是sql语句,托福考试评分标准得到的回复是ResultSet结果集

Statement st=conn.createStatement();
ResultSet rs=st.executeQuery(sql);

五、从代表结果集的ResultSet中取出数据,打印到命令行窗口
六、断开与数据库的连接,并释放相关资源

  • 通过DriverManager加载驱动程序driver;
  • 通过DriverManager类获得表示数据库连接的Connection类对象;
  • 通过Connection对象绑定要执行的语句,生成Statement类对象;
  • 执行SQL语句,接收执行结果集ResultSet;
  • 可选的对结果集ResultSet类对象的处理;
  • 必要的关闭ResultSet、Statement和Connection

图解如下:

对于上图中的数据库URL需要注意:
连接任何数据库 编写JDBCURL

Mysql URL : jdbc:mysql://localhost:3306/day13 通过?传递参数

Oracle写法:jdbc:oracle:thin:@localhost:1521:sid

常见API

1、Connection接口 —- JDBC连接表示接口
* Connection接口一个对象 代表 一个数据库 连接
作用两点:

1) 获得操作数据库Statement对象
—– Statement 获得普通操作状态对象
—–
PreparedStatement(是Statement子接口) 预编译状态对象
——
CallableStatement(是PreparedStatement子接口) 操作数据库内部存储过程的
*
Statement对象可以向数据库发送sql语句,获得ResultSet结果集

2) 进行事务控制
开启一个事务
提交一个事务
回滚一个事务

2、Statement接口 —- 代表一个操作状态
作用:操作数据库SQL语句、调用存储过程

:用于向数据发送查询语句。select语句,返回值ResultSet 结果集
:用于向数据库发送insert、update或delete语句
返回值int 受影响行数
:用于向数据库发送任意sql语句 — 建立数据库 建立数据表,增删改查 — 返回值boolean
*
sql结果是ResultSet 返回true — 否则false

批处理 —- 一次执行多条sql
:把多条sql语句放到一个批处理中。
:向数据库发送一批sql语句执行。

3、ResultSet

JDBC简介及JDBC编写步骤及常见API的更多相关文章

  1. 第16讲:ODBC&JDBC简介

    一.ODBC简介 1. ODBC的概念 ①ODBC:Open DataBase Connection,即开放数据库连接 ②ODBC是一种标准,它规定了不同语言的应用程序与不同数据库服务器之间通讯的方式 ...

  2. JDBC简介及编码步骤

    一.什么是JDBC JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Jav ...

  3. JDBC设计理念浅析 JDBC简介(一)

    概念 JDBC是J2EE的标准规范之一,J2EE就是为了规范JAVA解决企业级应用开发制定的一系列规范,JDBC也不例外. JDBC是用于Java编程语言和数据库之间的数据库无关连接的标准Java A ...

  4. JDBC 异常简介 jDBC简介(六)

    SQL 异常简介 对于数据库的操作访问,必然也很可能抛出异常. JDBC中定义了SQLException,用于描述数据库相关操作中可能出现的异常情况. java.sql.SQLException    ...

  5. JDBC与ORM发展与联系 JDBC简介(九)

    概念回顾 回顾下JDBC的概念: JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它 ...

  6. JavaWeb技术(一):JDBC简介

    一.  JDBC简介 1. Java Database Connectivity(JDBC) 使用JDBC可以对数据库进行访问 2. JDBC的核心接口 1)DriverManager 驱动管理器接口 ...

  7. 数据库 MySQL Jdbc JDBC的六个固定步骤

    *0 案例:    a)在JavaScript中使用正则表达式,在JS中正则表达式的定界符是://     var regexp = /^[0-9]+$/;     if(regexp.test(nu ...

  8. 原生Jdbc操作Mysql数据库开发步骤

    原生Jdbc操作Mysql数据库开发步骤 原生的Jdbc就是指,不使用任何框架,仅用java.sql包下的方法实现数据库查询等的操作. 下面是开发步骤:        1.导入数据库驱动包       ...

  9. JDBC学习笔记之JDBC简介

    1. 引言 JDBC API是一种Java API,可以访问任何类型的表格数据,特别是存储在关系数据库中的数据. JDBC可以帮助我们编写下列三种编程活动的java应用程序: 1.连接到数据源,如数据 ...

随机推荐

  1. Python3.6安装protobuf模块+将proto文件转换成pb2.py文件

    Python对版本的对应即为苛刻,笔者第一次安装时遇到了很多坑,比如无法将proto文件转换成py文件,转换了之后文件无法使用,网上各种各样的解决办法都没有讲到重点.其实会出现各种各样的问题是由于版本 ...

  2. python中的常用内建属性与内建函数

    常用专有属性常用专有属性 说明 触发方式 __init__ 构造初始化函数 创建实例后,赋值时使用,在__new__后 __new__ 生成实例所需属性 创建实例时 __class__ 实例所在的类 ...

  3. 大数据学习(24)—— Spark入门

    在学Spark之前,我们再回顾一下MapReduce的知识,这对我们理解Spark大有裨益. 在大数据的技术分层中,Spark和MapReduce同为计算层的批处理技术,但是Spark比MapRedu ...

  4. 从 HTTP 切换到 HTTPS,这下我的技术博客安全了吧?

    博客园 的小伙伴们,大家好,我是刚脱离险境的二哥呀! 很久(大概两年)之前,我就搞了一个独立的个人博客网站,长下面这样. 大家有访问过的,可以在评论区扣 1 可惜一直没搞备案和 HTTPS,导致每次访 ...

  5. SQL 查询总是先执行SELECT语句吗?你们都错了!

    SELECT语句中子句的顺序.SELECT语句中使用时必须遵循的次序. 经过一段时间的学习,我们知道了SELECT语句超简版的语法如下: SELECT 字段名 FROM 表名 后来,我们又陆续学习了W ...

  6. 用 区间判断(if)来猜价格的高低

    1 #include <stdio.h> 2 #include <stdlib.h> 3 int main() 4 { 5 int price = 150; 6 int gue ...

  7. 使用Cobertura做代码覆盖率测试

    经验总结:首先要把cobertura.jar包含ant的classpath路径中,其次要求它包含在测试用例的classpath中: 使用cobertura做代码覆盖率测试中出现的问题:覆盖率始终为0, ...

  8. Python实现AI图像识别-身份证识别

    图像识别说白了就是把一张照片上面的文字进行提取,提供工作效率 需求分析 身份证识别主要是把一张身份证照片上面的文字信息进行提取,不用再使用人工去手动抄写了,下面给大家说的这个身份识别主要是使用pyth ...

  9. 【笔记】使用PCA对数据进行降噪(理解)

    使用PCA对数据进行降噪(使用手写数字实例) (在notebook中) 加载库并制作虚拟的数据并进行绘制 import numpy as np import matplotlib.pyplot as ...

  10. 从 FFmpeg 性能加速到端云一体媒体系统优化

    7 月 31 日,阿里云视频云受邀参加由开放原子开源基金会.Linux 基金会亚太区.开源中国共同举办的全球开源技术峰会 GOTC 2021 ,在大会的音视频性能优化专场上,分享了开源 FFmpeg ...