JDBC Java对数据库增删改查(完整案例)
创始人
2024-04-19 06:10:59
0

目录

一.综合上述7个步骤,实现向student表中插入一条数据。

1、注册驱动

2 、获取数据库连接对象

3、获取发送SQL语句对象

4、编写SQL语句,SQL语句最好是先在SQLyog里面写一遍并运行一下,保证SQL语句没有语法

错误,这里sid是自增长,所以不需要写

5、执行SQL语句

DML语句:对于插入数据、修改数据、删除数据操作,都调用executeUpdate()方法,返回受影响

的行数(int类型)

6、处理结果,如果返回的受影响行数不为0,说明数据插入成功

 7、释放资源,遵循“先开后关,后开先关”的原则

二.综合上述7个步骤,实现根据学号sid删除数据库表中一条数据。

三.综合上述7个步骤,实现根据学号sid删除数据库表中一条数据。

四.结果集

4.1接受结果集

 4.2.遍历ResultSet结果集中的数据



👌 棒棒有言:生活不可能一帆风顺,总会有波折,总会有险阻。生活是个爱开玩笑的孩子,也许今天给你所有,明天又会让你一无所有,无需烦恼,该来的总会来,再黑的夜晚也会有黎明到来的那一刻。不管生活有多么曲折,只要拥有幸福的态度就能挺过漫漫长夜,就能迎来美好的明天。

👌 本章简介:JDBC(Java Data Base Connectivity,java数据库连接),是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。

简单地说,JDBC 可做三件事:与数据库建立连接、发送 操作数据库的语句并处理结果。

👍  作者:get棒棒给个关注呗

👍  重要:请给个关注哦!
 

一.综合上述7个步骤,实现向student表中插入一条数据。

1、注册驱动

2 、获取数据库连接对象

3、获取发送SQL语句对象

4、编写SQL语句,SQL语句最好是先在SQLyog里面写一遍并运行一下,保证SQL语句没有语法

错误,这里sid是自增长,所以不需要写

5、执行SQL语句

DML语句:对于插入数据、修改数据、删除数据操作,都调用executeUpdate()方法,返回受影响

的行数(int类型)

6、处理结果,如果返回的受影响行数不为0,说明数据插入成功

 7、释放资源,遵循“先开后关,后开先关”的原则

package com.cxyzxc.www.examples01;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;/*** JDBC连接数据 实现向数据库jdbcdatabase里student表中插入一条数据* * @author 程序员张小厨* */
public class Jdbc01InsertStudent {public static void main(String[] args) {Connection connection = null;Statement statement = null;try {// 1、注册驱动Class.forName("com.mysql.jdbc.Driver");// 2 、获取数据库连接对象String url = "jdbc:mysql://127.0.0.1:3306/jdbcdatabase";String user = "root";String password = "123456";connection = DriverManager.getConnection(url, user, password);// 3、获取发送SQL语句对象statement = connection.createStatement();// 4、编写SQL语句,SQL语句最好是先在SQLyog里面写一遍并运行一下,保证SQL语句没有语法错误,这里sid是自增长,所以不需要写String sql = "INSERT  INTO `student`(`name`,`age`,`gender`,`phone`,`identitycard`,`address`) VALUES ('王五',21,'男','13825869876','340825200109151928','安徽合肥包河区');";// 5、执行SQL语句// DML语句:对于插入数据、修改数据、删除数据操作,都调用executeUpdate()方法,返回受影响的行数(int类型)// DQL语句:对于查询数据,调用executeQuery()方法,返回一个结果集(ResultSet类型)int result = statement.executeUpdate(sql);// 6、处理结果,如果返回的受影响行数不为0,说明数据插入成功if (result != 0) {System.out.println("数据插入成功");} else {System.out.println("数据插入失败");}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();} finally {// 7、释放资源,遵循“先开后关,后开先关”的原则if (connection != null) {try {connection.close();} catch (SQLException e) {e.printStackTrace();}}if (statement != null) {try {statement.close();} catch (SQLException e) {e.printStackTrace();}}}}}

二.综合上述7个步骤,实现根据学号sid删除数据库表中一条数据。

1、注册驱动

2 、获取数据库连接对象

3、获取发送SQL语句对象

4、编写SQL语句,SQL语句最好是先在SQLyog里面写一遍并运行一下,保证SQL语句没有语法

错误

 5、执行SQL语句

DML语句:对于插入数据、修改数据、删除数据操作,都调用executeUpdate()方法,返回受影响

的行数(int类型)DQL语句:对于查询数据,调用executeQuery()方法,返回一个结果集

(ResultSet类型)

6、处理结果,如果返回的受影响行数不为0,说明数据删除成功

7、释放资源,遵循“先开后关,后开先关”的原则

package com.cxyzxc.www.examples01;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;/*** JDBC连接数据 实现删除数据库jdbcdatabase里student表中的一条数据* * @author 程序员张小厨* */
public class Jdbc02DeleteStudent {public static void main(String[] args) {Connection connection = null;Statement statement = null;try {// 1、注册驱动Class.forName("com.mysql.jdbc.Driver");// 2 、获取数据库连接对象String url = "jdbc:mysql://127.0.0.1:3306/jdbcdatabase";String user = "root";String password = "123456";connection = DriverManager.getConnection(url, user, password);// 3、获取发送SQL语句对象statement = connection.createStatement();// 4、编写SQL语句,SQL语句最好是先在SQLyog里面写一遍并运行一下,保证SQL语句没有语法错误String sql = "DELETE FROM `student` WHERE `sid` = 1003;";// 5、执行SQL语句// DML语句:对于插入数据、修改数据、删除数据操作,都调用executeUpdate()方法,返回受影响的行数(int类型)// DQL语句:对于查询数据,调用executeQuery()方法,返回一个结果集(ResultSet类型)int result = statement.executeUpdate(sql);// 6、处理结果,如果返回的受影响行数不为0,说明数据删除成功if (result != 0) {System.out.println("数据删除成功");} else {System.out.println("数据删除失败");}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();} finally {// 7、释放资源,遵循“先开后关,后开先关”的原则if (connection != null) {try {connection.close();} catch (SQLException e) {e.printStackTrace();}}if (statement != null) {try {statement.close();} catch (SQLException e) {e.printStackTrace();}}}}}

三.综合上述7个步骤,实现根据学号sid删除数据库表中一条数据。

1、注册驱动

2 、获取数据库连接对象

3、获取发送SQL语句对象

4、编写SQL语句,SQL语句最好是先在SQLyog里面写一遍并运行一下,保证SQL语句没有语法

错误

 5、执行SQL语句

DML语句:对于插入数据、修改数据、删除数据操作,都调用executeUpdate()方法,返回受影响

的行数(int类型)DQL语句:对于查询数据,调用executeQuery()方法,返回一个结果集

(ResultSet类型)

6、处理结果,如果返回的受影响行数不为0,说明数据删除成功

7、释放资源,遵循“先开后关,后开先关”的原则

package com.cxyzxc.www.examples01;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;/*** JDBC连接数据 实现修改数据库jdbcdatabase里student表中的一条数据* * @author 程序员张小厨* */
public class Jdbc03UpdateStudent {public static void main(String[] args) {Connection connection = null;Statement statement = null;try {// 1、注册驱动Class.forName("com.mysql.jdbc.Driver");// 2 、获取数据库连接对象String url = "jdbc:mysql://127.0.0.1:3306/jdbcdatabase";String user = "root";String password = "123456";connection = DriverManager.getConnection(url, user, password);// 3、获取发送SQL语句对象statement = connection.createStatement();// 4、编写SQL语句,SQL语句最好是先在SQLyog里面写一遍并运行一下,保证SQL语句没有语法错误String sql = "UPDATE `student` SET `name`='李红',`age`=19,`gender`='女',`phone`='13111223344',`identitycard`='340825200308151936',`address`='安徽合肥高新区' WHERE `sid`=1002;";// 5、执行SQL语句// DML语句:对于插入数据、修改数据、删除数据操作,都调用executeUpdate()方法,返回受影响的行数(int类型)// DQL语句:对于查询数据,调用executeQuery()方法,返回一个结果集(ResultSet类型)int result = statement.executeUpdate(sql);// 6、处理结果,如果返回的受影响行数不为0,说明数据修改成功if (result != 0) {System.out.println("数据修改成功");} else {System.out.println("数据修改失败");}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();} finally {// 7、释放资源,遵循“先开后关,后开先关”的原则if (connection != null) {try {connection.close();} catch (SQLException e) {e.printStackTrace();}}if (statement != null) {try {statement.close();} catch (SQLException e) {e.printStackTrace();}}}}}

四.结果集

JDBC中执行DQL查询语句后,使用ResultSet存放查询到的结果集数据。

4.1接受结果集

ResultSet resultSet = statement.executeQuery(String sql);

1、注册驱动

2 、获取数据库连接对象

3、获取发送SQL语句对象

4、编写SQL语句,SQL语句最好是先在SQLyog里面写一遍并运行一下,保证SQL语句没有语法

错误String sql = "SELECT * FROM `student` WHERE `sid`= 1002;";

 5、执行SQL语句

// DML语句:对于插入数据、修改数据、删除数据操作,都调用executeUpdate()方法,返回受影

响的行数(int类型) DQL语句:对于查询数据,调用executeQuery()方法,返回一个结果集

(ResultSet类型)ResultSet resultSet = statement.executeQuery(sql); 

 4.2.遍历ResultSet结果集中的数据

ResultSet以表(table)结构进行临时结果的存储,需要通过JDBC API将其中的数据依次获取。

数据行指针:初始位置在第一行数据前,每调用一次boolean next()方法ResultSet的指针向下移动

一行,结果为true,表示当前行有数据。 

*resultSet.getXxx(int columnIndex):根据字段的索引顺序获取表中字段的数据,索引从1开 始,

Xxx表示字段类型 

*resultSet.getXxx(String columnLabel):根据字段的名称获取表中字段的数据。

 6、处理结果,对返回的resultSet结果集进行处理,需要将结果集中的数据取出来

 查询一条数据时,使用if判断resultSet.next()为true,说明resultSet结果集中有一条数据,

如果resultSet.next()为false,说明resultSet结果集中没有数据。

查询所有数据时,使用while循环判断resultSet.next()为true,说明resultSet结果集中还有

一条数据,如果resultSet.next()为false,说明resultSet结果集中没有数据了。

查询一条数据,根据记录中字段的索引获取字段数据

if (resultSet.next()) {//根据记录中字段的索引获取字段数据,字段索引从1开始int sid = resultSet.getInt(1);String name = resultSet.getString(2);int age = resultSet.getInt(3);String gender = resultSet.getString(4);String phone = resultSet.getString(5);String identitycard = resultSet.getString(6);String address = resultSet.getString(7);System.out.println(sid + "-" + name + "-" + age + "-" + gender+ "-" + phone + "-" + identitycard + "-" + address);
}

查询一条数据,根据记录中字段的名称获取字段数据

if (resultSet.next()) {//根据记录中字段的名称获取字段数据int sid = resultSet.getInt("sid");String name = resultSet.getString("name");int age = resultSet.getInt("age");String gender = resultSet.getString("gender");String phone = resultSet.getString("phone");String identitycard = resultSet.getString("identitycard");String address = resultSet.getString("address");System.out.println(sid + "-" + name + "-" + age + "-" + gender+ "-" + phone + "-" + identitycard + "-" + address);
}

查询所有数据,根据记录中字段的索引获取字段数据

while (resultSet.next()) {//根据记录中字段的索引获取字段数据,字段索引从1开始int sid = resultSet.getInt(1);String name = resultSet.getString(2);int age = resultSet.getInt(3);String gender = resultSet.getString(4);String phone = resultSet.getString(5);String identitycard = resultSet.getString(6);String address = resultSet.getString(7);System.out.println(sid + "-" + name + "-" + age + "-" + gender+ "-" + phone + "-" + identitycard + "-" + address);
}

查询所有数据,根据记录中字段的名称获取字段数据

while (resultSet.next()) {//根据记录中字段的名称获取字段数据int sid = resultSet.getInt("sid");String name = resultSet.getString("name");int age = resultSet.getInt("age");String gender = resultSet.getString("gender");String phone = resultSet.getString("phone");String identitycard = resultSet.getString("identitycard");String address = resultSet.getString("address");System.out.println(sid + "-" + name + "-" + age + "-" + gender+ "-" + phone + "-" + identitycard + "-" + address);
}

 

相关内容

热门资讯

银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...