(重点)MySQL(入门篇22)JDBC下载和驱动教程 ,第一个JDBC程序,驱动步骤的解析。
一、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程序,驱动步骤的解析。相关推荐
- MySQL 免安装版的下载与配置教程
MySQL 免安装版的下载与配置教程 MySQL 的下载安装 附录 其它 MySQL 命令 查看本 MySQL 数据存放目录 此博客存在上一个版本,如果读者对笔者以前版本的博客依然感兴趣,可以访问此链 ...
- MySQL 5.7.21详细下载安装配置教程
MySQL 5.7.21详细下载安装配置教程 前言 在安装MySQL的时候会遇到很多问题,博客上有很多解决问题的办法,在这里我附上一些链接,遇到问题的朋友们可以阅读参考哈~本文主要针对于刚接触数据库的 ...
- mysql 5.5.29 winx64_【转载】MySQL 5.7.29详细下载安装配置教程winx64
版权声明:本文为CSDN博主「liu_dong_mei_mei」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.n ...
- mysql工具的使用_产品操作MySQL入门篇-工具使用
MYSQL 本资料为产品岗位作为日常工作参考,语言口语化 At 2019/4/15 By David.Yang 数据库怎么登录/管理? 登录数据库的方式有多种, 比如 本地Client登录. 通过数据 ...
- mysql数据库任务驱动教程答案_MySQL数据库任务驱动式教程
项目一 认识数据库 任务1 认识数据库 1.1 了解数据库的基本应用 1.2 了解数据库的几个概念 1.3 认识关系型数据库 1.4 关系数据库设计 1.5 数据库应用系统体系结构 1.6 认识一个真 ...
- JDBC数据库连接和事务的管理 一个JDBC基本操作封装类的编写
Java使用JDBC建立数据库连接时,主要使用到了两个类:java.sql.Connection;java.sql.DriverManager;创建一个连接的基本过程为://注册驱动名 Class.f ...
- python程序下载_Python 基础起步 (二) 5分钟内下载环境并运行第一个Python 程序
下载并安装Anaconda 好啦,作为小白,我们的第一步是安装能够运行Python的环境,所谓环境就是指我们要安装一个软件,之后就能用它来写Python代码 (觉得我对环境解释特别智障的请绕行,我们是 ...
- php入门教程 第一个php程序,PHP中的第一个程序
您几乎可以使用任何您喜欢的文本编辑器,但使用语法突出显示的文本编辑器可以使事 Notepad++是一个方便的Windows小编辑器,具有许多不同语言的语法高亮,包括PHP,HTML,CSS和sql. ...
- Scala基础入门(三)使用Scala IDE编写第一个Scala程序
Scala 开发环境 Scala 是 类Java 语言, 可以在命令行运行代码: C:\Users\Administrator>scala -version Scala code runner ...
最新文章
- php中去空函数trim,PHP中trim()函数简单使用指南
- 用python实现复选框树_如何使用Python中的复选框创建树视图
- java中子类与父类中隐含的this引用的分析
- bpe编码_缓冲池扩展(BPE)–缓冲池简介
- 堪比“震网”:罗克韦尔PLC严重漏洞可导致攻击者在系统中植入恶意代码
- linux mint php mysql_Installing LAMP (Linux, Apache, MySQL and PHP) On Linux Mint
- Android Framework 全面分析 SystemServer
- 用计算机如何算瓷砖菱形加工,瓷砖菱形铺贴怎么计算面积
- js传递参数时类型错误
- 面试官看到一定会打我---软件测试工程师面试套路和暗语灵魂解密
- linux 修改图片像素,如何修改照片分辨率
- 【SuperResolution】Spatial resolution的含义
- bad interpreter
- 将图片(HDC)打印出来
- arduino点阵声音频谱_音频跳动:制造32分频音频频谱点阵
- 腾讯、百度、讯飞 语音识别
- java ee web pdf_Java EE Web高级开发案例 PDF扫描版[69MB]
- 人工智能之智能机器人
- openEuler操作系统的安装
- 今年面试大厂研发岗,也太太太太太难了吧!!PS:尤其是AI相关的!!