目录

JDBC的环境配置

JDBC的使用步骤(Java操作数据库)

建立数据库连接

方式一:DriverManager

方式二:DataSource(数据源/数据库连接池)

DataSource与DriverManager的对比

创建操作命令对象Statement

Statement

PreparedStatement

CallableStatement

执行SQL语句

处理结果集

释放资源

JDBC实现查询操作完整代码


什么是JDBC?

JDBC即Java Database Connectivity,Java数据库连接。是一种用于执行SQL语句的Java API,它是Java中的数据库连接规范。这个api由java.sql.*、javax.sql.*包中的一些类和接口组成,它为Java开发人员操作数据库提供了一个标准的API,可以为多种关系数据库提供统一访问.

· 多种:可以同时支持多种关系型数据库,可以任意切换(兼容性)

· 统一:使用一套标准的jdbc api操作的代码

JDBC的优势

· Java语言访问数据库操作完全面向抽象接口编程

· 开发数据库应用不用限定在特定数据库厂商的API

· 程序的可移植性增强

JDBC的环境配置

①首先需要提前准备数据库驱动包

②创建项目,并创建一个lib目录,将jar包放置在lib目录中

③项目右键,打开当前项目的设置

④按照如下顺序将依赖包添加至项目中

⑤进行完上述步骤后即配置完成,之后检验是否配置成功即可.

只要能看到如上提示即配置成功.

JDBC的使用步骤(Java操作数据库)

数据库:是一个网络主机上的数据库服务端进程,需要使用URL来连接.

· 协议名:网络传输数据的格式

· 服务器地址:服务器(进程)所在主机对应的地址(ip,域名)

本机的ip:127.0.0.1

      域名:localhost

· 服务器端口号:主机中端口绑定的一个进程

· 带层次的文件路径:服务资源(资源可能是一个文件,也可能是虚拟资源)

再进行下列jdbc操作之前,首先需要建立一个数据库,例如在下列演示中,我使用的是自己提前建好的db_test数据库,并针对其进行操作

建立数据库连接

方式一:DriverManager

import java.sql.*;
public class First {public static void main(String[] args) throws ClassNotFoundException, SQLException {//1、建立数据库连接Class.forName("com.mysql.jdbc.Driver");/*** DriverManager是jdbc的api,Connection也是(Java.sql开头)* url:* ①服务器地址,看看是不是要连接的数据库ip/域名* ②带层次的路径:数据库名* ③用户名,密码*/Connection c = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_test?user=root&password=142516&useUnicode=true&characterEncoding=UTF-8");}
}

方式二:DataSource(数据源/数据库连接池)

连接池初始化时就创建了一定数量的数据库连接对象(Connection),一个程序连接某个数据库使用一个连接池就行.

import java.sql.Connection;
import java.sql.SQLException;public class CourseQuery {public static void main(String[] args) throws SQLException {/*** 使用数据库连接池来获取数据库连接对象* 一个Java程序,创建多个还是1个连接池对象一个*/MysqlDataSource ds = new MysqlDataSource();//url中的参数,可以使用方法来设置ds.setURL("jdbc:mysql://localhost:3306/db_test");ds.setUser("root");ds.setPassword("142516");//安全连接,如果不设置有警告ds.setUseSSL(false);//设置编码格式:按某个编码保存数据,也要按一样的编码来使用ds.setCharacterEncoding("UTF-8");Connection c = ds.getConnection();}
}

DataSource与DriverManager的对比

· DriverManager每次都是新建一个物理连接,释放的时候是关闭物理连接,相当于实际操作MySQL中的点击关闭

· DataSource是初始化的时候就创建一定数量的连接,释放时只是重置并放回连接池,即可以实现复用

·  DriverManager效率低,而DataSource效率高

创建操作命令对象Statement

Statement对象用于执行sql代码,共有三种操作命令对象,分别为:Statement、PreparedStatement、CallableStatement.

Statement

不带占位符简单操作命令对象,用于执行不带参数的简单SQL语句

        //2、创建操作命令对象Statement s = c.createStatement();

PreparedStatement

使用PreparedStatement创建操作命令对象时,需要对其传入sql语句

· 其用于执行带或不带参数的sql语句

· SQL语句会预编译在数据库系统

· 执行速度快于Statement对象

        //2.创建操作命令对象//使用PreparedStatement创建操作命令对象时,必须对其传入sql语句String sql = "select id, name from course where name=?";PreparedStatement ps = c.prepareStatement(sql);

CallableStatement

用于执行存储过程的,后续学习后会记录在该博客中.

执行SQL语句

· 如果是插入、修改、删除操作,调用executeUpdate方法,返回int类型表示处理成功多少条

//插入,修改,删除,都调用executeUpdate,返回int是执行成功多少条
int n = ps.executeUpdate();

· 如果是查询操作,处理结果集ResultSet,调用excuteQuery方法,返回结果集

由于在利用PreparedStatement创建操作命令对象时已经传入了sql语句,因此在执行的时候就不需要再传了.

//Statement创建操作命令对象
ResultSet rs = s.executeQuery("select id, name from course");
//PreparedStatement创建操作命令对象
ResultSet rs = ps.executeQuery();

处理结果集

        while(rs.next()) {int id = rs.getInt("id");String name = rs.getString("name");System.out.println(String.format("id: %d,name: %s\n",id, name));}

释放资源

反向释放(ResultSet -> Statement -> Connection),都是调用close方法释放

        //关闭结果集if(rs != null) {try {rs.close();} catch(SQLException e) {e.printStackTrace();}}//关闭命令if(s != null) {try {s.close();} catch(SQLException e) {e.printStackTrace();}}//关闭连接if(c != null) {try {c.close();} catch(SQLException e) {e.printStackTrace();}}

JDBC实现查询操作完整代码

下述为Java操作数据库实现查询操作的完整代码,创建操作命令对象时利用Statement创建,并实现根据用户输入来查询的操作.

package org.example;import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;import java.sql.*;
import java.util.Scanner;/*** Created with IntelliJ IDEA.* Description:* User: Li_yizYa* Date: 2022—05—03* Time: 19:43*/
public class CourseQuery {public static void main(String[] args) throws SQLException {//1.连接数据库/*** 使用数据库连接池来获取数据库连接对象* 一个Java程序,创建多个还是1个连接池对象一个*/MysqlDataSource ds = new MysqlDataSource();//url中的参数,可以使用方法来设置ds.setURL("jdbc:mysql://localhost:3306/db_test");ds.setUser("root");ds.setPassword("142516");//安全连接,如果不设置有警告ds.setUseSSL(false);//设置编码格式:按某个编码保存数据,也要按一样的编码来使用ds.setCharacterEncoding("UTF-8");Connection c = ds.getConnection();Scanner scan = new Scanner(System.in);System.out.print("请输入要查找的书名:>");String inputName = scan.nextLine();//2.创建操作命令对象//使用PreparedStatement创建操作命令对象时,必须对其传入sql语句String sql = "select id, name from course where name=?";PreparedStatement ps = c.prepareStatement(sql);/*** 替换占位符: setXXX(index, value)* XXX: 值的类型* index: 是占位符的索引位置(从1开始)* value: 要替换的值*/ps.setString(1, inputName);//3.执行sql语句ResultSet rs = ps.executeQuery();//4.处理结果集while (rs.next()){//遍历每一行数据//获取id字段的值int id = rs.getInt("id");String name = rs.getString("name");System.out.printf("id: %s, name: %s\n", id, name);}//5.释放资源:反向释放(resultSet, Statement, Connection).close()if(rs != null) {try {rs.close();} catch(SQLException e) {e.printStackTrace();}}//关闭命令if(ps != null) {try {ps.close();} catch(SQLException e) {e.printStackTrace();}}//关闭连接if(c != null) {try {c.close();} catch(SQLException e) {e.printStackTrace();}}}
}

· 数据库中目前存储了六本书,可以随意查询以下六本书

MySQL~Java的数据库编程:JDBC(JDBC的环境配置以及使用)相关推荐

  1. MySQL数据库(Java的数据库编程:JDBC)

    作者:渴望力量的土狗 博客主页:渴望力量的土狗的博客主页 专栏:MySQL数据库 目录 什么是数据库编程: 什么是JDBC? JDBC工作原理: JDBC的使用及相关操作: JDBC开发案例: JDB ...

  2. java基础类库——java数据库编程,JDBC连接(原生数据库连接)(十)

    java数据库编程,JDBC连接(原生数据库连接) JDBC严格来讲不属于一门技术,它属于一种服务.所有的操作流程都是固定的.JDBC是java提供的数据库操作的一个标准(它就是一组相关的标准接口), ...

  3. Java的数据库编程之入门案例

    通过上一篇博客Java的数据库编程之背景概述,可以得出: 1.JDBC API与驱动器管理器是有SUN公司制定并退出的: 2.每个数据库的驱动器程序是由每个数据库开发商以及数据库工具开发商在遵循SUN ...

  4. 【Java】数据库编程

    Java中数据库编程是通过JDBC实现的.使用JDBC技术涉及三种不同的角色:Java官方,开发人员和数据库厂商.如下图所示: Java官方提供JDBC接口,如:Connection,Statemen ...

  5. php与mysql结合的数据库编程,php与mysql结合的数据库编程

    php与mysql结合的数据库编程 第 11讲 PHP访问 MySQL数据库现在最流行的动态网站开发的软件组合是 LAMP.LAMP是 Linux. Apache. MySQL和 PHP的缩写. PH ...

  6. JAVA实现数据库编程第三章_[数据库]使用Java实现数据库编程—03 第三章 高级查询(一)...

    [数据库]使用Java实现数据库编程-03 第三章 高级查询(一) 0 2018-07-21 03:01:10 1.修改表:(1)修改表名语法: ALTER TABLE RENAME [ TO ] : ...

  7. java语言数据库编程_JAVA语言数据库编程实例详解

    本文主要向大家介绍了JAVA语言数据库编程实例详解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. DOS命令登录MySQL数据库:mysql -h 127.0.0.1 -u root ...

  8. GPU编程自学2 —— CUDA环境配置

    深度学习的兴起,使得多线程以及GPU编程逐渐成为算法工程师无法规避的问题.这里主要记录自己的GPU自学历程. 目录 <GPU编程自学1 -- 引言> <GPU编程自学2 -- CUD ...

  9. java mysql数据库编程_java JDBC数据库(mysql)编程

    什么是JDBC • JDBC(Java Data Base Connectivity,Java数据库连接) • 是一种用于执行SQL语句的Java API,为多种关系数据库提供统一访问 • 它由一组用 ...

最新文章

  1. js选择checkbox值,组织成key-value形式,传值到后台
  2. 使用线程自己join自己完成线程门栓
  3. c#生成一组不同的随机数的方法
  4. IE overflow:hidden失效的解决方法:
  5. HDOJ-1014 Uniform Generator
  6. beedb mysql_26.蛤蟆笔记go语言——beedb库使用
  7. 记录最近业务中出现的两个问题
  8. 服务器篇06-PHP配置选项
  9. ffffffffffffffffff
  10. 《编写高质量代码:改善Java程序的151条建议》读书笔记
  11. 广州元宇宙10条(附pdf下载地址)
  12. C# 自定义网格 dataGridView 三角箭头移动 获取当前行列序号 滚动条显示改变 滚动条定位索引
  13. 破解新浪微博js加密登陆超详细
  14. 数独基本规则_数独游戏的入门规则
  15. 161张Menhera酱表情包 无水印汉化版
  16. 外贸常用术语_常见国际贸易专业术语有哪些?
  17. go基础知识学习笔记-篇幅很长写的我想吐
  18. 令人敬畏的泰格伍兹 万维钢_令人敬畏的桌面壁纸:Windows 7版
  19. SVN(subversion )服务端和客户端的下载安装使用
  20. 顺序表前m和后n元素交换位置

热门文章

  1. [免费专栏] Android安全之检测APK中调试代码是否暴露敏感信息
  2. 光猫 DHCP服务器未响应,案例分享--光猫手工设置后死机的原因之一
  3. 浏览器输入网址发生了什么?
  4. 数电学习(十一、D/A和A/D转换)
  5. 关于object对象转换为int类型
  6. macOS系统允许任何来源APP的安装打开
  7. 中等职业学校计算机课程标准,全市中等职业学校信息技术课程标准内涵解析与教学设计培训会议成功举办...
  8. NB,用这一篇文章带你了解什么是爬虫?
  9. python应用如何实现升级_基于esky实现python应用的自动升级详解
  10. 2022年湖南省证券从业资格(证券投资基金)练习题及答案