一、JDBC概述

1、JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力。

2、JDBC模型

JAVA程序一般通过调用JDBC所定义的类和接口来处理数据库中的数据,也就是通过调用JDBC的驱动程序实现对数据库的操作。

3、JDBC操作数据库过程

基于JDBC的数据库程序设计方法通过三步组成。

(1)首先是连接数据库

(2)然后是执行SQL(Structure Query Language,结构化查询语言)语句并处理查询结果.。

通过执行SQL语句可以处理数据库数据,比如对数据库中的记录进行添加、删除、修改等操作,或者查询满足某种条件的数据等。

(3)最后是关闭连接

二、JDBC四种驱动方式

1、JDBC-ODBC桥加ODBC驱动程序

JDBC-ODBC桥产品利用ODBC驱动程序提供JDBC访问。在服务器上必须可以安装ODBC驱动程序。JDBC-ODBC桥是一个JDBC驱动程序,它通过将JDBC操作转换为ODBC操作来实现JDBC操作。

2、本地API结合Java驱动程序

本地API Java驱动程序通过JDBC驱动程序将应用程序中的调用请求转化为本地API调用,由本地API与数据库通信,数据库处理完请求将结果通过本地API返回,进而返回给JDBC驱动程序,JDBC驱动程序将返回的结果转化为JDBC标准形式,再返回给客户程序。

3、网络纯Java驱动程序

这种驱动程序将JDBC转换为与DBMS无关的网络协议,之后这种协议又被某个服务器转换为一种DBMS协议 。

4、本地协议纯Java驱动程序

驱动程序将JDBC调用直接转换为DBMS所使用的网络协议。这种驱动与数据库建立直接的套接字连接,采用具体数据库厂商的网络协议把JDBC API调用转换为直接网络调用,也就是允许从客户机机器上直接调用DBMS服务器,是Intranet访问的一个很实用的解决方法。
建议尽可能地使用纯Java JDBC驱动程序代替桥和ODBC驱动程序,这可以完全省去ODBC所需的客户机配置,也免除了被其它插件错误影响数据库连接的可能性。

三、JDBC常用API

JDBC 向应用程序开发者提供独立于某种数据库的统一的API。JDBC API是一系列抽象的接口,它使得应用程序员能够进行数据库连接,执行SQL 声明,并且返回结果。

JDBC 的 API 中,我们只需要关注下面几个类即可。

(1)数据源(javax.sql.DataSource)

(2)数据库连接(java.sql.Connection)

(3)SQL语句执行器(java.sql.Statement)

(4)SQL 查询结果集(java.sql.ResultSet)

四、JDBC实例
1、安装mysql服务:MySQL 5.7.27详细下载安装配置教程_ZZZhonngger的博客-CSDN博客_mysql5.7下载安装教程

2、在mysql客户端(本人使用的Navicat)配置连接,主要是数据库名、用户名、密码

3、新建student表

4、下载JDBC驱动,后面要用,下载链接:

mysql-connector-java-8.0.15-bin.jar_少年无为的博客-CSDN博客_mysql-connector-java-8.0.15.jar

5、在IDEA新建项目,把下载的JDBC解压,将里面的mysql-connector-java-8.0.15.jar添加进项目

5、编写java主程序

public class testJDBC {public static void main(String[] args)throws Exception{String URL = "jdbc:mysql://localhost:3306/database?useSSL=false&useUnicode=true&characterEncoding=UTF-8";String USER = "root";String PASSWORD = "psw123";String sql ="insert into student(id,name,birthday,Email) values ('1','张三','1990/10/1','zs@163.com')";String sql2 ="select * from student where name='张三'";try{Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动Connection conn=DriverManager.getConnection(URL,USER,PASSWORD);//创建数据库连接Statement stmt=conn.createStatement();//创建Statement对象boolean result=stmt.execute(sql);//执行sqlResultSet rs=stmt.executeQuery(sql2);//执行查询sqlwhile (rs.next()) {//遍历查询结果集String id = rs.getString("id");String name = rs.getString("name");String birthday = rs.getString("birthday");String Email = rs.getString("Email");System.out.println("编号:"+id+"\t姓名:"+name+"\t出生年月:"+birthday+"\t邮箱:"+Email);}rs.close();stmt.close();conn.close();}catch(ClassNotFoundException e){System.out.println("找不到指定的驱动程序类!");}catch(SQLException e){e.printStackTrace();}}
}

结果:

参考链接:

1、源码详解系列(二) -- jdbc-mysql的使用和分析 - 子月生 - 博客园

2、JDBC连接数据库7个步骤_区块链之美的博客-CSDN博客_使用jdbc连接数据库的步骤

java数据库编程入门相关推荐

  1. 《Java并发编程入门与高并发面试》or 《Java并发编程与高并发解决方案》笔记

    <Java并发编程入门与高并发面试>or <Java并发编程与高并发解决方案>笔记 参考文章: (1)<Java并发编程入门与高并发面试>or <Java并发 ...

  2. 数据库编程入门培训(二)

    本文为数据库编程入门培训的第二讲,主要讲述一下数据库编程具体怎么实现.示例代码在本文后面的附件中可以下载. 如上篇文章所描述的那样,由于Microsoft Access数据库比较直观,适合初学者入门学 ...

  3. JAVA NIO编程入门(二)

    一.回顾 上一篇文章 JAVA NIO编程入门(一)我们学习了NIO编程的基础知识,并通过一个小demo实战帮助了解NIO编程的channel,buffer等概念.本文会继续学习JAVA NIO编程, ...

  4. Java 函数式编程入门

    Java 函数式编程入门 函数式编程实战 改进 完整代码   像 JavaScript 这种语言很早就支持闭包了,虽然 C++ 很早就有了函数指针,Java 也很早就提供了反射中的 Method 类, ...

  5. java数据库编程——元数据(metadata)+web 与企业应用中的连接管理

    [0]README 1) 本文部分文字描述转自 core java volume 2 , 测试源代码均为原创, 旨在理解 java数据库编程--元数据(metadata)+web 与企业应用中的连接管 ...

  6. java数据库编程——事务

    [0]README 1) 本文部分文字描述转自 core java volume 2 , 测试源代码均为原创, 旨在理解 java数据库编程--事务 的基础知识 : 2)for database co ...

  7. java数据库编程——可滚动和可更新的结果集

    [0]README 1) 本文部分文字描述转自 core java volume 2 , 测试源代码均为原创, 旨在理解 java数据库编程--可滚动和可更新的结果集 的基础知识 : 2)for da ...

  8. java数据库编程——执行查询操作(二)

    [0]README 1) 本文部分文字描述和source code 均转自 core java volume 2 , 旨在理解 java数据库编程--执行查询操作(二) 的基础知识 : 2) 本文和 ...

  9. java数据库编程——执行查询操作(一)

    [0]README 1) 本文部分文字描述和source code 均转自 core java volume 2 , 旨在理解 java数据库编程--执行查询操作 的基础知识 : 2) 本文和 jav ...

  10. java数据库编程——执行SQL 语句

    [0]README 1) 本文文字描述+source code 均转自 core java volume 2 , 旨在理解 java数据库编程--执行SQL 语句 的基础知识 : 2)for sour ...

最新文章

  1. 在 Ubuntu 14.04/15.04 上配置 Node JS v4.0.0
  2. python对象列表转换为字典_python – 将csv.DictReader对象转换为字典列表...
  3. keras框架:目标检测Faster-RCNN思想及代码
  4. LeetCode(1029)——两地调度(JavaScript)
  5. Hyper-V故障转移群集搭建(1)
  6. golang解析嵌套yaml配置(局部解析)
  7. SSM框架面试题及答案整理
  8. 韩顺平 零基础30天学会Java 学习笔记
  9. CDR9 X4 才是最稳定的经典版本,但是汉字文本对齐方面还是有点欠缺
  10. 弹簧设计计算软件简介
  11. Ruby中的类和模块和变量使用说明
  12. 英国AI研究员揭开真相,中国人工智能为何能发展迅速?
  13. jq简单实现五星好评
  14. 就大学生对网络舆情态度的调查
  15. js给动态创建出来的元素添加事件
  16. 编码首行缩进使用Tab键好还是空格好?
  17. “工作12年,还是输给小年轻”:IT人的中年职场保卫战,该如何打赢?
  18. matlab中一些特殊字符的表示方法(如摄氏度°,·),上标和下标的表示方法
  19. 苹果汽车将不支持全自动驾驶;华为云发布研发需求管理工具;腾讯文档发布企业版;OpenAI上线ChatGPT | 每日大事件...
  20. 记一个win10 IPsec vpn注册表问题

热门文章

  1. 基于C#实现的个人日程管理系统
  2. MIDI入门: 用简谱轻松自定义midi音乐 [圣诞贺卡+铃儿响叮当]
  3. xheditor可视化富文本编辑器
  4. c语言程序设计 考试报名管理系统,C语言程序设计考试题库
  5. WinForm转WPF
  6. 猜数字游戏(Java源代码)
  7. C++ Web编程实战
  8. ax 2012 随笔
  9. 转载Prince_vegeta制作的VC知识库1-53期合订本索引文件。
  10. 打印系统开发(56)——打印机驱动程序设计指南