【JDBC】学习路径2-编写第一个JDBC程序
第一章:导入jar包
在未安装MySQL数据库的请务必安装,安装教程:【MySQL】从入门到掌握2-下载安装
connector/J下载地址:https://dev.mysql.com/downloads/connector/j/

选择对应平台下载即可。
Mac端请直接选择Platform Independent。
意思是“平台无关”,全平台通用。
下载完后解压包如下。

在IDEA中,选择项目结构,点击Libraries导入刚才下载的文件。


然后就可以了。
第二章:注册连接数据库
1-创建(测试用)数据库
连接数据库之前,先创建一个数据库。
打开控制台(终端),mysql -uroot -p
进入数据库后创建数据库:create database jdbc_01;
创建一张表格,一会用做测试:create table user(id int not null auto_increment,username varchar(45),password varchar(45),primary key(id));

插入几条数据:insert into user(username,password) values('remoo1','1234');
insert into user(username,password) values('remoo2','121234');
insert into user(username,password) values('BruceLiu','882200');
insert into user(username,password) values('Mariana','122344');
2-注册连接数据库
回到IDEA,
键入代码:
import java.sql.*;
public class demo01 {
public static void main(String[] args) {
try {
//注册驱动,使用该驱动连接数据库
Class.forName("com.mysql.jdbc.Driver");
//输入我们刚才创建的数据库名称
//String url = "jdbc:mysql://localhost:3306/jdbc_01";
String url = "jdbc:mysql://localhost:3306/jdbc_01?useUnicode=true&characterEncoding=UTF8";
//数据库用户名和密码
String user = "root";
String password = "88888888";
//与数据库建立连接
Connection con = DriverManager.getConnection(url,user,password);
//SQL语句执行机
Statement stmt = con.createStatement();
//结果集合
ResultSet rs;
//通过语句执行机stmt执行SQL的查询命令,返回到结果集rs中
rs = stmt.executeQuery("select * from user");
//从rs结果集合中获取信息
while(rs.next()){
int r_id = rs.getInt(1);
String r_username = rs.getString(2);
String r_password = rs.getString(3);
System.out.println(r_id+"\t用户名:"+r_username+"\t密码:"+r_password);
}
//依次关闭,先关闭最后启动的
rs.close();
stmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
主要注意的是:
- 结果集合rs 中,next()方法相当于移动指针,不会读取数据,只会查看是否在新的指针位置中是否有数据。
- 这个ResultSet和iterator遍历器有相似之处。
- 调用结果集合rs的getInt()方法的时候,我们不仅可以直接传递columnIndex,还可以直接传递column的名字,如
rs.getInt("username")
输入返回:

和控制台(终端)的结果一样。

3-异常抛出
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
意思是com.mysql.jdbc.Driver已经被弃用了,改为com.mysql.cj.jdbc.Driver即可。
第三章:优化JDBC程序
在当前位置调用close()关闭rs,stmt,con是不合理的。
如果上面的语句出现了异常,那么rs,stmt,con就不会关闭了。
把他们放在finally中。
并且把rs等对象的初始化放在try语句块的外部。
并且在关闭前查看一下对象是非为空。
import java.sql.*;
public class demo01 {
public static void main(String[] args) {
//与数据库建立连接
Connection con = null;
//SQL语句执行机
Statement stmt = null;
//结果集合
ResultSet rs = null;
try {
//注册驱动,使用该驱动连接数据库
// Class.forName("com.mysql.jdbc.Driver");
Class.forName("com.mysql.cj.jdbc.Driver");
//输入我们刚才创建的数据库名称
//String url = "jdbc:mysql://localhost:3306/jdbc_01";
String url = "jdbc:mysql://localhost:3306/jdbc_01?useUnicode=true&characterEncoding=UTF8";
//数据库用户名和密码
String user = "root";
String password = "88888888";
//与数据库建立连接
con = DriverManager.getConnection(url, user, password);
//SQL语句执行机
stmt = con.createStatement();
//通过语句执行机stmt执行SQL的查询命令,返回到结果集rs中
rs = stmt.executeQuery("select * from user");
//从rs结果集合中获取信息
while (rs.next()) {
int r_id = rs.getInt(1);
String r_username = rs.getString(2);
String r_password = rs.getString(3);
System.out.println(r_id + "\t用户名:" + r_username + "\t密码:" + r_password);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
//依次关闭,先关闭最后启动的
try {
if (rs != null)
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (stmt != null)
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (con != null)
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
【JDBC】学习路径2-编写第一个JDBC程序的更多相关文章
- JDBC 学习复习10 编写自己的JDBC框架
首先万分感谢狼哥 孤傲苍狼 博客,整个jdbc学习的博客资料 链接为http://www.cnblogs.com/xdp-gacl/p/4006830.html 详细代码见狼哥博客,列出我学习过程中遇 ...
- 一起学Hadoop——使用IDEA编写第一个MapReduce程序(Java和Python)
上一篇我们学习了MapReduce的原理,今天我们使用代码来加深对MapReduce原理的理解. wordcount是Hadoop入门的经典例子,我们也不能免俗,也使用这个例子作为学习Hadoop的第 ...
- 搭建java开发环境、使用eclipse编写第一个java程序
搭建java开发环境.使用eclipse编写第一个java程序 一.Java 开发环境的搭建 1.首先安装java SDK(简称JDK). 点击可执行文件 jdk-6u24-windows-i586. ...
- 【安装eclipse, 配置java环境教程】 编写第一个java程序
写java通常用eclipse编写,还有一款编辑器比较流行叫IJ.这里我们只说下eclipse编写java的前期工作. 在安装eclipse之前要下载java的sdk文件,即java SE:否则无法运 ...
- JavaWeb学习总结第二篇--第一个JavaWeb程序
JavaWeb学习总结第二篇—第一个JavaWeb程序 最近我在学院工作室学习并加入到研究生的项目中,在学长学姐的带领下,进入项目实践中,为该项目实现一个框架(用已有框架进行改写).于是我在这里记录下 ...
- Java笔记:编写第一个Java程序
2017.6.17 1.编写第一个Java程序 创建text文本,命名第一个Java程序.txt 在里面编写Java代码 public class Demo1{ public static void ...
- 假期作业02:安装JDK与文本编辑器并编写第一个Java程序
假期作业02:安装JDK与文本编辑器并编写第一个Java程序 一.安装JDK与文本编辑器并编写第一个java程序 首先在oracle官网(需要创建账号,进行登录后方可使用)按照自己的需求下载JDK(h ...
- 【C#入门教案-02】用记事本编写第一个C#程序-Hello World
02-用记事本编写第一个C#程序-Hello World 广东职业技术学院 欧浩源 [1]进行.NET程序开发的最基本环境配备 .NET Framework + 代码编辑工具(记事本或Noetpad ...
- 从零自学Java-1.编写第一个Java程序
编写第一个Java程序 完成工作:1.在文本编辑器中输入一个Java程序. 2.使用括号组织程序. 3.保存.编译和运行程序. package com.Jsample;//将程序的包名称命名为com. ...
随机推荐
- Javaweb-在idea中配置Tomcat
解决警告问题 为什么会有这个问题:我们访问一个网站,需要制定一个文件夹名字 最后点OK,Tomcat就亮起来了 运行成功弹出界面:
- OpenCloudOS使用snap安装.NET 6
开源操作系统社区 OpenCloudOS 由腾讯与合作伙伴共同倡议发起,是完全中立.全面开放.安全稳定.高性能的操作系统及生态.OpenCloudOS 沉淀了多家厂商在软件和开源生态的优势,继承了腾讯 ...
- RabbitMD大揭秘
RabbitMD大揭秘 欢迎关注H寻梦人公众号 通过SpringBoot整合RabbitMQ的案例来说明,RabbitMQ相关的各个属性以及使用方式:并通过相关源码深刻理解. Queue(消息队列) ...
- 所有人都说Python 简单易学,为何我觉得难?
来谈谈心 记得刚学Python的时候,几乎所有人都说Python 简单易学,而对于编程零基础,只掌握Word和Excel的人来说,感觉真的好难. 学习之前网上的教材看了,Python的书也看了,包括& ...
- 互联网研发效能之去哪儿网(Qunar)核心领域DevOps落地实践
本文从业务目标角度出发,确定了开源+自建模式搭建 Qunar 研发工具链整体生态:通过 APPCODE 打通工具链,流程规范化自动化:多种手段+发布门禁助力质量提升:建立应用画像确定运维最小单元,可发 ...
- 让你的Nginx支持分布式追踪
Background NGINX 是一个通用且流行的应用程序.也是最流行的 Web 服务器,它可用于提供静态文件内容,但也通常与其他服务一起用作分布式系统中的组件,在其中它用作反向代理.负载均衡 或 ...
- 一个月后,我们又从 MySQL 双主切换成了主 - 从!
这是悟空的第 157 篇原创文章 官网:www.passjava.cn 你好,我是悟空. 一.遇到的坑 一个月前,我们在测试环境部署了一套 MySQL 高可用架构,也就是 MySQL 双主 + Kee ...
- ModuleNotFoundError: No module named 'distutils.spawn'
解决办法: 安装python3-distutils sudo apt-get install python3-distutils
- C++类对象作为类成员
//当其他类的对象作为本类的成员 构造的时候先去构造类的对象 再去构造自身 //析构函数: 先进后出 先去构造Phone 再去构造Person Person先退出 Phone后退出 //析构与构造顺序 ...
- 简答一波 HashMap 常见八股面试题 —— 算法系列(2)
请点赞,你的点赞对我意义重大,满足下我的虚荣心. Hi,我是小彭.本文已收录到 GitHub · Android-NoteBook 中.这里有 Android 进阶成长知识体系,有志同道合的朋友,关注 ...