一、JDBC驱动教程

1. 下载JDBC jar 包


1.下载8,0的jar包可以支持之前的 5.6, 5.7, 8.0 mydql版本,请对应你自己的版本

2.下载链接如下
https://dev.mysql.com/downloads/connector/j/

3.选这个

4.下载zip

2. 配置教程

1,解压并复制 jar包

2.idea软件你的项目和src同级的目录新建 lib目录

3.将jar包复制粘贴到lib目录,(注意这里是jar包不是整个zip文件)


4.右键添加到Library

ok,

**没有报错提示,恭喜你配置成功! **

二、第一个JDBC程序

1.建表:

(这个只是例子,你也可以用你自己的表)
1.数据库

CREATE DATABASE `bmft_blog` DEFAULT CHARACTER SET utf8 ;

2.表

USE `bmft_blog`
CREATE TABLE `user` (`id` int(10) unsigned zerofill NOT NULL AUTO_INCREMENT COMMENT 'user,id主键',`user_name` varchar(30) NOT NULL COMMENT 'user_name 用户名,唯一',`password` varchar(30) NOT NULL COMMENT 'password 密码',`introduction` varchar(100) DEFAULT '什么介绍也没有哦' COMMENT '简介',`phone_number` varchar(11) DEFAULT NULL COMMENT '绑定手机号',`mailbox` varchar(30) DEFAULT NULL COMMENT '绑定邮箱',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

3.数据:


insert  into `user`(`id`,`user_name`,`password`,`introduction`,`phone_number`,`mailbox`) values (0000000001,'张三','111111','法外狂徒','0315313',''),(0000000002,'电瓶','111111','打工是不可能打工的',NULL,NULL),(0000000003,'王二','111111','隔壁来了新的邻居',NULL,NULL);

4.效果:

2. 步骤分析

 * 我的第一个JDBC程序.* 1.加载JDBC驱动* 2.填(新建)连接的信息,URL,账号,密码* 3.连接数据库,获取数据库Connection对象,*      (1)DriverManager.getConnection(url,user,password);* 4.通过Connection数据库对象,创建createStatement(),statement执行对象.* 5.使用执行对象执行SQL语句,获得ResultSet,Set数据集合* 6.使用数据集合取出getObject(columnLabel 列名)想要的数据并打印* 7.关闭资源,先开后关。result -- statement -- connection.

3. 实现代码:(具体看注释)

import java.sql.*;/*** 我的第一个JDBC程序.* 1.加载JDBC驱动* 2.填(新建)连接的信息,URL,账号,密码* 3.连接数据库,获取数据库Connection对象,*      (1)DriverManager.getConnection(url,user,password);* 4.通过Connection数据库对象,创建createStatement(),statement执行对象.* 5.使用执行对象执行SQL语句,获得ResultSet,Set数据集合* 6.使用数据集合取出getObject(columnLabel 列名)想要的数据并打印* 7.关闭资源,先开后关。result -- statement -- connection.**/
public class Demo {public static void main(String[] args) {//声明定义分离Connection connection = null;Statement statement = null;ResultSet resultset = null;try {//1.固定写法,加载驱动Class.forName("MYSQL.myFirstJdbcDemo.Demo");//2.填(新建)连接的信息,URL,账号,密码//(1)ulrString url = "jdbc:mysql://localhost:3306/" +//(1.1)连接地址,"bmft_blog" +                      //(1.2)连接的数据库"?useUnicode=true&" +                //(1.3)附加条件:支持中编码"characterEncoding=utf8&"+          // (1.4)附加信息:设置utf-8 字符集"useSSL=true&"+                       //(1.5)附加信息3:SSL安全连接"serverTimezone=UTC";                 //解决报错You must configure either the server or JDBC driver//(2)账号String user = "root";//(3)密码String password = "123456";//3. 连接数据库并获取Connection对象connection = DriverManager.getConnection(url, user, password);//4.通过Connection对象获得SQL执行对象statementstatement = connection.createStatement();//5.通过执行对象执行SQL语句获得,ResultSet 结果集//SQL dialect is not configured.没有配置SQL语言是什么鬼,还警告。resultset = statement.executeQuery("select * from `user`");//6.使用resultSet结果集获并打印结果.resultSet 是一个链表,while (resultset.next()){System.out.print("账号="+resultset.getObject("id")+" , ");System.out.print("名字="+resultset.getObject("user_name")+" , ");System.out.print("密码="+resultset.getObject("password")+" , ");System.out.print("介绍="+resultset.getObject("introduction")+" , ");System.out.print("手机号"+resultset.getObject("phone_number")+" , ");System.out.print("邮箱"+resultset.getObject("mailbox")+" , ");System.out.println();}} catch (ClassNotFoundException | SQLException e) {e.printStackTrace();}finally {//一次关闭资源,先开后关,ResultSet -- statement -- connectionif (resultset != null){try {resultset.close();} catch (SQLException e) {e.printStackTrace();}}if (statement != null){try {statement.close();} catch (SQLException e) {e.printStackTrace();}}if (connection != null){try {connection.close();} catch (SQLException e) {e.printStackTrace();}}}}
}

Run:

账号=1 , 名字=张三 , 密码=111111 , 介绍=法外狂徒 , 手机号0315313 , 邮箱 ,
账号=2 , 名字=电瓶 , 密码=111111 , 介绍=打工是不可能打工的 , 手机号null , 邮箱null ,
账号=3 , 名字=王二 , 密码=111111 , 介绍=隔壁来了新的邻居 , 手机号null , 邮箱null ,

Process finished with exit code 0

三、7个驱动步骤的详细解析

1.为什么要用加载类的方式(Class.forName)加载JDBC驱动 ?

Class.forName("MYSQL.myFirstJdbcDemo.Demo");

1.首先我们源码分析,原来的正规的加载驱动的办法.

DriverManager.registerDriver(new MYSQL.myFirstJdbcDemo.Demo());

(1)registerDriver()方法

这是,DriverManager类下的静态方法,静态方法,会在类加载的时候就,自动执行。
(2)在看方法中的执行的registerDriver(driver, null);方法

2.所以,如果您使用原方法加载驱动,方法就会执行2次,类加载的时候和,在main方法中调用的时候,
而,使用Class.forName()直接加载驱动,只用加载一次。

2url的组成是什么?

url = “协议://主机地址:端口号/数据库名称?参数1&参数2…&参数n”;

 String url = "jdbc:mysql://localhost:3306/" +//(1.1)连接地址,"bmft_blog" +                      //(1.2)连接的数据库"?useUnicode=true&" +                //(1.3)附加条件:支持中编码"characterEncoding=utf8&"+          // (1.4)附加信息:设置utf-8 字符集"useSSL=true&"+                       //(1.5)附加信息3:SSL安全连接"serverTimezone=UTC";                 //解决报错You must configure either the server or JDBC driver

了解更多:Oracle数据库的URL格式,Oracle没有数据库,只有 表,一个表就是一个数据库,默认端口1521
jdbc:oracle:thin:@localhost:1521:sid

3. Connection 对象的功能?

总结就是

  • 1.数据库层级的一些操作,比如(已经连接)断开数据库
  • 2.设置数据库事务的提交和回滚比如:
connection.setautoCommit(false);
connection.rollback();
connection.commit();
  • 3.解决异常读取的问题
  • 4.构造一些奇怪的接口(这个有用?)
  • 5.创建statement执行SQL的对象,用来执行增删改查SQL


2.数据库层面解决读取异常的一些字段

3.

4.statement SQL执行对象的功能?

顾名思义就是用来执行SQL语句的

1.概述

2.statement常用方法

方法 结果
resultSet executeQuery() 执行查询,返回resultSet结果集
int executeUpdate() 执行增删改,返回一个受影响的行数 1 row is …
boolean exucute() 如果第一个结果是ResultSet对象,则返回true;如果第一个结果是执行语句后更新的行数或者没有结果,则返回false。

5. ResultSet对象的功能?

resultSet对象就是一个结果集对象。

1.综述


2.resultSet常用方法
具体和更多查看,jdk文档。这个只是方便记忆和列举些常用的。
(1)滚动结果集的方法

方法 描述
previous() 向前滚动
next() 向后滚动
int getRow() 获取行号
absolute() 滚动到指定行号
relative() 相对移动多少行,
first() 移动到第一行
last() 移动…
beforeFirst() 移动到 -1 行
afterLast() n + 1 行
moveToInsertRow() 移动到插入行

moveToCurrentRow()移回到调用行

(2)测试光标的位置

方法 描述
isFirst() 是否第一行
isLast()
isBeforeFirst()

isAfterLast()

(3) 更新结果集,和底层数据库的数据(新增**,只有单表可用)**
insertRow()|插入行,到ResulteSet 和 数据库
deleteRow()|删除行,到…
updateRow|改行数据…具体

(具体的字段使用查看,文档或者源码!这里只做介绍!)

6. ResultSet 的 getObject方法

知道具体的字段的类型就用具体的字段的类型,不知道就可以使用Object接受。

7.关闭资源:先开后关即可,特别是connection资源特别浪费内存.

(重点)MySQL(入门篇22)JDBC下载和驱动教程 ,第一个JDBC程序,驱动步骤的解析。相关推荐

  1. MySQL 免安装版的下载与配置教程

    MySQL 免安装版的下载与配置教程 MySQL 的下载安装 附录 其它 MySQL 命令 查看本 MySQL 数据存放目录 此博客存在上一个版本,如果读者对笔者以前版本的博客依然感兴趣,可以访问此链 ...

  2. MySQL 5.7.21详细下载安装配置教程

    MySQL 5.7.21详细下载安装配置教程 前言 在安装MySQL的时候会遇到很多问题,博客上有很多解决问题的办法,在这里我附上一些链接,遇到问题的朋友们可以阅读参考哈~本文主要针对于刚接触数据库的 ...

  3. mysql 5.5.29 winx64_【转载】MySQL 5.7.29详细下载安装配置教程winx64

    版权声明:本文为CSDN博主「liu_dong_mei_mei」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.n ...

  4. mysql工具的使用_产品操作MySQL入门篇-工具使用

    MYSQL 本资料为产品岗位作为日常工作参考,语言口语化 At 2019/4/15 By David.Yang 数据库怎么登录/管理? 登录数据库的方式有多种, 比如 本地Client登录. 通过数据 ...

  5. mysql数据库任务驱动教程答案_MySQL数据库任务驱动式教程

    项目一 认识数据库 任务1 认识数据库 1.1 了解数据库的基本应用 1.2 了解数据库的几个概念 1.3 认识关系型数据库 1.4 关系数据库设计 1.5 数据库应用系统体系结构 1.6 认识一个真 ...

  6. JDBC数据库连接和事务的管理 一个JDBC基本操作封装类的编写

    Java使用JDBC建立数据库连接时,主要使用到了两个类:java.sql.Connection;java.sql.DriverManager;创建一个连接的基本过程为://注册驱动名 Class.f ...

  7. python程序下载_Python 基础起步 (二) 5分钟内下载环境并运行第一个Python 程序

    下载并安装Anaconda 好啦,作为小白,我们的第一步是安装能够运行Python的环境,所谓环境就是指我们要安装一个软件,之后就能用它来写Python代码 (觉得我对环境解释特别智障的请绕行,我们是 ...

  8. php入门教程 第一个php程序,PHP中的第一个程序

    您几乎可以使用任何您喜欢的文本编辑器,但使用语法突出显示的文本编辑器可以使事 Notepad++是一个方便的Windows小编辑器,具有许多不同语言的语法高亮,包括PHP,HTML,CSS和sql. ...

  9. Scala基础入门(三)使用Scala IDE编写第一个Scala程序

    Scala 开发环境 Scala 是 类Java 语言, 可以在命令行运行代码: C:\Users\Administrator>scala -version Scala code runner ...

最新文章

  1. php中去空函数trim,PHP中trim()函数简单使用指南
  2. 用python实现复选框树_如何使用Python中的复选框创建树视图
  3. java中子类与父类中隐含的this引用的分析
  4. bpe编码_缓冲池扩展(BPE)–缓冲池简介
  5. 堪比“震网”:罗克韦尔PLC严重漏洞可导致攻击者在系统中植入恶意代码
  6. linux mint php mysql_Installing LAMP (Linux, Apache, MySQL and PHP) On Linux Mint
  7. Android Framework 全面分析 SystemServer
  8. 用计算机如何算瓷砖菱形加工,瓷砖菱形铺贴怎么计算面积
  9. js传递参数时类型错误
  10. 面试官看到一定会打我---软件测试工程师面试套路和暗语灵魂解密
  11. linux 修改图片像素,如何修改照片分辨率
  12. 【SuperResolution】Spatial resolution的含义
  13. bad interpreter
  14. 将图片(HDC)打印出来
  15. arduino点阵声音频谱_音频跳动:制造32分频音频频谱点阵
  16. 腾讯、百度、讯飞 语音识别
  17. java ee web pdf_Java EE Web高级开发案例 PDF扫描版[69MB]
  18. 人工智能之智能机器人
  19. openEuler操作系统的安装
  20. 今年面试大厂研发岗,也太太太太太难了吧!!PS:尤其是AI相关的!!

热门文章

  1. excel 导入 sqlserver 字符串被截取为255长度解决方案
  2. 搜索推荐系统评价指标
  3. HTML 常用标签标签
  4. LaTeX论文模板字体无法加粗
  5. YII 开启URL伪静态方法(yii中urlManager匹配和注意点)
  6. RK3326 android10.0(Q) 开机logo+开关机动画替换
  7. MATLAB R2022b 安装教程
  8. 在批处理中提升权限 (UAC开启状态下)
  9. 小米Note顶配版 救砖详细步骤
  10. Ubuntu安装LaTeX