网站首页 > 精选教程 正文
一、为什么需要JDBC?
与数据库建立连接
发送 SQL 语句
处理结果
二、JDBC概述
Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。
JDBC API主要位于JDK中的java.sql包中(之后扩展的内容位于javax.sql包中)
即JDBC技术包含两个部分:
(1)java.sql包和javax.sql包中的API
因为为了项目代码的可移植性,可维护性,SUN公司从最初就制定了Java程序连接各种数据库的统一接口规范。这样的话,不管是连接哪一种DBMS软件,Java代码可以保持一致性。
(2)各个数据库厂商提供的jar
因为各个数据库厂商的DBMS软件各有不同,那么内部如何通过sql实现增、删、改、查等管理数据,只有这个数据库厂商自己更清楚,因此把接口规范的实现交给各个数据库厂商自己实现。
三、JDBC使用步骤
1、下载JDBC的jar包
进入MySQL的官网去下载:MySQL :: MySQL Community Downloads
下载后,进行解压。解压后会进入文件夹可以看到jar文件,这个就是jar包
2、创建数据库信息
create database testJDBC;
use testJDBC;
create table user(
id int primary key auto_increment,
username varchar(20),
password varchar(20),
nickname varchar(20)
);
INSERT INTO `USER` VALUES(null,'xh','6765','猫');
INSERT INTO `USER` VALUES(null,'xm','794556','狗');
INSERT INTO `USER` VALUES(null,'hh','7894656','喜洋洋');
3、创建java项目
创建后的项目:
4、添加jar进项目
4.1、创建lib目录
在项目文件夹上,右键->New->Directory
4.2、将解压的jar复制-粘贴到lib目录中
3.3、加载jar包
右键lib文件夹"Add as Library..."
当 jar 包左边出现了三角形折叠标志,就表示加载了 jar 包,以后的手动导入 jar 包可以放里面.
4、java代码实现
package main;
import java.sql.*;
public class TestJDBC {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//加载并注册驱动
//MySQL版本5.1之前,驱动程序类名为"com.mysql.jdbc.Driver"
// MySQL版本5.1之后,驱动程序类名为"com.mysql.cj.jdbc.Driver"。
Class.forName("com.mysql.cj.jdbc.Driver");
/**
* mysql的url:jdbc:mysql://localhost:3306/数据库名?参数名=参数值
*
* useUnicode=true:如果将"useUnicode"参数设为"true",则JDBC将使用Unicode字符集在Java应用程序和MySQL之间进行转换。
* 如果将其设为"false",则使用JDBC默认字符集与Java应用程序和MySQL之间进行转换。
* 通常情况下,建议将"useUnicode"参数设置为"true",以便在与数据库进行交互时能够正确处理所有字符集。
*
* characterEncoding=utf8:将字符编码设置为utf8。
* 如果JDBC程序与服务器端的字符集不一致,会导致乱码,那么可以通过参数指定服务器端的字符集
*/
String url = "jdbc:mysql://localhost:3306/testJDBC?useUnicode=true&characterEncoding=utf8";
//MySQL的用户名
String user = "root";
//MySQL的密码
String password = "123456";
/**
* 获取连接
* 在Java中,通过JDBC API与MySQL数据库进行交互时,必须首先建立与数据库的连接。
* 使用DriverManager.getConnection()方法创建一个与数据库的连接.
* DriverManager是Java JDBC API提供的一个基本类,负责将Driver驱动注册到JDBC中,然后使用它来与数据库建立连接。
* 在表达式中,使用getConnection()方法获取连接,这个连接将由JDBC连接池管理。
*/
Connection connection = DriverManager.getConnection(url, user, password);
//编写SQL语句
String sql = "select *from user";
//创建执行sql语句对象
Statement statement = connection.createStatement();
/**
* 执行sql语句
* 增删改:调用executeUpate方法
* 查询:调用executeQuery方法
*/
ResultSet resultSet = statement.executeQuery(sql);
/**
* 处理结果:
* 增删改:返回的是整数值,表示受到影响的数据条数
* 查询:返回ResultSet结果
*
* - boolean next():判断是否还有下一行
* - getString(字段名或序号),getInt(字段名或序号),getObject(字段名或序号)
*/
while (resultSet.next()) {
//获取每一列的数据
System.out.println(resultSet.getObject(1));
System.out.println(resultSet.getObject(2));
System.out.println(resultSet.getObject(3));
System.out.println(resultSet.getObject(4));
}
/**
* 关闭资源
* 原则是后创建的资源先关闭,我们会依次关闭ResultSet、Statement、Connection对象
*/
if(resultSet != null){
resultSet.close();
}
if(statement != null){
statement .close();
}
if(connection != null){
connection.close();
}
}
}
四、总结:JDBC程序访问数据库步骤
猜你喜欢
- 2025-05-08 redis应用的几种序列化策略(redis应用的几种序列化策略是什么)
- 2025-05-08 你对网络IO了解多少?别被面试官打败到一个问烂了的知识点上
- 2025-05-08 8、char为什么能存贮一个汉字?(char为什么是一个字节)
- 2025-05-08 MyCat系列二--配置文件之server.xml
- 2025-05-08 一文让你彻底弄懂HTTP和Web底层结构
- 2025-05-08 java文件字节流和字节缓冲流(java的字节流和字符流)
- 2025-05-08 Java NIO:从 Buffer、Channel、Selector 到 Zero-copy、I/O 多路复用
- 2025-05-08 Java 17 的 I/O 基础 OutputStream 篇
- 2025-05-08 MySQL/MariaDB中如何支持全部的Unicode?
- 2025-05-08 揭秘:一条SQL语句的执行过程是怎么样的?
你 发表评论:
欢迎- 06-30【AI绘永昌】风景篇(二)(永昌图文)
- 06-30AI风景建筑图集(ai景观平面图)
- 06-30AI绘制精美绚丽的景色(ai绘制图案)
- 06-30AI风景,不存在的地方又增加了(ai风景插画作品)
- 06-301 分钟解锁!运用 DS + 即梦 + 豆包,轻松打造个性化风景音乐短视频
- 06-30美景欣赏 #AI绘画#(美景图画)
- 06-30AI动漫风景图集1 ~(ai动漫图片)
- 06-30原图壁纸,ai绘画风景(原图壁纸下载)
- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)