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. py3射击小游戏

    关于py3面向对象的小Demo,欢迎 交流. class Person(object):#声明人类 def __init__(self,name): self.name = name self.gun ...

  2. Couchdb 任意命令执行漏洞(CVE-2017-12636)

    影响版本:小于 1.7.0 以及 小于 2.1.1 该漏洞是需要登录用户方可触发,如果不知道目标管理员密码,可以利用CVE-2017-12635先增加一个管理员用户 依次执行如下请求即可触发任意命令执 ...

  3. AHKManager.ahk AHK管理器 2019年12月15日

    AHKManager.ahk  AHK管理器  2019年12月15日 快捷键   {Alt} + {F1} ///////////////////////////////////////////// ...

  4. OpenGL学习笔记(四)纹理

    目录 要完成的纹理效果 纹理环绕方式 纹理过滤 多级渐远纹理 加载与创建纹理 stb_image库的使用方法 生成纹理对象 应用纹理 纹理单元 参考资料:OpenGL中文翻译 要完成的纹理效果 纹理是 ...

  5. Netty入门(三):EventLoop

    前言 Netty系列索引: 1.Netty入门(一):ByteBuf 2.Netty入门(二):Channel IO相关: 1.Java基础(一):I/O多路复用模型及Linux中的应用 上文提到,早 ...

  6. C++ 多态 案例(//多态案例----制作饮品 //描述:煮水 冲泡 倒入杯中 加入辅料)

    1 //多态案例----制作饮品 2 //描述:煮水 冲泡 倒入杯中 加入辅料 3 4 #include <iostream> 5 #include <string> 6 us ...

  7. 字节跳动前技术总监开源分享《Android架构设计权威指南》,YYDS!

    架构就像是一场进化史,根据不同时期的需求,演变出不同的架构,车轮滚滚,到今天,移动端框架百花齐放,让人目不暇接.但是其中的本质是磨灭不了的,换言之根本没有磨灭而是隐藏到了人们所看不到的地方,但是依旧发 ...

  8. RationalRose使用

    UML 概述 什么是 UML? Unified Modeling Language (UML)又称统一建模语言或标准建 模语言,是始于 1997 年一个 OMG 标准,它是一个支持模型化 和软件系统开 ...

  9. netty系列之:自定义编码和解码器要注意的问题

    目录 简介 自定义编码器和解码器的实现 ReplayingDecoder 总结 简介 在之前的系列文章中,我们提到了netty中的channel只接受ByteBuf类型的对象,如果不是ByteBuf对 ...

  10. ESP32-S2原生USB 烧录 TinyUF2 bootloader 加 CircuitPython

    概述 ESP32-S2最令我心仪的改进是原生支持USB,即带有一个集成了收发器的全速 USB OTG 外设,符合 USB 1.1 规范,理论速度1.5m/s,利用得当将会是一个非常巨大的进步. 目前E ...