Java基础第十七课(JDBC讲解——数据库操作)

本节课程的讲解需要用到数据库
我演示用的是MySQL8.0的数据库
你们可以直接去百度搜索下载自己安装下就行
MySQL数据库的安装及使用我会在Java基础讲完后重新开一个专题进行讲解
大家记得关注我哦。
好啦,讲解开始

一、简介

JDBC(Java Database Connectivity),即Java数据库连接,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供同一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,根据这种基准可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。总而言之,JDBC做了三件事:

1、与数据库建立连接

2、发送操作数据库的语句

3、处理结果

二、使用前准备

使用jdbc连接数据库之前,我们需要导入对应的数据库驱动jar包,不同的数据库导入的jar包也不同
具体自行百度下载
mysql数据库的jar包直接可以在mysql官网就能下载到
下载教程:
https://blog.youkuaiyun.com/Com_ma/article/details/80505179
(需要注意的是需要下载对应版本的jar包,我使用的是mysql8.0的,所以就下载8.0的jar包)

接下来就是导入jar包的教程:
下载好后把jar包复制粘贴到项目的src目录中,然后右键刚刚粘贴过来的jar包–>选择“Build Path”–>单击“Add to Build Path”选项即可
如下图就是导入好的:
在这里插入图片描述
接下来我们在数据库随意创建一个数据库和表,SQL代码如下,直接在MySQL中运行如下代码即可创建我本篇讲解示例的数据库:

DROP DATABASE IF EXISTS `demo`;
CREATE DATABASE `demo`;

USE `demo`;

DROP TABLE IF EXISTS `user_`;
CREATE TABLE `user_`
(
	`user_id` int(11) NOT NULL,
	`user_name` varchar(255) NOT NULL
);

INSERT INTO `user_` VALUES(1,'顾得白');
INSERT INTO `user_` VALUES(2,'顾得不白');

运行结果(打开创建的表后显示的内容):
在这里插入图片描述

三、使用方法

1、我们通过jdbc获取刚刚创建的数据库中user_表的user_id为1的数据:
代码如下:

package com.baidu.demo.test12;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Demo1 {

    //这是驱动名称,此例子中我们加载的是mysql的驱动,在之前需要导入mysql的驱动jar包
    public static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";

    //连接数据库的url,各个数据库厂商不一样,此处为mysql的;后面是创建的数据库名称
    public static final String JDBC_URL = "jdbc:mysql://localhost:3306/demo?characterEncoding=UTF-8?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";

    //连接数据库所需账户名
    public static final String JDBC_USERNAME = "root";

    //用户名对应的密码,我的mysql密码是991221
    public static final String JDBC_PASSWORD ="991221";
    
	public static void main(String[] args) {
		


        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        
		try {
			// 第一步:加载Driver类,注册数据库驱动
			Class.forName(JDBC_DRIVER);
			// 第二步:通过DriverManager,使用url,用户名和密码建立连接(Connection)
			connection = DriverManager.getConnection(JDBC_URL, JDBC_USERNAME, JDBC_PASSWORD);
			// 第三步:通过Connection,使用sql语句打开Statement对象;
			preparedStatement = connection.prepareStatement("select * from user_ where user_id = ? ");
			// 传入参数,之所以这样是为了防止sql注入,括号中第一个1代表的是上面sql语句中第一个问号的地方,第二个1代表的是那个问号的值,这里是查询user_id为1的记录
			preparedStatement.setInt(1, 1);
			// 第四步:执行语句,将结果返回resultSet
			resultSet = preparedStatement.executeQuery();
			// 第五步:对结果进行处理
			while (resultSet.next()) {
				int id = resultSet.getInt("user_id");
				String name = resultSet.getString("user_name");
				System.out.println("user_id="+id+"\tuser_name="+name);
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			// 第六步:倒叙释放资源resultSet-》preparedStatement-》connection
			try {
				if (resultSet != null && !resultSet.isClosed()) {
					resultSet.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}

			try {
				if (preparedStatement != null && !preparedStatement.isClosed()) {
					preparedStatement.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}

			try {
				if (connection != null && connection.isClosed()) {
					connection.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
        
	}

}

运行结果:
在这里插入图片描述

2、实现修改表中数据的操作:
代码如下:

package com.baidu.demo.test12;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Demo2 {

    //这是驱动名称,此例子中我们加载的是mysql的驱动,在之前需要导入mysql的驱动jar包
    public static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";

    //连接数据库的url,各个数据库厂商不一样,此处为mysql的;后面是创建的数据库名称
    public static final String JDBC_URL = "jdbc:mysql://localhost:3306/demo?characterEncoding=UTF-8?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";

    //连接数据库所需账户名
    public static final String JDBC_USERNAME = "root";

    //用户名对应的密码,我的mysql密码是991221
    public static final String JDBC_PASSWORD ="991221";
    
	public static void main(String[] args) {
		


        Connection connection = null;
        PreparedStatement preparedStatement = null;
        int resultSet;
        
		try {
			// 第一步:加载Driver类,注册数据库驱动
			Class.forName(JDBC_DRIVER);
			// 第二步:通过DriverManager,使用url,用户名和密码建立连接(Connection)
			connection = DriverManager.getConnection(JDBC_URL, JDBC_USERNAME, JDBC_PASSWORD);
			// 第三步:通过Connection,使用sql语句打开Statement对象;
			preparedStatement = connection.prepareStatement("update user_ set user_name = ? where user_id = ?");
			// 传入参数,之所以这样是为了防止sql注入
			preparedStatement.setString(1, "修改后的数据");
			preparedStatement.setInt(2, 2);
			// 第四步:执行语句,将结果返回resultSet,返回1则说明执行成功
			resultSet = preparedStatement.executeUpdate();
			if(resultSet == 1) {
				System.out.println("修改完成");
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			// 第六步:倒叙释放资源preparedStatement-》connection

			try {
				if (preparedStatement != null && !preparedStatement.isClosed()) {
					preparedStatement.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}

			try {
				if (connection != null && connection.isClosed()) {
					connection.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
        
	}

}

运行结果:
在这里插入图片描述
运行后再次使用数据库工具查看数据库中user_表的记录:
在这里插入图片描述
可以看到数据修改成功。

记录的删除和增加其实和上面说的修改记录是差不多的,都是执行executeUpdate()这个方法,只需要改一下sql语句即可,这个我就不一一演示了,大家自己下来试试吧(其实是我懒得写),不懂sql语句怎么写的,请赶紧关注我,我打算在下一个专题开展MySQL的教程,关注我你就可以学习到相关知识啦(可以说是相当草率了,请随时关注我的动态哦,Java基础一讲完我就开始讲MySQL了)。


好啦,本篇就到这里吧
有什么问题直接QQ497099936
24小时不定时在线解答哦
撩骚的更欢迎
欢迎来搞
b(^ —— ^)d
好啦,顾得白

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值