JDBC简介

article/2025/8/24 5:41:09

文章目录

    • 一、JDBC简介
    • 二、JDBC执行步骤
    • 三、执行步骤中类的简介
    • 1、DriverManager类
    • 2.Connection类
    • 3、ResultSet类

一、JDBC简介

1.什么是jdbc
JDBC全称:java database connectivity,简称jdbc, 翻译就是 Java 数据库连接。

2.jdbc有什么作用:
是一种标准Java应用编程接口( JAVA API),用来连接 Java 编程语言和广泛的数据库。可以通过jdbc代码实现对数据库的操作。包括DDL,DML,DQL等。

二、JDBC执行步骤

1.导入驱动jar包
链接:https://pan.baidu.com/s/1mP3Nb4wKd1VrBrGmbD3QDg
提取码:t0kh
导入jar包步骤

  • 1.在你的web-INF目录下创建一个lib包,专门放置jar包
  • 2.将jar包复制到lib路径下
  • 3.右键单击,选择add as library
  • 4.将level改成module library 点击OK

如果你的lib路径下的jar包有以下小箭头,就添加成功了
在这里插入图片描述
2.注册驱动

	Class.forName("com.mysql.jdbc.Driver");

3.获取连接

	Connection connection = DriverManager.getConnection(url, username, password);

4.定义SQL语句

	String sql = "sql语句";

5.获取执行SQl对象

Statement statement = connection.createStatement();

6.执行sql语句

statement.executeUpdate(sql);

7.处理结果

8.释放资源

statement.close();
connection.close();
package com.example.jdbc;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;public class jdbcdemo {public static void main(String[] args) throws Exception {
//        1.注册驱动Class.forName("com.mysql.jdbc.Driver");//        2.获取连接String url = "jdbc:mysql://127.0.0.1:3306/dbcsdn";String username = "root";String password = "1234";Connection connection = DriverManager.getConnection(url, username, password);
//        3.定义sql语句,这里以创建一个work_user表为例String sql1 = "use dbcsdn";String sql2 = "create table work_user(" +"id int(5) primary key auto_increment," +"username varchar(20) unique," +"password varchar(20))";
//        4.获取sql对象Statement statement = connection.createStatement();
//        5.执行sqlint l1 = statement.executeUpdate(sql1);int l2 = statement.executeUpdate(sql2);//        6.处理结果System.out.println("sql1受影响条数"+l1);System.out.println("sql2受影响条数"+l2);//        7.释放资源statement.close();connection.close();}
}

三、执行步骤中类的简介

1、DriverManager类

DriverManager类下面提供的全是静态方法,只需要用类名点方法就可以调用,不需要实例化。它的作用主要有两个:
1.注册驱动: registerDriver()

	Class.forName("com.mysql.jdbc.Driver");

其中的Driver类里面有一个静态代码块,有一句DriverManager. registerDriver()完成驱动的注册
在这里插入图片描述

2.获取连接:getConnection(url, username, password);
这个方法可以通过mysql的URL地址、数据库用户名、密码获取连接。传入的参数就是对应的URL地址:形如jdbc.mysql://ip地址:端口号/数据库名称。如果是本机连接,IP地址可以写成127.0.0.1或者localhost。如果端口号是默认的3306,可以写成缩写格式:jdbc.mysql:///数据库名

	Connection connection = DriverManager.getConnection(url, username, password);

2.Connection类

connection类主要有两个作用:一是可以获取执行sql的对象,二是管理事务的功能。我们都知道数据库里面的数据局一旦改变就是永久的,所以需要一个管理事务功能验证sql语句的正确性。在mysql中事务管理通过begin开启事务,rollback回滚事务,commit提交事务。在jdbc里面通过connection类的特定方法也可以实现这三个功能。

  1. 获取执行sql的对象用到的方法。
    第一个就是普通执行sql对象:connection.createStatement()方法,返回一个Statement对象。

    Statement statement = connection.createStatement();
    

statement类下面有两个对数据进行操作的方法,分别是excuteUpdate(),excuteQuery()。excuteUpdate()这个方法主要是实现DML(操作数据),DDL(操作数据库,操作表)的代码。执行成功之后会返回一个值,这个值就是受影响的行数。但是DDL中就算执行成功之后有可能是0,因为创建一个新的表这样的sql代码受影响行数是0。excuteQuery()主要是实现DQL(查询语句),这个方法会返回一个resultSet对象,这个对象主要用于接受查询到的内容。

演示excuteUpdate()方法。

package com.example.jdbc;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;public class jdbcdemo {public static void main(String[] args) throws Exception {String url = "jdbc:mysql://127.0.0.1:3306/dbcsdn";String username = "root";String password = "1234";Connection connection = DriverManager.getConnection(url, username, password);String sql = "insert  into work_user values " +"(1,'name1','password1')," +"(2,'name2','password2');";Statement statement = connection.createStatement();int i = statement.executeUpdate(sql);System.out.println("受影响的行数是:"+i+"行");statement.close();connection.close();}
}

第二个是防止sql注入的prepareStatement()方法,其中传入sql语句,可以防止sql注入,最终返回一个PrepareStatement对象。

2.jdbc事务管理用法举例

package com.example.jdbc;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;public class jdbcdemo {public static void main(String[] args) throws Exception {String url = "jdbc:mysql://127.0.0.1:3306/dbcsdn";String username = "root";String password = "1234";Connection connection = DriverManager.getConnection(url, username, password);String sql1 = "insert  into work_user values " +"(5,'name5','password5')," +"(6,'name6','password6');";String sql2 = "update work_user set username = 'name002' where id = 2;";Statement statement = connection.createStatement();try {// 开启事务connection.setAutoCommit(false);int l1 = statement.executeUpdate(sql1);System.out.println("sql1受影响的行数是:"+l1+"行");int l2 = statement.executeUpdate(sql2);System.out.println("sql2受影响行数是:"+ l2+ "行");// 提交事务connection.commit();} catch (Exception e) {//回滚事务connection.rollback();e.printStackTrace();}statement.close();connection.close();}
}

3、ResultSet类

作用:对DQL查询语句进行封装,返回一个resultset对象,并且可以通过特定方法获取查询结果。

  1. 对DQL查询语句封装

    ResultSet resultSet = statement.executeQuery(sql);
    
  2. 通过特定方法获取查询结果

next()方法。返回Boolean类型,主要用于判断当前行是否有有效数据,若有就返回true,否则返回false。

getXXX()方法。通过resultSet获取数据,对应数据类型定义对应方法。传参可以为字段名,也可以是列对应的编号。

package com.example.jdbc;import java.sql.*;public class jdbcdemo {public static void main(String[] args) throws Exception {String url = "jdbc:mysql://127.0.0.1:3306/dbcsdn";String username = "root";String password = "1234";Connection connection = DriverManager.getConnection(url, username, password);String sql = "select * from work_user";Statement statement = connection.createStatement();ResultSet resultSet = statement.executeQuery(sql);while (resultSet.next()){int id = resultSet.getInt("id");String name = resultSet.getString("username");String psd = resultSet.getString("password");System.out.print("id:"+id+"\t");System.out.print("username:"+name+"\t");System.out.println("password:"+psd);System.out.println("---------------");}resultSet.close();statement.close();connection.close();}
}

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

相关文章

JDBC详细介绍

jdbc的概念 JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一访问,它是由一组用Java语言编写的类和接口组成的。 2.jdbc的作用 JDBC为Java程序操作不同的数据库提…

JDBC详细全解(示例超多)

文章目录 JDBCJDBC的概念1.jdbc的概念2.jdbc的本质 JDBC快速入门JDBC功能详解1、DriverManager驱动管理对象2、Connection数据库连接对象3、Statement执行sql语句的对象4、ResultSet结果集对象 JDBC案例案例需求数据准备1、数据库数据准备2、创建student类 功能实现1、查询所有…

JDBC介绍

1 JDBC简介 概念:JDBC(Java DataBase Connectivity) :Java数据库连接技术:具体讲就是通过Java连接广泛的数据库,并对表中数据执行增、删、改、查等操作的技术。如图所示: 此前我们学习过SQL后,可以通过 Na…

JDBC 连接 MySQL

哈喽~大家好,这次我们来看看 JDBC 如何 连接 MySQL. 目录 一、开头 二、介绍 1、JDBC 的概念 2、JDBC 的功能 3、JDBC 的常用接口和类 三、数据库的创建(MySQL) 1、连接 MySQL (1)、注册驱动 (2)、获取连接 (3)、获取执行者连接 …

BindingNavigator 类 - MSDN

.NET Framework 2.0 其他版本 5(共 9)对本文的评价是有帮助 - 评价此主题 注意:此类在 .NET Framework 2.0 版中是新增的。 表示窗体上绑定到数据的控件的导航和操作用户界面 (UI)。 命名空间:System.Windows.Forms 程序集:System.Windows.Fo…

Android的一个BindView工具的实现

对于Android已经有很多Bind View的工具了,大多都是使用了反射和注解的方法。那么如何实现一个简易的代码生成工具呢?其实不难,只要会写代码都可以试试。这些天,我试了一下,并将它做成了工具。代码如下: pa…

setNavigationBarTitle

wx.setNavigationBarTitle就是用来改红框框里面的内容滴 在项目开发中经常用到 使用的场景就包括了多个地方用同一套页面的时候 wx.setNavigationBarTitle({title: "我的店铺",});

安卓ViewBinding详解

背景 之前我们通过Kotlin Android Extensions来访问布局文件中的元素,但是这个现在被废弃了,原因如下: 空安全:res下的任何id都可以被访问,有可能因访问了非当前Layout下的id而出错兼容性:只能在kotlin中…

Winform中用bindingNavigator和bingdingSource实现分页

BindingNavigator控件介绍 可以使用BindingNavigator控件来创建标准化的方法,以便用户搜索和更改 Windows 窗体上的数据。BindingNavigator 控件由包含一系列 ToolStripItem 对象的ToolStrip组成,可以实现:添加数据,删除数据&…

DataGridView使用bindingNavigator实现分页功能(应用存储过程)

想法是这样的:使用bindingNavigator存储过程实现DataGridView的分页功能,其中包含简单的查询。 存储过程如下: --创建分页查询存储过程(含输出参数,输入参数(含搜索功能)) use HotelDB if exists(select *…

配置bind

安装bind yum install bind-* service firewalld stop #暂时关闭防火墙 vim /etc/named.conf Linsten-on port 53 {any;}; 监听除了自己以外的ip Allow-query{any;} 允许任意的ip来访问 配置正向解析 /etc/named.rfc1912.zones #直接在底部添加 zone "s…

Android dataBinding和viewBinding的混淆配置

在最近重构过的项目中有使用dataBinding或viewBinding,在调试的时候没有问题,但是在混淆过后出现了崩溃: 我们知道viewbinding的初始化是ActivityMainBinding.inflate() 而我是通过反射去初始化viewbinding的 很明显,布局所生成的…

viewBinding和@BindView的用法的简单使用

viewBinding 1.module下的build.gradle,在闭包android{ }里面添加 viewBinding {enabled true} 2.使用方法 用视图绑定功能后,系统会为该模块中包含的每个 XML 布局文件生成一个绑定类。这个类的类名是以xml布局文件名去掉下换线后,单词…

BindingNavigator控件

WinForm之中BindingNavigator控件的使用 在微软WinForm中,BindingNavigator控件主要用来绑定数据。可以将一个数据集合与该控件绑定,以进行数据 联动的显示效果。如图下图所示: 那么,下面我们就来用BindingNavigator控件做一下上图…

WinForm控件之【BindingNavigator】【DataSet】【BindingSource】【DataGridView】

基本介绍 数据类控件,数据加载绑定便捷应用相当广泛,具体看例子自行扩展吧; 常设置属性 BindingNavigator--BindingSource:数据来源,绑定后默认项会根据相应的操作按钮执行操作; BindingNavigator--Items&a…

WinForm之中BindingNavigator控件的使用

在微软WinForm中,BindingNavigator控件主要用来绑定数据。可以将一个数据集合与该控件绑定,以进行数据联动的显示效果。如图下图所示: 那么,下面我们就来用BindingNavigator控件做一下上图所示的效果。 分析:该案例以B…

winform控件之BindingNavigator

BindingNavigator控件可以为我们绑定的数据提供一个导航的功能,默认的工具是这个样子的,我们可以根据需求再增加功能 1.BindingNavigator用法 1.1界面布局 界面布局如下 一个BindingNavigator名为bindingNavigator1 一个DataGridView名为DataGridVie…

C#开发之——ToolStrip(10.22)

一 概述 在C# WinForm开发中添加工具栏(ToolStrip)和添加菜单栏类似&#xff0c;在工具箱中将ToolStrip控件直接拖到Windows窗体中即可 <!--more--> 二 ToolStrip操作 从工具箱拖拽ToolStrip控件到Windows窗体后&#xff0c;如下图所示(在添加了ToolStrip控件之后&…

C#winform窗体控件之toolStrip

C#winform窗体控件之toolStrip 在做窗体时我们可能需要一个工具栏&#xff0c;那这时最简单的方法就是添加一个toolStrip控件。 如何完成一个上图的工具栏呢? 首先&#xff0c;需要添加一个toolStrip控件&#xff0c;然后点击控件上的添加按钮&#xff0c;添加你需要的控件&…

C#如何让ToolStrip工具栏按钮分别靠左和靠右对齐分布

ToolStrip工具栏按钮默认靠左对齐&#xff0c;如何让ToolStrip工具栏按钮分别靠左和靠右对齐分布&#xff1f;&#xff01; 第一步&#xff0c;选择要靠右对齐的工具栏上的按钮&#xff0c;属性&#xff0c;设置“Alignment: Right” 即&#xff0c;this.toolStripSysInfoBut…