第一章:导入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();
}
}
}

主要注意的是:

  1. 结果集合rs 中,next()方法相当于移动指针,不会读取数据,只会查看是否在新的指针位置中是否有数据。
  2. 这个ResultSet和iterator遍历器有相似之处。
  3. 调用结果集合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程序的更多相关文章

  1. JDBC 学习复习10 编写自己的JDBC框架

    首先万分感谢狼哥 孤傲苍狼 博客,整个jdbc学习的博客资料 链接为http://www.cnblogs.com/xdp-gacl/p/4006830.html 详细代码见狼哥博客,列出我学习过程中遇 ...

  2. 一起学Hadoop——使用IDEA编写第一个MapReduce程序(Java和Python)

    上一篇我们学习了MapReduce的原理,今天我们使用代码来加深对MapReduce原理的理解. wordcount是Hadoop入门的经典例子,我们也不能免俗,也使用这个例子作为学习Hadoop的第 ...

  3. 搭建java开发环境、使用eclipse编写第一个java程序

    搭建java开发环境.使用eclipse编写第一个java程序 一.Java 开发环境的搭建 1.首先安装java SDK(简称JDK). 点击可执行文件 jdk-6u24-windows-i586. ...

  4. 【安装eclipse, 配置java环境教程】 编写第一个java程序

    写java通常用eclipse编写,还有一款编辑器比较流行叫IJ.这里我们只说下eclipse编写java的前期工作. 在安装eclipse之前要下载java的sdk文件,即java SE:否则无法运 ...

  5. JavaWeb学习总结第二篇--第一个JavaWeb程序

    JavaWeb学习总结第二篇—第一个JavaWeb程序 最近我在学院工作室学习并加入到研究生的项目中,在学长学姐的带领下,进入项目实践中,为该项目实现一个框架(用已有框架进行改写).于是我在这里记录下 ...

  6. Java笔记:编写第一个Java程序

    2017.6.17 1.编写第一个Java程序 创建text文本,命名第一个Java程序.txt 在里面编写Java代码 public class Demo1{ public static void ...

  7. 假期作业02:安装JDK与文本编辑器并编写第一个Java程序

    假期作业02:安装JDK与文本编辑器并编写第一个Java程序 一.安装JDK与文本编辑器并编写第一个java程序 首先在oracle官网(需要创建账号,进行登录后方可使用)按照自己的需求下载JDK(h ...

  8. 【C#入门教案-02】用记事本编写第一个C#程序-Hello World

    02-用记事本编写第一个C#程序-Hello World 广东职业技术学院  欧浩源 [1]进行.NET程序开发的最基本环境配备 .NET Framework + 代码编辑工具(记事本或Noetpad ...

  9. 从零自学Java-1.编写第一个Java程序

    编写第一个Java程序 完成工作:1.在文本编辑器中输入一个Java程序. 2.使用括号组织程序. 3.保存.编译和运行程序. package com.Jsample;//将程序的包名称命名为com. ...

随机推荐

  1. 互联网公司实行目标管理(OKR)五点原则和基础

    下面从公司文化.组织架构.管理者.落地执行和区别绩效考核五个方面,讲述了如何在公司落地目标管理(OKR),这些是实施OKR的基础,也是原则,虽然写得比较简单,其实是我过去两年多不断观察.实践和摸索的总 ...

  2. Nginx安装及支持https代理配置和禁用TSLv1.0、TSLv1.1配置

    Linux安装Nginx Nginx安装及支持https代理配置和禁用TSLv1.0.TSLv1.1配置. 下载安装包 [root@localhost ~]# wget http://nginx.or ...

  3. Redis的使用(二)

    一.redis简单应用 其实在写这个redis专题时我想了很久,我觉得redis没什么好说的,因为现在是个人都会用redis,但是我在写netty专题时发现,netty里面很多东西和概念有很多跟red ...

  4. 3D可视化在化工领域的应用及案例分享

    2020年,中办.国办印发的<关于全面加强危险化学品安全生产工作的意见>中重点提出应加快"推进化工园区安全生产信息化.智能化平台建设,实现对园区内企业.重点场所.重大危险源.基础 ...

  5. 【万字长文】从零配置一个vue组件库

    简介 本文会从零开始配置一个monorepo类型的组件库,包括规范化配置.打包配置.组件库文档配置及开发一些提升效率的脚本等,monorepo 不熟悉的话这里一句话介绍一下,就是在一个git仓库里包含 ...

  6. windows10 安装MySQL ZIP版本

    今天重新学习了一下MySQL,但是呢刷题网站不知道为什么很卡,输入容易卡死崩溃,于是乎想在win10上面进行安装进行练习. 发现电脑里面没有,于是进行安装. 1.首先下载MySQL https://d ...

  7. NTT 学习笔记

    引入 \(\tt NTT\) 和 \(\tt FFT\) 有什么不一样呢? 就是 \(\tt NTT\) 是可以用来取模的,而且没有复数带来的精度误差. 最最重要的是据说 \(\tt NTT\) 常数 ...

  8. Oracle数据库控制文件多路复用

    Oracle数据库控制文件多路复用多路复用控制文件,指的是在系统不同的位置上同时存放多个控制文件的副本,此时如果某个路径对应的磁盘发送物理损坏导致该控制文件损坏,就可以通过另一个磁盘上的控制文件进行恢 ...

  9. Scala(二)IO流 读取文件和保存文件

    package com.shujia.scala import java.io.{BufferedReader, FileReader, FileWriter} import scala.io.{Bu ...

  10. 【一本通提高树链剖分】「ZJOI2008」树的统计

    [ZJOI2008]树的统计 题目描述 一棵树上有 n n n 个节点,编号分别为 1 1 1 到 n n n,每个节点都有一个权值 w w w. 我们将以下面的形式来要求你对这棵树完成一些操作: I ...