什么是JDBC?

概念:JAVA Database Connectivity Javas数据库连接,Java语言操作数据库接口,然后由各个数据库厂商去实现这个接口,提供数据库驱动java包,我们可以使用这套接口,真正执行的是jar驱动包中的实习类

使用一张图让大家更为直观的理解:

coder就是写这套接口的程序员

JDBC的使用步骤

1.导入驱动jar包

2.注册驱动

3.获取数据库连接对象

4.定义sql执行语句

5.获取sql语句执行对象

6.执行sql语句返回结果

7.处理结果

8.释放结果

代码实现

package JDBC;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.sql.Statement;

public class Main {

public static void main(String[] args) throws ClassNotFoundException, SQLException {

//注册驱动

Class.forName("com.mysql.jdbc.Driver");

//获取数据库连接对象

Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3309/db2", "root", "1234");

//定义sql语句

String sql="update count set money=10000";

//定义statement执行语句

Statement statement = connection.createStatement();

//执行sql语句

int i = statement.executeUpdate(sql);

System.out.println("共"+i+"行受到影响");

//关闭资源

statement.close();

connection.close();

}

}

类详解

DriverManager:驱动管理对象

功能:

1.注册驱动,告诉程序应该使用哪个驱动的java包

static void registerDriver(Driver driver) :注册与给定的驱动程序 DriverManager 。

写代码使用:

Class.forName("com.mysql.jdbc.Driver");

查看jar包下的源码得:

package com.mysql.jdbc;

import java.sql.DriverManager;

import java.sql.SQLException;

public class Driver extends NonRegisteringDriver implements java.sql.Driver {

public Driver() throws SQLException {

}

static {

try {

//注册驱动

DriverManager.registerDriver(new Driver());

} catch (SQLException var1) {

throw new RuntimeException("Can"t register driver!");

}

}

}

我们可以发现在com.mysql.jdbc.Driver类中存在静态代码块,内部调用registerDriver(new Driver)注册驱动

mysql5之后可以省略注册驱动的步骤

获取数据库连接

方法:static connection getConnection(String sql,String password)

参数:

* url:指定连接的路径

* 语法:jdbc:mysql://ip地址(域名):端口号/数据库名称

* 例子:jdbc:mysql://localhost:3306/db3

* 细节:如果连接的是本机mysql服务器,并且mysql服务默认端口是3306,则url可以简写 为:jdbc:mysql:///数据库名称

* user:用户名

* password:密码

**

Connection 数据库连接对象**

1.功能

1.1 获取sql语句的执行对象

*Statement createStatement()

* PreparedStatement prepareStatement(String sql)

1.2 管理事务

开启事务:setAutoCommit(boolean autocommit),调用改方法,参数为false时开启事务

提交事务:commit();

回滚事务:rollback()

1.3 statement:执行sql语句的对象

执行sql

1. boolean execute(String sql) :可以执行任意的sql 了解

2. int executeUpdate(String sql) :执行DML(insert、update、delete)语句、 DDL(create,alter、drop)语句

* 返回值:影响的行数,可以通过这个影响的行数判断DML语句是否执行成功 返回值>0的则执行成功,反之,则失败。

**1.4ResultSet:结果集对象,封装查询结果**

boolean next():游标向下移动一行,判断当前行是不是最后一行,如果是则返回false,如果不是则返回true

getXxx(参数):获取数据

* Xxx:代表数据类型 如: int getInt() ,String getString()

* 参数:

1. int:代表列的编号,从1开始 如: getString(1)

2. String:代表列名称。 如: getDouble("balance")

使用步骤:

游标向下移动一行

判断是否有数据

获取数据

代码演示

package JDBC;

import java.sql.*;

public class Main {

public static void main(String[] args) throws ClassNotFoundException, SQLException {

//注册驱动

Class.forName("com.mysql.jdbc.Driver");

//获取数据库连接对象

Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3309/db2", "root", "1234");

//定义sql语句

String sql="SELECT *FROM COUNT ";

//定义statement执行语句

Statement statement = connection.createStatement();

//执行sql语句

ResultSet resultSet = statement.executeQuery(sql);

//循环输出

while(resultSet.next()){

int anInt = resultSet.getInt(1);

String string = resultSet.getString(2);

int anInt2 = resultSet.getInt(3);

System.out.println("ID:"+anInt);

System.out.println("name:"+string);

System.out.println("money:"+anInt2);

}

//关闭资源

statement.close();

connection.close();

}

}

结果

到此这篇关于java JDBC系列教程之JDBC类的简析与JDBC的基础操作的文章就介绍到这了,更多相关java JDBC类与操作内容请搜索云海天教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持云海天教程!

原文链接:https://www.cnblogs.com/pjhaymy/archive/2020/07/27/13384013.html

java jdbc 教程_java JDBC系列教程之JDBC类的简析与JDBC的基础操作相关推荐

  1. java线程 教程_Java多线程系列教程

    Java多线程系列教程 多线程是Java中不可避免的一个重要主体.从本章开始,我们将展开对多线程的学习.接下来的内容是对Java多线程内容的讲解,涉及到的内容包括,Object类中的wait(), n ...

  2. java.nio教程_Java NIO系列教程(三) Buffer

    原文链接     作者:Jakob Jenkov     译者:airu     校对:丁一 Java NIO中的Buffer用于和NIO通道进行交互.如你所知,数据是从通道读入缓冲区,从缓冲区写入到 ...

  3. 乐鑫代理-启明云端分享ESP32系列教程之二:Linux搭建esp-idf环境

    提示:此教程依据乐鑫官方的ESP32入门教程总结而来,仅供个人参考学学习,如有错误,欢迎批评指正.乐鑫官方参考: 乐鑫官方文档地址 1.搭建esp-idf环境 1.1安装虚拟机与Ubuntu 未安装请 ...

  4. 一步一步实现STM32-FOTA系列教程之Bootloader编写

    一步一步实现STM32-FOTA系列教程之Bootloader编写 文章系列链接 <一步一步实现STM32-FOTA系列教程之bin文件生成> <一步一步实现STM32-FOTA系列 ...

  5. MSP430FR6989系列教程之LCD

    MSP430FR6989系列教程之LCD 由于MSP430以追求低功耗的特性,所以在MSP430FR6989上搭载的LCD并不是我们通常意义上的LCD显示屏(TFT LCD),而是段式 LCD MSP ...

  6. 学java教程之String类

    学编程吧学java教程之String类发布了,欢迎通过xuebiancheng8.com来访问 java类中的String类应该是用的最多的一个类,我们时时刻刻都离不开String类,时时刻刻都在用, ...

  7. 10 51单片机汇编:让定时器产生中断(使用Keil模拟器)[系列教程之10]

    10 51单片机汇编:让定时器产生中断(使用Keil模拟器)[系列教程之10] 该系列主仓库地址:https://gitee.com/langcai1943/8051-from-boot-to-app ...

  8. 一步一步实现STM32-FOTA系列教程之FLASH静态区读写

    一步一步实现STM32-FOTA系列教程之FLASH静态区读写 文章系列链接 <一步一步实现STM32-FOTA系列教程之bin文件生成> <一步一步实现STM32-FOTA系列教程 ...

  9. java+mysql性能优化_Java培训实战教程之mysql优化

    Java培训实战教程之mysql优化 更新时间:2015年12月29日13时30分 来源:传智播客Java培训学院 浏览次数: 1.   mysql引擎 1.1.  引擎类型 MySQL常用的存储引擎 ...

最新文章

  1. javascript中重要概念-闭包-深入理解
  2. jquery-uploadifyv3.2.1 文件上传插件 学习
  3. Python函数式编程中map()、reduce()和filter()函数的用法
  4. XAMPP 7.3.3 安装
  5. could not find a getter for ... in class ... 异常的解决
  6. python2升级python3
  7. Axure综合小案例(动态时钟)
  8. GEE(Google Earth Engine)批量导入谷歌云盘
  9. php++redius,【答疑】请问edius音波显示快捷键是什么呢?怎么使用的呢? - 羽兔网问答...
  10. java三国策略手游_策略三国下载-策略三国手游官网版下载-Minecraft中文分享站
  11. pcdmis怎么导出模型_3D游戏模型提取、导入、导出教程
  12. Python基础之Scrapy简介
  13. 【技术文档】jeecg3.8-maven 开发环境搭建入门
  14. MapWinGIS4.9.3的二次开发
  15. canvas内的字体实现阴影效果
  16. 手把手教你下载在线地图?!再也不用下了
  17. python爬取视频--下载2019巴菲特股东大会直播视频
  18. 微信小程序--小程序及微信生态圈
  19. 免安装版的Mysql教程
  20. 实时计算Flink+Hologres

热门文章

  1. UIView上的控件使用push方法跳转
  2. HDU-1541 Stars 树状数组
  3. 把时间当作朋友(四)
  4. ASP.NET 配置文件的层次和继承关系
  5. 用python画图代码简单-【Matplotlib】利用Python进行绘图
  6. python3.7和3.8的区别-Python2.7和3.7区别
  7. python使用什么注释语句和运算-python 闯关之路一(语法基础)
  8. python文字教程-Python在图片中添加文字的两种方法
  9. python系统-python做系统
  10. python代码大全p-Python5种代码维护工具