说明:本系列学习笔记主要是学习传智播客的李勇老师的教学课程和一本英文电子书《JDBC Recipes A Problem-Solution Approach》所作的笔记。

1,什么是JDBC?

其实JDBC是API的一个集合,它允许你使用java语言对数据库操作。它的核心是接口,也有少量的类。它主要在java.sql和javax.sql两个包。

java.sql这个包主要是提供了一些访问并操作数据库的接口,这个包提供了大量的重要的objects (比如Connection, ResultSet, Statement, and PreparedStatement).

javax.sql则提供了服务端数据处理的接口。

下面的图是java应用使用java访问数据库的。

从这张图中可以看出,java应用程序使用JDBC的API对数据库进行访问,但是其中隔了许多的东西,有必要解释一下。

java应用程序通过JDBC应用程序接口访问JDBC’s DriverManager,这个JDBC驱动管理器管理许多不同的驱动,比如Oracle的、Mysql的驱动,当程序加载了某个驱动的时候,就会通过这个驱动访问某个数据库了。这些驱动当然都是各个数据库厂家实现的,但是都必须按照JDBC的API来实现。

下面是个简单的JDBC架构:它使用JDBC来访问数据库,但是省略了其中的细节。

下面是个详细的JDBC架构,它和我们文章的第一个图类似。

2,一个简单的例子

理论再天花乱坠,大家都不喜欢,整个简单的实例:

步骤:

1,找到相关的驱动包,我这里新建一个简单的java工程,下载驱动包。我这里是连接Oracle数据库,所以就下载Oracle驱动。

2,注册JDBC驱动,这个你把包加入进来JVM是不识别的,你必须告诉它。

Class.forName("oracle.jdbc.driver.OracleDriver");

3,建立一个连接。

Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "scott");

4,创建一个Statement对象。

Statement stmt = conn.createStatement();

5,执行一个查询并返回一个结果。

ResultSet rs = stmt .executeUpdate(sql语句);

6,处理结果。

if (rs.next()) {
      String firstName = rs.getString(1);
      String lastName = rs.getString(2);
      String title = rs.getString(3);
      int salary = rs.getInt(4);
  }

7、8,关闭连接,主要是:conn ,stmt ,rs

下面再看一段最简单且不规范的程序。

package com.yfy;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class jdbcTest {private static String sql = "select * from EMPLOYEES where first_name=?";public static void main(String[] args) throws SQLException {//1,注册驱动DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());//2,建立连接Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "scott");//3,创建语句Statement stmt = conn.createStatement();//4,执行语句,返回结果集ResultSet rs = stmt.executeQuery(sql);//5,处理结果while (rs.next()) {        System.out.println("id:" + rs.getInt("EMPLOYEE_ID") + " first_name:" + rs.getString("first_name"));}//6,关闭连接
         rs.close();stmt.close();conn.close();}
}

看看数据库中的内容

执行之后的结果:

主要过程就是这些 ,但是需要注意,这些代码以后再优化,现在只是强调一个过程。下面这张图可以清晰的表达代码的流程。其中有些以后在介绍。

转载于:https://www.cnblogs.com/yefengyu/p/5074013.html

JDBC学习笔记(1)相关推荐

  1. JDBC学习笔记03【JDBC事务管理、数据库连接池、JDBCTemplate】

    黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...

  2. JDBC学习笔记02【ResultSet类详解、JDBC登录案例练习、PreparedStatement类详解】

    黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...

  3. JDBC学习笔记01【JDBC快速入门、JDBC各个类详解、JDBC之CRUD练习】

    黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...

  4. JDBC 学习笔记(一)—— 基础知识 + 分页技术

    2019独角兽企业重金招聘Python工程师标准>>> 本文查阅方法:     1.查阅目录 -- 查阅本文目录,确定想要查阅的目录标题     2.快捷"查找" ...

  5. JDBC学习笔记——Java语言与数据库的鹊桥

    JDBC学习笔记--Java语言与数据库的鹊桥     JDBC(Java DataBase Connectivity):SUN公司提供的 一套操作数据库的标准规范,说白了就是用Java语言来操作数据 ...

  6. JDBC学习笔记(1)---B站尚硅谷宋红康

    JDBC学习笔记(1)-B站尚硅谷宋红康 JDBC学习笔记(2)-B站尚硅谷宋红康 文章目录 软件架构方式介绍 JavaWeb技术概览 第1章:JDBC概述 1.1 数据的持久化 1.2 Java中的 ...

  7. JDBC 学习笔记 day02 用 PreparedStatement 实现 CRUD 操作

    JDBC 学习笔记 day02 PreparedStatement 相比于 Statement 的好处 PreparedStatement 实现 增,删,改 操作 PreparedStatement ...

  8. JDBC学习笔记(六)

    JDBC学习笔记(六) Thinkersky[Email:yanghuangming@rongji.com] 关于婚姻与爱情,一组5至10岁的美国小孩给出了他们的答案.也许听起来傻傻的,但是谁能说小娃 ...

  9. JDBC学习笔记(6)——获取自动生成的主键值处理Blob数据库事务处理

    获取数据库自动生成的主键 [孤立的技术是没有价值的],我们这里只是为了了解具体的实现步骤:我们在插入数据的时候,经常会需要获取我们插入的这一行数据对应的主键值. 具体的代码实现: 1 /** 2 * ...

  10. JDBC学习笔记(7)——事务的隔离级别批量处理

    数据库事务的隔离级别 对于同时运行的多个事务, 当这些事务访问数据库中相同的数据时, 如果没有采取必要的隔离机制, 就会导致各种并发问题: 脏读: 对于两个事务 T1, T2, T1 读取了已经被 T ...

最新文章

  1. 瑞星杀毒软件所有监控已禁用!
  2. JS阻止事件冒泡的3种方法,以及他们之间的不同
  3. 网页怎么在图片上添加文字_想给图片添加文字,留白,添加小印章?用手机三步搞定...
  4. python 操作redis之——有序集合(sorted set) (七)
  5. opengl嵌入pyqt5编译的分割窗口中
  6. TensorFlow 资源汇集
  7. jdk7 for Mac
  8. 最短路径Dijkstra讲解,工具包使用 python
  9. 有状态服务和无状态服务的区别与联系
  10. react 更新input 默认值setfieldsvalue_值得收藏的React面试题
  11. #16192董哥授课的CCNP交换部分总结(三)
  12. System Center App Controller 2012 Service Pack 1系列文章
  13. 锐捷NAT地址池配置
  14. CentOS7配置阿里源
  15. simulink编程c语言用到DSP中,数字降噪耳机中自适应滤波器的设计实现.PDF
  16. iPhone模拟器消失 解决办法
  17. 字符串分隔 【问题描述】 输入两个字符串str和cut。cut由若干个字符构成,其中每个字符均可作为一个分隔字符对str进行分隔。
  18. 大疆精灵4RTK的运用
  19. 200行Html5+CSS3+JS代码实现动态圣诞树
  20. 动手焊板子流水账-测温数码管电机联动

热门文章

  1. Android SDK Manager下载详解
  2. 在Outlook中设置类似Foxmail带日期的签名
  3. 正则表达式收集(持久更新)
  4. arm-arago-linux-gnueabi 下载,arm-arago-linux-gnueabi问题
  5. Redis五大基本数据类型及其相关命令及常用用途
  6. matlab 全部的随机数函数
  7. onu光功率多少是正常_ONU、机顶盒、路由器常见网络问题及处理方法
  8. unity描边发光shader_unity shader实例#1 轮廓渲染-描边
  9. java 字符 几个字节_java中字符串占几个字节
  10. java实现数据库主键的更新_Java获取数据库自增主键表中插入数据的ID