通过上一篇博客Java的数据库编程之背景概述,可以得出:

1、JDBC API与驱动器管理器是有SUN公司制定并退出的;

2、每个数据库的驱动器程序是由每个数据库开发商以及数据库工具开发商在遵循SUN公司提出的标准的基础上实现并提出的;

3、由于JDBC API与驱动器管理器沟通,驱动器管理器通过各种数据库驱动与数据库通信,所以对于开发人员来说只要使用好JDBC API就可以;

=>我们需要学习JDBC API以及去找对应的数据库开发商搞一个数据库驱动器程序,一般来说使用JDBC有如下几个关键步骤(数据库对象创建及SQL使用不在此讲解范围内):

  1. 获取驱动程序Jar文件,并放置到项目的类路径中;
  2. 注册驱动器类;
  3. 获取数据库连接;
  4. 获取Statement对象来执行相关SQL操作;
  5. 关闭各种资源;
那么接下来,通过一个简单的例子来认识下这个过程:
a)首先看一下项目结构,需要建一个TestDB.java文件(用来编写程序)和一个database.properties文件(用来配置数据库连接信息):
b)上TestDB.java代码,该类的主要功能是将database.properties文件中配置的数据库连接信息加载到Properties对象中,然后利用这些配置信息,获取数据库连接,然后利用该连接做创建一个表、插入数据、展示插入的数据和最后删除表的操作!代码如下:
package test.jdbc;import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;import com.mysql.jdbc.Driver;/** 这个程序用来测试数据库和JDBC驱动器是否被正确配置和使用;*/
public class TestDB {public static void main(String[] args) throws IOException {try {runTest();} catch (SQLException e) {for (Throwable t : e) {t.printStackTrace();}}}/** 运行一个测试程序,用来创建一个表、插入一个值、展示表中的内容、移除表*/public static void runTest() throws SQLException, IOException {try (Connection conn = getConnection()) {Statement stat = conn.createStatement();stat.executeUpdate("CREATE TABLE Greetings(Message CHAR(20))");stat.executeUpdate("INSERT INTO Greetings VALUES('Hello, World!')");try (ResultSet rs = stat.executeQuery("SELECT * FROM Greetings")) {while (rs.next()) {System.out.println(rs.getString(1));}}stat.executeUpdate("DROP TABLE Greetings");}}/** 从指定的database.properties文件中获取数据库连接* * @return 对应的数据库连接*/public static Connection getConnection() throws IOException, SQLException {Properties props = new Properties();// 从database.properties文件中加载数据库连接信息try (InputStream in = Files.newInputStream(Paths.get("src/database.properties"))) {props.load(in);}String driver = props.getProperty("jdbc.driver");String url = props.getProperty("jdbc.url");String username = props.getProperty("jdbc.username");String password = props.getProperty("jdbc.password");// 注册MySql驱动器程序if (driver != null) {System.setProperty("jdbc.drivers", driver);} else {DriverManager.registerDriver(new Driver());}// 获取数据库连接return DriverManager.getConnection(url, username, password);}
}

右键运行后,结果如下:


下面就几个要点说一下:
1、在执行SQL命令之前,首先需要创建一个Statement对象,该对象通过Connection对象(该对象通过DriverManager.getConnection()方法获得)获取,Statement对象相当于一个在当前连接上的SQL执行器可以通过调用executeUpdate()方法来执行DML和DDL操作,通过调用executeQuery()方法来执行DQL操作;
2、当调用executeQuery()方法返回的查询结果封装到一个ResultSet类型的对象中,可以通过它来遍历所有查询结果,需要注意的是ResultSet接口的迭代协议与java.util.Iterator接口稍有不同,ResultSet接口的迭代器初始化时被设定在第一行之前的位置,必须调用next方法将它地洞到第一行,另外它没有hasNext方法;当迭代器处于结果集的某行时才可以调用访问器来获取信息;
3、当ResultSet接口的迭代器处于结果集的某行时,我们就可以针对不同的类型使用不同的访问器,比如获取的结果集中某字段是varchar类型,那么在Java中可以采用getString访问器去获取当前行的列信息,比如
SELECT employee_name,salary FROM sl_employee; 用获取employee_name信息,我们既可以通过getString("employee_name")也可以通过getString(1)的方式去获取,前者直接通过字段名,后者根据要获取的列在当前结果集中属于第几列来获取,这两种方式的区别是使用数字型参数效率更高一些,但是使用字符串参数可以使代码易于阅读和维护。最后需要注意的是当get方法的类型和列的数据类型不一致时,每个get方法都会进行合理的类型转换;
好了,就说这么多吧,后续会讲解更多的关于JDBC的内容!

Java的数据库编程之入门案例相关推荐

  1. 【Java】数据库编程

    Java中数据库编程是通过JDBC实现的.使用JDBC技术涉及三种不同的角色:Java官方,开发人员和数据库厂商.如下图所示: Java官方提供JDBC接口,如:Connection,Statemen ...

  2. JAVA实现数据库编程第三章_[数据库]使用Java实现数据库编程—03 第三章 高级查询(一)...

    [数据库]使用Java实现数据库编程-03 第三章 高级查询(一) 0 2018-07-21 03:01:10 1.修改表:(1)修改表名语法: ALTER TABLE RENAME [ TO ] : ...

  3. java语言数据库编程_JAVA语言数据库编程实例详解

    本文主要向大家介绍了JAVA语言数据库编程实例详解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. DOS命令登录MySQL数据库:mysql -h 127.0.0.1 -u root ...

  4. Java数据库编程(JDBC)-入门笔记

    数据库(DB) 简介: • DB: Database = Data + Base • 数据库:数据+库,存放数据的库(场所) • 数据:规范.半规范.不规范数据 • 库 – 一个空间,一个场所 – 停 ...

  5. MySQL数据库(Java的数据库编程:JDBC)

    作者:渴望力量的土狗 博客主页:渴望力量的土狗的博客主页 专栏:MySQL数据库 目录 什么是数据库编程: 什么是JDBC? JDBC工作原理: JDBC的使用及相关操作: JDBC开发案例: JDB ...

  6. Java的数据库编程之背景概述

    (一)首先简单介绍下Java数据库编程的发展史: 1996年,SUN公司发布了第1版的Java数据库连接(JDBC)API,使编程人员可以通过这个API连接到数据库,并使用SQL完成对数据库的各种操作 ...

  7. MySQL~Java的数据库编程:JDBC(JDBC的环境配置以及使用)

      目录 JDBC的环境配置 JDBC的使用步骤(Java操作数据库) 建立数据库连接 方式一:DriverManager 方式二:DataSource(数据源/数据库连接池) DataSource与 ...

  8. Java框架 SpringMVC介绍及入门案例

    1.SpringMVC简介 1.1.什么是MVC MVC是一种软件架构的思想,将软件按照模型.视图.控制器来划分 M:Model ,模型层,指工程中的 JavaBean ,作用是处理数据 JavaBe ...

  9. Java——MySQL数据库编程练习

    Day18--数据库编程 员工表emp:员工编号,姓名,工作职位,雇佣日期,工资,奖金,部门 部门表dept:部门编号,名称,部门领导 员工数据: 1001,'张三','销售','1999-12-1' ...

最新文章

  1. Linux-Learning
  2. [Android]你不知道的Android进程化(3)--进程等级
  3. Android 菜单选项动态变化
  4. 计算机软件及应用stata,蒙特卡洛模拟及其Stata应用实现
  5. c语言用整数 寻址,132-寻址运算符-C语言教程2020年 - 视频教程 - 北盟网校 - 专注原创教学第一站...
  6. linux按日期备份mysql,在Linux、Windows上如何按日期逻辑备份数据库
  7. 8种图数据库对 NULL 属性值支持情况
  8. 【经验分享】为什么后台取到的时间和前台差8个小时?
  9. (转)使用Spring注解方式管理事务与传播行为详解
  10. 拓端tecdat|R语言计量经济学与有时间序列模式的机器学习预测
  11. udp聊天?使用udp+python实现多人聊天室
  12. piap.windows io 监测attilax总结
  13. es使用同义词插件注意事项
  14. mysql的R树_R*树
  15. 进销存软件哪个简单好用?
  16. PDF写出:使用fop输出为pdf格式文件的Demo
  17. table文字超出显示省略号
  18. s开头wifi测试软件,应对5G WiFi 新一代无线测试的挑战
  19. 导出 MySQL 数据库表结构设计文档
  20. Python-苹果手机编程

热门文章

  1. WinDbg配置与下载 (转载)
  2. 利用预渲染加速iOS设备的图像显示
  3. Silverlight使用DataGrid的模板列(DataGridTemplateColumn)实现类似TreeListView控件的效果
  4. Python_类的特殊成员方法
  5. c语言链表递增,[C语言][PTA][2019Fall] 6-28 递增的整数序列链表的插入 (15 point(s))
  6. R7-2 谁是赢家 (10 分)
  7. 真神器!在家也能控制公司的电脑了
  8. spring boot配置虚拟路径(替代docBase配置)访问本地图片
  9. HTML5自定义数据属性data-*
  10. concat() “+“ 和 append() 的区别