第十七章:数据库操作

数据库基础

 SQL语言

1、select 语句

select 语句用于从数据中检索数据。语法如下:

SELECT 搜选字段列表 FROM 数据表名

WHERE 条件表达式 GROUP BY 字段名 HAVING 条件表达式(指定分组的条件)

ORDER BY 字段名[ASC|DESC]

2、insert 语句

insert 语句用于向表中插入新数据。语法如下:

insert into 表名[(字段1,字段2...)]values(属性值1,属性值2);

 

 3、update 语句

update 语句用于更新数据表中的某些记录。语法如下:

UPDATE 数据表名 SET 字段名=新的字段值 WHERE 条件表达式;

 

 4、delete 语句

delete 语句用于删除数据。语法如下:

delete from 数据表名 where 条件表达式;

 

 

DBC中常用的类和接口

1、 DriverManager 类

  DriverManager 类师JDBC的管理层,用于管理数据库中的驱动程序。在操作指定数据库之前,需要使用Java中Class 类的静态方法forName(String className)加载指定数据库的驱动程序。

2、Connection 接口

   Connection 接口代表与特定的数据库的连接,在连接上下文中执行SOL语句并返回结果。 

3、Statement 接口

      Statement 接口用于在已经建立连接的基础上向数据库发送SQL语句。 

4、PreparedStatement 接口

     PreparedStatement 接口用来动态地执行SQL语句。通过PreparedStatement 实例执行的动态的SQL语句,将被预编译并能保存到PreparedStatement 实例中,从而可以反复地执行该SQL语句。 

5、ResultSet 接口

       ResultSet 接口类似与一个临时表,用来展示存放数据库查询操作所获得的结果。ResultSet 实例具有指定当前数据行的指针,指针开始的位置在第一个记录的前面,通常next()方法可将指针向下移。 

数据库操作

      要对数据库表中的数据库进行操作,首先应该建立与数据库的连接。通过JDBC API 中提供的各种各类,可对数据表中的数据进行查找、添加、修改、删除等操作。代码如下:
 

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;import com.mysql.cj.jdbc.Driver;public class JDBC {Connection connection;public static void main(String[] args)throws  SQLException {JDBC jdbc=new JDBC();jdbc.getConnection();System.out.println("查询所有课程,结果为:");jdbc.selectAll();System.out.println("新增4号课程,名为Web");jdbc.add(4,"Web");System.out.println("查询所有课程,结果为:");jdbc.selectAll();System.out.println("修改三课程,名为office");jdbc.update(3,"office");System.out.println("查询所有课程,结果为:");	jdbc.selectAll();	System.out.println("删除4号课程");jdbc.delete(4);System.out.println("查询所有课程,结果为:");jdbc.selectAll();jdbc.close();}//删除课程public void delete(int id) throws SQLException {//第三步:获取statement对象PreparedStatement preparedStatement=connection.prepareStatement("delete from couse where id= ?;");preparedStatement.setInt(1,id);//执行SQL语句返回结果集preparedStatement.executeUpdate();}//修改课程public void update(int id,String name) throws SQLException {//第三步:获取statement对象PreparedStatement preparedStatement=
connection.prepareStatement("update couse set name= ? where id= ?;");preparedStatement.setString(1, name);preparedStatement.setInt(2, id);//第四步: 获取statement对象preparedStatement.executeUpdate();}//添加课程public void add(int id, String name)throws SQLException {//第三步:获取statement对象PreparedStatement preparedStatement=connection.prepareStatement("insert into couse value(?,?);");preparedStatement.setInt(1, id);preparedStatement.setString(2, name);//第四步:执行SQL语句返回结果集preparedStatement.executeUpdate();}public void getConnection()throws SQLException{//第一步注册驱动	DriverManager.registerDriver(new Driver());	//第二步:获取连接		connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/school_java","root","1234");}//查询所有课程public void selectAll()throws SQLException {//第三步:获取statement对象PreparedStatement preparedStatement=connection.prepareStatement("select * from couse;");
//第四步: 执行SQL语句返回结果集ResultSet resultSet=preparedStatement.executeQuery();
//第五步:遍历结果集while(resultSet.next()) {System.out.print(resultSet.getInt("id")+" ");System.out.println(resultSet.getString("name"));}//第六步:关闭连接释放资源resultSet.close();preparedStatement.close();}public void close()throws SQLException {connection.close();}
}

运行结果:

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/165399.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重新使用hbase前

启动关闭Hadoop和HBase的顺序一定是: 启动Hadoop—>启动HBase—>关闭HBase—>关闭Hadoop 1.挂载共享文件夹到挂载点 sudo mount -t vboxsf virtualmachineShare /mnt/shared2.进入hadoop目录下启动hadoop cd /usr/local/hadoop/ ./sbin/start-all.sh …

【UE5】五大基类及其使用

UObject UObject表示对象,准确来说,虚幻引擎中的对象基础类为UObject UObject提供了以下功能: 垃圾收集(Garbage collection)引用自动更新(Reference updating)反射(Reflection&am…

火电厂电气部分设计

摘要 本文首先根据任务书上所给系统与线路及所有负荷的参数,分析负荷发展趋势。从负荷增长方面阐明了建站的必要性,然后通过对拟建变电站的概括以及出线方向来考虑,并通过对负荷资料的分析,安全,经济及可靠性方面考虑…

计算机基础知识57

前后端数据传输的编码格式(contentType) # 我们只研究post请求方式的编码格式: get请求方式没有编码格式-- index?useranme&password get请求方式没有请求体,参数直接在url地址的后面拼接着 # 有哪些方式可以提交post请求:f…

构建个性化预约服务:预约上门服务系统源码解读与实战

随着社会的发展,预约上门服务系统在满足用户需求、提升服务效率方面发挥着越来越重要的作用。在本文中,我们将深入研究预约上门服务系统的源码,通过实际的技术代码示例,揭示系统内部的关键机制,以及如何在实际项目中应…

qml动画过渡Transition

文章目录 基本概念使用 `Transition`示例动画过渡高级用法示例:复杂动画过渡解释进阶用法在 QML 中,Transition 元素用于定义状态之间过渡时的动画。这是 QML 强大的状态机制的一部分,允许开发者创建平滑且吸引人的用户界面交互。使用 Transition,您可以定义当元素从一个状…

深入了解接口测试:方法、工具和关键考虑因素(一)

接口测试是软件测试中的一项重要工作,它涉及到系统与系统之间的交互点。接口可以是外部接口,也可以是内部接口,包括上层服务与下层服务接口以及同级接口。在接口测试中,我们需要确保接口能够按照预期的方式进行通信和交互&#xf…

【攻防世界-misc】can_has_stdio?

1.用记事本打开文件是这样子的, 这是一段BF(Brainfuck)编程语言代码,属于一种极简化的编程语言,用于演示计算机程序设计概念。这段代码包含了一些操作符,如">"表示指针向右移动,&q…

【C++破局】泛型编程|函数模板|类模板

​作者主页 📚lovewold少个r博客主页 ⚠️本文重点:c模板初阶知识点讲解 👉【C-C入门系列专栏】:博客文章专栏传送门 😄每日一言:花有重开日,人无再少年 目录 前言 泛型编程 函数模板 函数模…

用Java实现简易的图书管理系统(超详细)

目录 1.设计背景 2.设计思路 3.模块展示及代码演示 3.1 Book类的实现 3.2 BookList类的实现(书架) 3.3 异常类的实现(OperationException) 3.4 用户类的实现 3.5 操作接口的实现(定义规范) 3.6 操作类的具体实现 3.6.1 增加操作 3.6.2 查找操作 3.6.3 删除操作 3.6…

标签打印机打印标签时出现,数据处理过程中错误 无法设置项目 图片1的内容无法打印

环境: Win10专业版 NiceLabel Designer 10.1 问题描述: 标签打印机打印标签时出现,数据处理过程中错误 无法设置项目 图片1的内容无法打印 解决方案: 1.删除标签部分文字打印测试 还是一样(未解决) …

已解决java.lang.IllegalStateException异常的正确解决方法,亲测有效!!!

已解决java.lang.IllegalStateException异常的正确解决方法,亲测有效!!!文章目录 报错问题解决思路解决方法交流 报错问题 java.lang.IllegalStateException 解决思路 java.lang.IllegalStateException通常表示程序的当前状态与…

jenkins 参数构建

应用保存 [rootjenkins-node1 .ssh]# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved i…

【嵌入式面试】2022年嵌入式经典面试题汇总(C语言)

📜作者:不想脱发的基兄 📺专栏:《嵌入式面试》 📣格言:不管前方的路有多苦,只要走的方向正确,不管多么崎岖不平,都比站在原地更接近幸福。 前言: 2022年秋招我…

C++之初始化列表详细剖析

一、初始化列表定义 初始化列表:以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟一个放在括号中的初始值或表达式。 class Date { public:Date(int year, int month, int day): _year(year), _month(mont…

OpenCV快速入门:图像分析——图像分割和图像修复

文章目录 前言一、图像分割1.1 漫水填充法1.1.1 漫水填充法原理1.1.2 漫水填充法实现步骤1.1.3 代码实现 1.2 分水岭法1.2.1 分水岭法原理1.2.2 分水岭法实现步骤1.2.3 代码实现 1.3 GrabCut法1.3.1 GrabCut法原理1.3.2 GrabCut法实现步骤1.3.3 代码实现 1.4 Mean-Shift法1.4.1…

论文阅读 (106):Decoupling maxlogit for out-of-distribution detection (2023 CVPR)

文章目录 1 概述1.1 要点1.2 代码1.3 引用 2 预备知识3 方法3.1 MaxLogit3.2 改进MaxCosine和MaxNorm3.3 DML 1 概述 1.1 要点 题目:解耦最大logit分布外检测 (Decoupling maxlogit for out-of-distribution detection) 方法: 提出了一种心机基于log…

多级缓存快速上手

哈喽~大家好,这篇来看看多级缓存。 🥇个人主页:个人主页​​​​​ 🥈 系列专栏:【微服务】 🥉与这篇相关的文章: JAVA进程和线程JAVA进程和线程-CSDN博客Http…

不做机器视觉工程师,转行,转岗的建议与想法

正所谓外行看热闹,内行看门道。提前咨询前辈们,多问问,多看看。要做就做,一定要提前做好防范。 无论你是要转行或者是转岗,看你有没有本钱和试错成本 有些人,家庭好,可以一直去试错和从头再来。…

无线WiFi安全渗透与攻防(国外篇):使用 Aircrack-ng 破解 WEP 密码

使用 Aircrack-ng 破解 WEP 密码 使用 Aircrack-ng 破解 WEP 密码一. 用 Aircrack-ng 破解 WEP 密码 - 背景知识网卡与网卡芯片WEP 加密协议WEP 所使用的身份认证协议二. 使用 Aircrack-ng 破解 WEP 密码 - 破解原理破解机理三. 使用 Aircrack-ng 破解 WEP 密码 - aircrack-ng …