Java的数据库编程:JDBC

article/2025/7/22 21:19:09

目录

一、JDBC是什么?

二、使用步骤

1.首先将JDBC的包引进java中

 2.创建新的类来写代码

 3.描述你的服务器

4.设置你的数据库地址,数据库用户名,数据库密码

5.连接数据库

6.书写你所要执行的SQL语句

7.把字符串风格的sql转化成一个对象

8.执行语句

9.回收资源

三.使用JDBC的好处是什么​​​​​​​


一、JDBC是什么?

 

JDBC是数据库连接是一种用于执行SQL语句的java API,就类似于一个网址,它是java中的数据库连接规范,这个API里面由java.sql.*,javax.sql.*包中的一些类和接口组成,这些都可以为实现sql做基础,这些都为java开发人员操作数据库提供了一个标准的API,可以为多重关系数据库提供同意的访问

二、使用步骤

1.首先将JDBC的包引进java中

*第一步需要创建一个新的java项目,在这个项目里面创建一个新的文件夹

 *第二步将你下载的jar包复制粘贴到这个文件夹里面

  那么应该如何下载这个包:

      可以在maven的官网下载:      Maven Repository: Search/Browse/Explore (mvnrepository.com)

随便选择一个都可以

 下载好了之后就可以将此压缩包放到新文件夹里面了

 

 

*最后一步你需要读取一下这个包这也是不可缺少的一步

这样就将包引进完成了

 2.创建新的类来写代码

 

 3.描述你的服务器

DataSourse 是一个接口 是JDBC提供的类和方法中的一个 javax.sql这就是JDBC的包
import javax.sql.DataSource;需要引入这个包
这样就描述了数据库服务器在哪  DataSource接口通过MysqlDataSource实现具体的方法 向上转型
DataSource dataSource = new MysqlDataSource();

 

4.设置你的数据库地址,数据库用户名,数据库密码

        ((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java?characterEncoding=utf8&useSSL=false");((MysqlDataSource) dataSource).setUser("root");((MysqlDataSource) dataSource).setPassword("123456");
((MysqlDataSource) dataSource)这是一个向下转型,相关参数的具体类型是DataSource,后面如果数据库进行了改动基本代码不用变属于低耦合的
"jdbc:mysql://127.0.0.1:3306/java?characterEncoding=utf8&useSSL=false":
jdbc:mysql 表示这个url是JDBC MySQL的url相当于网址  127.0.0.1 IP地址描述了网络上一个主机的位置 这个IP地址是一个特殊的就相当于this直接访问当前主机的IP地址,java是要访问的数据库 characterEncoding=utf8是字符编码格式,useSSL=false传输过程中是否需要加密 一般没有重要数据的话不需要加密
设置登录数据库的用户名  mysql的默认用户名是root
设置登录数据库的密码   密码为自己设置的密码

 

5.连接数据库

Connection connection = dataSource.getConnection(); 

要使用jdbc的connection
getConnection()这个方法是受查异常需要声明一下

6.书写你所要执行的SQL语句

增删改查

        //String sql = "insert into student values('小三',20,1234)";//可以这么写但是这样写固定了可以让用户自己输入  这里的语句不需要加;String  sql = "insert into student values(?,?,?)";//这里的?代表不确定Scanner input = new Scanner(System.in);System.out.println("请输入要插入的名字");String name = input.next();System.out.println("请输入要插入的年龄");int age = input.nextInt();System.out.println("请输入要插入的id");String id = input.next();
        String sql = "delete from student where name = ?";Scanner input = new Scanner(System.in);System.out.println("请输入你要删除的名字:");String name = input.next();
        Scanner input = new Scanner(System.in);System.out.println("请输入要修改的名字:");String name = input.next();System.out.println("请输入要修改人的id:");String id = input.next();

      //sql语句String sql = "select * from student";

7.把字符串风格的sql转化成一个对象

        PreparedStatement statement = connection.prepareStatement(sql); //通过connection里面的prepareStatement方法转换为对象//将用户输入的放到sql语句中去statement.setString(1,name);//这里的1 2 3 代表?的顺序statement.setInt(2,age);statement.setString(3,id);

其他的都类似,后面如果你发现你的SQL语句执行不了的话你可以通过查看statement,来看你赋值后的sql语句是否正确从而改正错误

System.out.println("statement:" + statement);

8.执行语句

        int a = statement.executeUpdate();System.out.println("a=" + a);
只有select语句需要用到executeQuery
insert,update,delete语句都会使用executeUpdate,返回值为一个整数表示影响的语句数

select语句执行需要接收因为返回的是一个完整的表

ResultSet resultSet= statement.executeQuery();//返回的时候需要按所返回的所有列来接收
        while(resultSet.next()){//按表里面有的内容一列一列的输出 这里的while表示行数String name = resultSet.getString("name");int age = resultSet.getInt("age");String id = resultSet.getString("id");System.out.println("name " + name + " age " + age + " id " + id);}

9.回收资源

最后你需要回收资源此时你需要先释放statement,再释放connection就和你打开冰箱门然后来开抽屉取东西一样,你需要先关上抽屉才能关冰箱门

如果是选择语句的话你需要多回收一步

resultSet.close();
        statement.close();//先释放转化connection.close();//在释放连接

 

这样一个完整的sql语句就执行完毕了

三.使用JDBC的好处是什么

1.java语言访问数据库操作完全面向抽象接口编程;
2.开发数据库用用不用限定在的定的数据库厂商的API;
3.程序的可移植性大大增加


http://chatgpt.dhexx.cn/article/m8B5jMq8.shtml

相关文章

Python数据库编程

操作SQLite3数据库 从Python3.x版本开始,在标准库中已经内置了SQLlite3模块,它可以支持SQLite3数据库的访问和相关的数据库操作。在需要操作SQLite3数据库数据时,只须在程序中导入SQLite3模块即可。Python语言操作SQLite3数据库的基本流程如…

实验7 数据库编程

第1关 定义一个名为PROC_COUNT的无参数存储过程 任务描述 定义一个名为PROC_COUNT的无参数存储过程,查询工程名称中含有“厂”字的工程数量,并调用该存储过程。 相关知识 1、工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)…

C++数据库编程简介

C数据库编程简介 C数据库编程 ODBC简介 C数据库编程 ODBC连接SQL Server数据库 C数据库编程 ODBC插入数据 C数据库编程 ODBC查询数据 C数据库编程 ODBC删除数据 C数据库编程 ODBC修改数据 C数据库编程 ODBC连接MySQL增删改查数据 C数据库编程 MySQL Connecttor C简介 …

游戏设计模式——面向数据编程(转)

作者:KillerAery 出处:http://www.cnblogs.com/KillerAery/ 随着软件需求的日益复杂发展,远古时期面的向过程编程思想才渐渐萌生了面向对象编程思想。 当人们发现面向对象在应对高层软件的种种好处时,越来越沉醉于面向对象&…

数据科学必备Python编程基础

前言 对于Python复杂的编程语言中提取了数据分析常用的数据处理以及数据可视化等数据分析师常用的内容,区别与其他的Python编程教程,如果是纯开发的小伙伴,看完本系列的文章仅仅只能掌握数据相关处理的内容,并不能完全掌握开发方…

数据结构中的C语言编程基础

​ 在学习数据结构时,需要我们编写许多的程序,对于一些变量的定义、结构体的声明、指针的使用,需要有一个统一的标准,这样才能方便我们使用、并简化记忆难度。 ​ 本文结合自身的编程经验和高分笔记中对考研数据结构编程的一些建…

面向数据编程 Data-Oriented Programming [1]

RuntimeMapMaker3D-Pro 面向数据的编程原则 0.1 简介 面向数据的编程是一种编程范式,旨在简化以信息为中心的软件系统的设计和实施。而不是围绕着将数据和代码结合在一起的实体(如实例化的对象)来设计信息系统(例如,从…

ODBC API开发教程

ODBC API开发教程 作者:闻怡洋 未得到作者允许请勿转载 http://wyy.vchelp.net/ 目录 第 1 章 介绍... 2 第 2 章 ODBC API访问数据库... 2 2.1 ODBC简要介绍... 2 2.1.1 在没有ODBC以前... 2 2.1.2 ODBC介绍... 3 2.1.3 ODBC结构…

Microsoft Server 2008 空间存储 应用方法详解

2019独角兽企业重金招聘Python工程师标准>>> 刚接触2008的空间存储,资料比较少,在数据库操作中有很多不懂的地方,包括用法,语法等,经过同事的指点明白了一些,感谢大腿同事~这里只记录数据库操作…

ODBC 数据类型和API(VC)

目录 ODBC 数据类型API 函数 ODBC 数据类型 ODBC SQL 数据类型 展开显示 ODBC SQL 数据类型SQL类型标识SQL 92类型标识类型描述SQL_CHARCHAR(n)定长字符串,其长度为nSQL_VARCHARVARCHAR(n)变长字符串,最大长度为nSQL_LONGVARCHARLONG VARCHAR变长字符串,最大长度取决于数据源S…

Sql的decimal、float、double类型的区别

三者的区别介绍 float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位) double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有效位) d…

【网络编程实践】2.3.4.2 建议关闭 Nagle 算法

Nagle算法主要是避免发送小的数据包,要求TCP连接上最多只能有一个未被确认的小分组,在该分组的确认到达之前不能发送其他的小分组。 Nagle算法的目的:避免发送大量的小包,网络上每次只能一个小包存在,在小包被确认之前…

Nagle算法与TCP_CORK,TCP_NODELAY,TCP_QUICKACK

1. Nagel算法 TCP/IP协议中,无论发送多少数据,总是要在数据前面加上协议头,同时,对方接收到数据,也需要发送ACK表示确认。为了尽可能的利用网络带宽,TCP总是希望尽可能的发送足够大的数据。(一…

如何关闭和启用Nagle算法

如果各位读者在搜索如何关闭的话,那么我有理由相信各位对想要解决的问题已经算是比较清楚了,废话不多数。 什么是nagle算法,它是干嘛用的,请自行google or 百度 Step1 Open regredit 快捷键:winr 打开&#xff1a…

19- TCP 协议(Nagle)

前面我们所用的 unp/protocol/tools/winclient/echo_cli.cpp 程序的特别之处是它总会发送一个小分组(TCP 段,只有 41 字节)到服务器。这样的小分组在英文中称为 tinygram,在网络状态好的情况下,比如局域网中&#xff0…

TCP Nagle算法详解

转: http://bbs.chinaunix.net/thread-3767363-1-1.html 在网络拥塞控制领域,我们知道有一个非常有名的算法叫做Nagle算法(Nagle algorithm),这是使用它的发明人John Nagle的名字来命名的,John Nagle在1984年首次用这个…

TCP之延时Nagle算法实验详解

TCP/IP协议中,无论发送多少数据,总是要在数据前面加上协议头,同时,对方接收到数据,也需要发送ACK表示确认。为了尽可能的利用网络带宽,TCP总是希望尽可能的发送足够大的数据。(一个连接会设置MS…

Nagle Algorithm

转: http://bbs.chinaunix.NET/thread-3767363-1-1.html 在网络拥塞控制领域,我们知道有一个非常有名的算法叫做Nagle算法(Nagle algorithm),这是使用它的发明人John Nagle的名字来命名的,John Nagle在1984年首次用这…

TCP中的Nagle算法

TCP中的Nagle算法 一. Nagel算法 TCP/IP协议中,无论发送多少数据,总是要在数据前面加上协议头,同时,对方接收到数据,也需要发送ACK表示确认.为了尽可能的利用网络带宽,TCP总是希望尽可能的发送足够大的数据.(在一个连接中会设置MSS参数,因此,TCP/IP希望每次都能够以MSS尺寸的数…

确认应答、Nagle算法和延时确认应答

目录 确认应答 延时确认应答 Nagle算法 确认应答 TCP在传输数据的时候,每次接受方收到来自发送方的数据包后,接受方对都会发送一个确认应答(ACK)报文作为回应,发送方收到来自接受方的确认应答(ACK)报文,就表明发送的数据已经被…