第十七章:数据库操作

数据库基础

 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.hqwc.cn/news/209880.html

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

相关文章

[UE4][C++]基于UUserWidget的一种序列图播放方法

最近在做一个大项目,鸽了几个月了....... 一、传统方法Flipbook 这种方法适合序列图较少的情况下、可以一个一个添加进来然后调整顺序。蓝图也比较友好可以直接设置很多属性和功能。这里简单了解一下即可,想要深入了解的同学可以自行搜索。 1.1创建Fli…

数据库数据恢复—SQLserver数据库中勒索病毒被加密的数据恢复案例

SQLserver数据库数据恢复环境&故障: 一台服务器上的SQLserver数据库被勒索病毒加密,无法正常使用。该服务器上部署有多个SQLserver数据库,其中有2个数据库及备份文件被加密,文件名被篡改,数据库无法使用。 SQL se…

如何将音频添加到视频并替换视频中的音轨

随着视频流媒体网站的流行和便携式设备的发展,你可能越来越倾向于自己制作视频并在互联网上分享。有时,你可能还需要编辑视频并为其添加背景音乐,因为音乐总是对视频的感知起着神奇的作用。 那如何给视频添加音频呢?或者如何用新…

计算机视觉的应用19-基于pytorch框架搭建卷积神经网络CNN的卫星地图分类问题实战应用

大家好,我是微学AI,今天给大家介绍一下计算机视觉的应用19-基于pytorch框架搭建卷积神经网络CNN的卫星地图分类问题实战应用。随着遥感技术和卫星图像获取能力的快速发展,卫星图像分类任务成为了计算机视觉研究中一个重要的挑战。为了促进这一…

Redis并发问题解决方案

目录 前言 1.分布式锁 1.基于单个节点 2.基于多个节点 3.watch(乐观锁) 2.原子操作 1.单命令操作 2.Lua 脚本(多命令操作) 3.事务 1.执行步骤 2.错误处理 3.崩溃处理 总结 前言 在多个客户端并发访问Redis的时候,虽然Redis是单线程执行指令&#xff…

centos7 安装docker

1.卸载旧版本,不管装没装过,执行一下,防止版本冲突 yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine 2. yum安装gcc相关 以及 安…

中部A股第一城,长沙如何赢商?

文|智能相对论 作者|范柔丝 长沙的马路,都很有故事。 一条解放西路,是全国人民都争相打卡的娱乐地标;一条太平街,既承载了历史的厚重又演绎着现代的鲜活...... 但如果来到河西的桐梓坡路,风景会变得截然不同。 沿…

SAP QA11/QA32质检放行时,如何处理产生记账更改通知单时

前提:启用SAP wms仓库管理 场景: 当做移动类型321质检放行的时候,有时候会产生记账更改通知单,这个时候怎么处理? 解决办法: 使用事务码LU04,查看未清的记账更改通知单,进入清单列表之后&…

完整的工程项目管理流程是怎么样的?

阅读本文你将了解工程项目管理的完整流程:一、项目启动阶段;二、项目规划阶段;三、项目执行阶段;四、项目收尾阶段;五、项目总结与反馈。 这是一个工程项目管理的完整流程: 项目启动阶段:也就…

Qt全球峰会2023中国站 参会概要

Qt全球峰会2023中国站 参会概要 前言峰会议程签到 & Demo 演示开场致辞Qt Group 产品总监演讲(产品开发的趋势-开放的软件、工具和框架)产品战略QtQuick or QtWidgets(c or qml)Qt如何定义AI个人看法 Qt 在券商数字化转型和信…

在 Redis 中使用 JSON 文档:命令行界面(CLI)和 Navicat 集成

Redis,因其极高的性能而闻名,是一款多功能的 NoSQL 数据库,擅长处理键值对。虽然 Redis主要用于处理简单数据结构,但是同样支持更多复杂的数据类型,如列表、集合甚至是 JSON 文件。在本文,我们将深入到 Red…

如何使用YOLOv8代码框架中的RT-DETR

1. RT-DETR RT-DETR是由由此,百度推出了——RT-DETR (Real-Time DEtection TRansformer) ,一种基于 DETR 架构的实时端到端检测器,其在速度和精度上取得了 SOTA 性能。 RT-DETR开源的代码在百度自己的飞桨paddlepaddle上,因此非…