任务

创建一个数据库,名称为jdbc,再创建users表,然后再插入些数据,最后编写程序读取数据,并将结果打印在控制台。

搭建数据库环境

CREATE DATABASE IF NOT EXISTS `jdbc`;
USE `jdbc`;
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (`id` INT(11) NOT NULL AUTO_INCREMENT,`name` VARCHAR(40) DEFAULT NULL,`password` VARCHAR(40) DEFAULT NULL,`email` VARCHAR(60) DEFAULT NULL,`birthday` DATE DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
INSERT  INTO `users`(`id`,`name`,`password`,`email`,`birthday`) VALUES (1,'zs','123456','zs@qq.com','2021-11-26'),(2,'lisi','123456','lisi@sina.com','2021-10-01'),(3,'wangyu','123456','wangyu@sina.com','2021-09-01');

创建项目,导入数据库驱动

mysql驱动下载地址MySQL :: Download MySQL Connector/J (Archived Versions)

编写jdbc程序

创建Example01类,用于读取users表中数据,并将结果输出到控制台

public class Example01 {public static void main(String[] args) throws SQLException {Statement stmt = null;ResultSet rs = null;Connection conn = null;try {// 1. 注册数据库的驱动Class.forName("com.mysql.jdbc.Driver");// 2.通过DriverManager获取数据库连接String url = "jdbc:mysql://localhost:3306/jdbc";String username = "root";String password = "root";conn = DriverManager.getConnection (url, username, password);// 3.通过Connection对象获取Statement对象stmt = conn.createStatement();// 4.使用Statement执行SQL语句。String sql = "select * from users";rs = stmt.executeQuery(sql);// 5. 操作ResultSet结果集System.out.println("id | name   | password | email  | birthday");while (rs.next()) {int id = rs.getInt("id"); // 通过列名获取指定字段的值String name = rs.getString("name");String psw = rs.getString("password");String email = rs.getString("email");Date birthday = rs.getDate("birthday");System.out.println(id + " | " + name + " | " + psw + " | " + email+ " | " + birthday);}} catch (ClassNotFoundException e) {e.printStackTrace();} finally{// 6.回收数据库资源if(rs!=null) {try {rs.close();} catch (SQLException e) {e.printStackTrace();}rs = null;}if(stmt!=null) {try {stmt.close();} catch (SQLException e) {e.printStackTrace();}stmt = null;}if(conn!=null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}conn = null;}}        }
}

注意:

1.注册驱动

虽然使用DriverManager.registerDriver(new com.mysql.jdbc.Driver())方法也可以完成注册,但此方式会使数据库驱动被注册两次。这是因为Driver类的源码中,已经在静态代码块中完成了数据库驱动的注册。所以,为了避免数据库驱动被重复注册,只需要在程序中使用Class.forName()方法加载驱动类即可。

2.释放资源

由于数据库资源非常宝贵,数据库允许的并发访问连接数量有限,因此,当数据库资源使用完毕后,一定要记得释放资源。为了保证资源的释放,在Java程序中,应该将最终必须要执行的操作放在finally代码块中。

案例:演示JDBC的使用相关推荐

  1. 2021年大数据Flink(二十四):​​​​​​​Allowed Lateness案例演示

    Allowed Lateness案例演示 需求 有订单数据,格式为: (订单ID,用户ID,时间戳/事件时间,订单金额) 要求每隔5s,计算5秒内,每个用户的订单总金额 并添加Watermaker来解 ...

  2. 2021年大数据Flink(二十三):​​​​​​​Watermaker案例演示

    目录 Watermaker案例演示 需求 API 代码实现-1-开发版-掌握 代码实现-2-验证版-了解 Watermaker案例演示 需求 有订单数据,格式为: (订单ID,用户ID,时间戳/事件时 ...

  3. 用两个使用Caffe的小项目案例演示迁移学习的实用性

    近年来随着深度学习的急剧升温,不管是学术界还是工业界都把大量资源投入了深度学习.作为一个普通的工程师或者程序员,也想对机器学习,尤其是深度学习有所了解,应当如何入手?最好的回答当然是"get ...

  4. Nginx跨域问题的案例演示

    跨域问题的案例演示 出现跨域问题会有什么效果?,接下来通过一个需求来给大家演示下: (1)nginx的html目录下新建一个a.html <html><head><met ...

  5. 【原创 HadoopSpark 动手实践 6】Spark 编程实例与案例演示

     [原创 Hadoop&Spark 动手实践 6]Spark 编程实例与案例演示 Spark 编程实例和简易电影分析系统的编写 目标: 1. 掌握理论:了解Spark编程的理论基础 2. 搭建 ...

  6. 学校计算机教学演示,案例演示在计算机基础教学中的运用

    随着电脑的普及,计算机基础教学也在逐步地发展,教学方法和教学理念也日趋完善.由于计算机基础是一门比较强调动手能力和实用性的学科,它要求学生能自己动手操作,那么案例演示这种教学方法就比较适用于计算机基础 ...

  7. 软件工程六大设计原则总结,案例演示

    本文源码:GitHub·点这里 || GitEE·点这里 文章目录 一.单一职责原则 二.接口隔离原则 三.依赖倒转原则 四.里氏替换原则 五.开闭原则 六.迪米特原则 七.设计原则总结 八.源代码地 ...

  8. mui组件 a 锚点定位(Demo案例演示)- 代码篇

    文章目录 `从踩坑,入坑,到跳出坑`:mui框架(在mui-scroll中如何进行页内锚点跳转) `那么,用什么方法实现锚点跳转?` `思路就是:` - 我们可以使用另外一种MUI组件,即:`(顶部选 ...

  9. 案例演示Python二维列表与Java二维数组

    1.Python二维列表案例演示 运行程序,结果如下: 2.案例演示Java二维数组 package net.hw.test;/*** 功能:二维数组用法示例* 作者:华卫* 日期:2013年12月1 ...

  10. 【Docker镜像文件加载原理生产中重新制作并提交镜像文件案例演示】

    一.知识回顾 之前的内容都帮你整理好了,在这里哟! [0.Docker相关目录文章整理,可自行查看,包含多节内容] [1.Docker详细安装部署&阿里镜像地址配置] [2.Docker架构& ...

最新文章

  1. Netty之WebSocket和四种IO介绍
  2. 如何访问自定义键值的二维数组
  3. JSF优点(转载自中国IT实验室)
  4. 大数据 智能交通调度_大数据技术在智能交通中的应用
  5. Java中多态(向上转型)机制
  6. 你真的了解Python吗?这篇文章可以让你了解90%
  7. Date日期类型的绑定
  8. Java StringBuilder codePointCount()方法与示例
  9. 前端技术周刊 2019-01-21:跨端开发的三条路线
  10. 【英语学习】【WOTD】asperity 释义/词源/示例
  11. git(3)---git 安装
  12. 腾讯地图api-前端定位组件
  13. 映月城与电子姬服务器维护,映月城与电子姬11月16日更新公告 加强玩家作弊检测增加举报功能...
  14. oracle asm 错误集
  15. fastjson取某个key_JAVA学习:怎么给函数取一个“合理”的名字
  16. IE6下链接onclick事件处理中的请求被aborted
  17. 数据库面试题---原理
  18. 华为MA5606T升级固件
  19. Google Cloud API设计指南
  20. 移动 App 背后的一站式存储解决方案实践

热门文章

  1. 不同模块下包重名怎么解决_口臭怎么解决?|盘点不同类型口臭的去除方法
  2. 【Elasticsearch】Elasticsearch 集群协调迎来新时代
  3. 【Elasticsearch】如何在 Elasticsearch 中轻松编写脚本
  4. 60-200-070-使用-命令-MySQL慢查询日志
  5. 【Flink】Flink 报错 Hash join exceeded Too many duplicate keys
  6. [Yarn] Yarn local-dirs are bad 导致节点处于不健康状态
  7. 【Kafka】kafka 再均衡监听器 ConsumerRebalanceListener
  8. 【Spark】SparkStreaming的应用及其原理
  9. MyIbatis使用trim灵活的插入
  10. 01-maven build项目