Java的数据库编程之入门案例
通过上一篇博客Java的数据库编程之背景概述,可以得出:
1、JDBC API与驱动器管理器是有SUN公司制定并退出的;
2、每个数据库的驱动器程序是由每个数据库开发商以及数据库工具开发商在遵循SUN公司提出的标准的基础上实现并提出的;
3、由于JDBC API与驱动器管理器沟通,驱动器管理器通过各种数据库驱动与数据库通信,所以对于开发人员来说只要使用好JDBC API就可以;
=>我们需要学习JDBC API以及去找对应的数据库开发商搞一个数据库驱动器程序,一般来说使用JDBC有如下几个关键步骤(数据库对象创建及SQL使用不在此讲解范围内):
- 获取驱动程序Jar文件,并放置到项目的类路径中;
- 注册驱动器类;
- 获取数据库连接;
- 获取Statement对象来执行相关SQL操作;
- 关闭各种资源;
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);}
}
右键运行后,结果如下:
下面就几个要点说一下:
Java的数据库编程之入门案例相关推荐
- 【Java】数据库编程
Java中数据库编程是通过JDBC实现的.使用JDBC技术涉及三种不同的角色:Java官方,开发人员和数据库厂商.如下图所示: Java官方提供JDBC接口,如:Connection,Statemen ...
- JAVA实现数据库编程第三章_[数据库]使用Java实现数据库编程—03 第三章 高级查询(一)...
[数据库]使用Java实现数据库编程-03 第三章 高级查询(一) 0 2018-07-21 03:01:10 1.修改表:(1)修改表名语法: ALTER TABLE RENAME [ TO ] : ...
- java语言数据库编程_JAVA语言数据库编程实例详解
本文主要向大家介绍了JAVA语言数据库编程实例详解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. DOS命令登录MySQL数据库:mysql -h 127.0.0.1 -u root ...
- Java数据库编程(JDBC)-入门笔记
数据库(DB) 简介: • DB: Database = Data + Base • 数据库:数据+库,存放数据的库(场所) • 数据:规范.半规范.不规范数据 • 库 – 一个空间,一个场所 – 停 ...
- MySQL数据库(Java的数据库编程:JDBC)
作者:渴望力量的土狗 博客主页:渴望力量的土狗的博客主页 专栏:MySQL数据库 目录 什么是数据库编程: 什么是JDBC? JDBC工作原理: JDBC的使用及相关操作: JDBC开发案例: JDB ...
- Java的数据库编程之背景概述
(一)首先简单介绍下Java数据库编程的发展史: 1996年,SUN公司发布了第1版的Java数据库连接(JDBC)API,使编程人员可以通过这个API连接到数据库,并使用SQL完成对数据库的各种操作 ...
- MySQL~Java的数据库编程:JDBC(JDBC的环境配置以及使用)
目录 JDBC的环境配置 JDBC的使用步骤(Java操作数据库) 建立数据库连接 方式一:DriverManager 方式二:DataSource(数据源/数据库连接池) DataSource与 ...
- Java框架 SpringMVC介绍及入门案例
1.SpringMVC简介 1.1.什么是MVC MVC是一种软件架构的思想,将软件按照模型.视图.控制器来划分 M:Model ,模型层,指工程中的 JavaBean ,作用是处理数据 JavaBe ...
- Java——MySQL数据库编程练习
Day18--数据库编程 员工表emp:员工编号,姓名,工作职位,雇佣日期,工资,奖金,部门 部门表dept:部门编号,名称,部门领导 员工数据: 1001,'张三','销售','1999-12-1' ...
最新文章
- Linux-Learning
- [Android]你不知道的Android进程化(3)--进程等级
- Android 菜单选项动态变化
- 计算机软件及应用stata,蒙特卡洛模拟及其Stata应用实现
- c语言用整数 寻址,132-寻址运算符-C语言教程2020年 - 视频教程 - 北盟网校 - 专注原创教学第一站...
- linux按日期备份mysql,在Linux、Windows上如何按日期逻辑备份数据库
- 8种图数据库对 NULL 属性值支持情况
- 【经验分享】为什么后台取到的时间和前台差8个小时?
- (转)使用Spring注解方式管理事务与传播行为详解
- 拓端tecdat|R语言计量经济学与有时间序列模式的机器学习预测
- udp聊天?使用udp+python实现多人聊天室
- piap.windows io 监测attilax总结
- es使用同义词插件注意事项
- mysql的R树_R*树
- 进销存软件哪个简单好用?
- PDF写出:使用fop输出为pdf格式文件的Demo
- table文字超出显示省略号
- s开头wifi测试软件,应对5G WiFi 新一代无线测试的挑战
- 导出 MySQL 数据库表结构设计文档
- Python-苹果手机编程
热门文章
- WinDbg配置与下载 (转载)
- 利用预渲染加速iOS设备的图像显示
- Silverlight使用DataGrid的模板列(DataGridTemplateColumn)实现类似TreeListView控件的效果
- Python_类的特殊成员方法
- c语言链表递增,[C语言][PTA][2019Fall] 6-28 递增的整数序列链表的插入 (15 point(s))
- R7-2 谁是赢家 (10 分)
- 真神器!在家也能控制公司的电脑了
- spring boot配置虚拟路径(替代docBase配置)访问本地图片
- HTML5自定义数据属性data-*
- concat() “+“ 和 append() 的区别