B028-JDBC基础
目录
- 什么是JDBC
- JDBC引入
- 持久化
- JDBC规范
- 使用JDBC完成CRUD
- JDBC创建表
- JDBC CRUD和优化
- DAO层的实现
什么是JDBC
JDBC引入

Java代码操作数据库的唯一技术:-- JDBC ( java database connection )
持久化
持久化(persistence):把数据保存到可掉电式存储设备(断电之后,数据还在,比如硬盘,U盘)中以供之后使用。
大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,
而持久化的实现过程大多通过各种关系数据库来完成。 mysql oracle
JDBC规范
JDBC(Java DataBase Connectivity(Java数据库的连接)):
是一种用于执行SQL语句(DML,DDL,DQL)的Java API,可以为多种关系数据库(oracle,mysql,SQL server)提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序
JDBC规范的实现由数据库厂商完成,就是相应的jar包

使用JDBC完成CRUD
JDBC创建表
导包(可去数据库官网下载或者搜索引擎搜索下载),build path
/***navicat* 1 输入账号密码产生连接* 2.输入sql语句* 3.执行sql语句* *java代码连接数据库JDBC* 1.导入相应的jar包* 2.写代码* 贾 加载驱动 Driver* 琏 连接数据库* 欲 预编译sql* 执 执行sql语句* 释 释放连接*/
public class JBDCTest {// ctrl+1:提示@Testpublic void testName() throws Exception {//加载驱动Class.forName("com.mysql.jdbc.Driver");//连接数据库Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test1", "root", "root");//预编译sqlStatement State= conn.createStatement();//执行sql语句String sql1="CREATE TABLE `student` "+ "(`id` int(11) NOT NULL AUTO_INCREMENT,"+ "`name` varchar(255) DEFAULT NULL,"+ "`password` varchar(255) DEFAULT NULL ,"+ "PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=254167"+ " DEFAULT CHARSET=utf8;";String sql2="insert into Student(id,name,password) values(1,'小弟弟Ÿ','123456')";String sql3="delete from Student where id=1";String sql4="update Student set name='王大川', password='1234' where id=2";State.execute(sql4); //释放连接 先开后关State.close();conn.close();}
}
JDBC CRUD和优化
public class JBDCTest {Connection conn=null;Statement State =null;ResultSet rs=null;@Before //指定的test前执行public void before() throws Exception {Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test1", "root", "root");}@After //指定的test后执行public void after() throws Exception {if(rs!=null){rs.close();}if(State!=null){State.close();}if(conn!=null){conn.close();}}@Testpublic void insert() throws Exception {Statement State = conn.createStatement();String sql="insert into Student(id,name,password) values(3,'小弟弟Ÿ','123456')";State.execute(sql);}@Testpublic void update() throws Exception {Statement State = conn.createStatement();//执行salState.execute("update Student set name='王大川', password='12345' where id=3");}@Testpublic void delete() throws Exception {//预编译sqlStatement State = conn.createStatement();//执行salState.execute("delete from Student where id=3");}// 查询 的第一种方式@Testpublic void query() throws Exception {Statement State = conn.createStatement();ResultSet rs = State.executeQuery("select * from Student where id=2");while (rs.next()) {System.out.println(rs.getInt(1));System.out.println(rs.getString(2));System.out.println(rs.getString(3));}} // 查询 的第二种方式 --推荐使用@Testpublic void query2() throws Exception {Statement State = conn.createStatement();ResultSet rs = State.executeQuery("select * from Student where id=2");while (rs.next()) {System.out.println(rs.getInt("id"));System.out.println(rs.getString("name"));System.out.println(rs.getString("password"));}}
}
DAO层的实现
DAO层介绍
门店 门店的接待员—> 售货员 --> 仓库管理员 (仓库)
Java 界面层 服务层 数据层
Controller service dao
Dao 具体怎么写
1 它是操作数据库的 ,所有里面写的代码全是和数据库操作有关系的东西.
2 和数据库操作我们一般就是 CRUD
3 我们要怎么写
A 新建一个DAO包 这个包下面就是放的DAO 相关的文件
B 建一个接口 这个接口要与它操作的数据库表对应( CRUD)
C 对DAO的接口进行实现 (实现他的CRUD) 放到 dao包下面的impl包里
我定义接口其实就是定义规范 定义我CRUD的规范
而实现就是写真正的CRUD的代码,这个代码主要写我要连接什么数据库?怎么链接?
------ mysql
------ DB2
------ XXX
Domain 收集数据库返回的数据
其他见工程
相关文章:
B028-JDBC基础
目录 什么是JDBCJDBC引入持久化JDBC规范 使用JDBC完成CRUDJDBC创建表JDBC CRUD和优化 DAO层的实现 什么是JDBC JDBC引入 Java代码操作数据库的唯一技术:-- JDBC ( java database connection ) 持久化 持久化(persistence):把数据保存到可掉电式存储设…...
ngixn 准备
确认yum可用,确认防火墙,确认SELinux 一项安装 yum -y install gcc make automake pcre-devel zlib zlib-devel openssl openssl-devel参数: gcc:编译依赖gcc环境 pcre:PCRE(Perl Compatible Regular Expressions)是一…...
生活小记录
上个月项目总算上线了,节奏也慢慢调整正常。发现自己好久没有记录生活点滴了,正好写写。其实,最近这段日子发生的事情还是挺多的。 流感 媳妇11.24得流感,这件事情特别好笑,大晚上她和我妹妹想喝酒试试,结…...
Diary22-全网最全的CSS3.0讲解
CSS学习 1.认识CSS 1.1什么是CSS CSS:Cascading Style Sheet——层叠级联样式表 CSS:表现(美化网页) 字体;颜色;边距;高度;宽度;背景图片;网页定位&…...
LAMP和分离式LNMP部署
目录 一.什么是LAMP? 二.安装LAMP 先安装apache,httpd网页服务: 接着安装mysql: 安装php: 创建论坛: 三.安装分布式LNMP: 先安装nginx: 到另一台主机安装php: …...
基于Java房屋租赁管理系统
基于Java房屋租赁管理系统 功能需求 1、房源信息管理:系统需要能够记录和管理所有房源的详细信息,包括房屋地址、房屋面积、租金、付款方式、房屋类型等。管理员应该可以添加、编辑和删除房源信息。 2、租户信息管理:系统需要能够记录和管…...
windows安装protoc、protoc-gen-go、protoc-gen-go-grpc
文章目录 一、 protoc二、protoc-gen-go三、protoc-gen-go-grpc 一、 protoc 1,下载:https://github.com/google/protobuf/releases 下载对应的protoc,注意选择windows 2,下好之后解压就行,然后把bin目录加入到环境…...
macOS 获取文件夹大小
macOS 获取文件夹大小 获取文件夹大小的扩展如下: extension URL {var fileSize: Int? { // in bytesdo {let val try self.resourceValues(forKeys: [.totalFileAllocatedSizeKey, .fileAllocatedSizeKey])return val.totalFileAllocatedSize ?? val.fileAll…...
Ultimate VFX
Ultimate VFX 构建套件:...
一个通用游戏后台的设计模式实践总结
搞业务开发的时候,发现有一些代码的开发会让人感觉非常简便舒服,有一些代码的开发却有时候会让人感觉心智负担比较大。 逐步总结的过程中,发现让开发人员写起来感觉舒服的代码,大概率是因为当前模块与其他模块代码耦合度低,开发人员无需花费过多的精力去关注其他模块的实现…...
Kubernetes - 为什么 K8S 在容器里不能调用自己?
问题描述 最近遇到一个神奇的现象,在 K8S 的 POD 容器中,比如 pod name:mini-appnamespace:devport:5050 那么,是无法在 mini-app 容器里执行以下命令,如果执行,会一直卡在这条命…...
电机:有刷直流电机的原理
一、什么是有刷直流电机 直流有刷电机(Brushed DC Motor),定子是用永磁铁或者线圈做成,以形成固定磁场。在定子一端上有固定碳刷,或者铜刷,负责把外部电流引入转子线圈。而转子是由线圈构成,线…...
小黑子——springBoot基础
springBoot简单学习 一、SpringBoot简介1.1 springBoot快速入门1.1.1 开发步骤1.1.2 对比1.1.3 官网构建工程1.1.3 SpringBoot工程快速启动 1.2 springBoot概述1.2.1 起步依赖I. 探索父工程II. 探索依赖III. 小结 1.2.2 程序启动1.2.3 切换web服务器-jetty 二、配置文件2.1 配置…...
Flink流批一体计算(24):Flink SQL之mysql维表实时关联
目录 1.维表 2.数据准备 创建源数据 创建维度表 创建Sink表 3.配置任务 Flink SQL创建kafka源表 Flink SQL创建MySQL维表 Flink SQL创建MySQL结果表 编写计算任务 核验数据 1.维表 目前在实时计算的场景中,大多数都使用过MySQL、Hbase、redis作为维表引擎…...
鸿蒙(HarmonyOS)应用开发——从网络获取数据(题目答案)
判断题 1.在http模块中,多个请求可以使用同一个httpRequest对象,httpRequest对象可以复用。 错误(False) 2.使用http模块发起网络请求后,可以使用destroy方法中断网络请求。 正确(True) 3.Web组件onConfirm(callback: (event?: { url: …...
力扣:197. 上升的温度(Python3)
题目: 表: Weather ------------------------ | Column Name | Type | ------------------------ | id | int | | recordDate | date | | temperature | int | ------------------------ id 是该表具有唯一值的列。 该表…...
uniApp应用软件在运行时,不符合华为应用市场审核标准。解决方案合集!
(暂时用不到的也建议收藏一下,因为文章持续更新中) 最新更改时间:20023-12-10 第一次做App应用开发相信大家一定都遇到过华为应用市场审核的“驳回”! 有些问题一看就明白可以立马修改,而有一些问题修改意…...
c#编码技巧(十五):新语法糖record深入分析
c#编码技巧(十四):新语法糖record深入分析 从 C# 9 开始新增了一个关键字record,用于封装数据。 record实质是微软提供的一个语法糖,因很多开源项目都用到了这个关键字,说明这个语法糖比较实用。 那么这个record类型和普通class类…...
Java IO流(五)(字符集基础知识简介)
字符集 计算机的存储规则(英文字符) 常见字符集介绍 a.GB2312字符集:1980年发布,1981年5月1日实施的简体中文汉字编码国家标准。收录7445个图形字符,其中包括6763个简体汉字 b.BIG5字符集:台湾地区繁体中…...
周周爱学习之Redis重点总结
redis重点总结 在正常的业务流程中,用户发送请求,然后到缓存中查询数据。如果缓存中不存在数据的话,就会去数据库查询数据。数据库中有的话,就会更新缓存然后返回数据,数据库中也没有的话就会给用户返回一个空。 1.缓…...
魔兽争霸3现代化修复指南:三步让经典游戏在Windows 10/11完美运行
魔兽争霸3现代化修复指南:三步让经典游戏在Windows 10/11完美运行 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在现代电…...
智能家庭教育:OpenClaw+Phi-3-vision-128k-instruct批改孩子手写作业
智能家庭教育:OpenClawPhi-3-vision-128k-instruct批改孩子手写作业 1. 为什么需要AI作业批改助手 作为一个经常辅导孩子功课的家长,我深刻体会到批改作业的痛点。每天晚上检查数学题时,既要核对答案正确性,又要分析错误原因&am…...
STM32串口发送字符串的底层机制与优化实践
1. STM32串口发送字符串的底层机制解析在嵌入式开发中,USART(通用同步异步收发传输器)是最常用的外设之一。当我们需要通过串口发送字符串时,实际上是将数据写入发送数据寄存器(TDR),然后由硬件…...
OpenClaw + Seedance 2.0实战:从零搭建全自动AI视频生成流水线
OpenClaw Seedance 2.0实战:从零搭建全自动AI视频生成流水线 前言 这篇记录我用OpenClaw Agent串联Seedance 2.0满血版API,搭建全自动视频生产流水线的完整过程。包括架构设计、Skill编写、API调用细节和踩坑记录。 一、架构设计 用户输入ÿ…...
8 鸿蒙多任务并发场景性能瓶颈排查 | 鸿蒙开发筑基实战
8 鸿蒙多任务并发场景性能瓶颈排查 | 鸿蒙开发筑基实战 作者:杨建宾(华夏之光永存) 摘要 本文面向鸿蒙应用开发工程师,聚焦多任务并发场景下的卡顿、掉帧、响应延迟等核心痛点,提供一套通用工程级排查流程。从任务调度…...
GraphRAG大模型在药物发现中玩出新花样!揭秘潜在知识图谱的惊人能力!
本文深入探讨了Microsoft GraphRAG在药物发现领域的应用,通过构建科学文献的潜在知识图谱,测试了其检索和合成能力。实验揭示了LLM在处理复杂查询中的优势与局限,强调了语料质量和LLM选择的重要性。GraphRAG展现了高效从非结构化数据中提取洞…...
一天一个开源项目(第62篇):lark-cli - 飞书/Lark 官方 CLI 与 AI Agent Skills
引言 “Built for humans and AI Agents.” 这是「一天一个开源项目」系列的第 62 篇文章。今天介绍的项目是 lark-cli(GitHub)。 需要在终端或 AI 工作流里操作飞书/Lark?lark-cli 是 larksuite 团队维护的官方 CLI:11 个业务域…...
关于准备智慧校园建设专项资金申报材料的参考清单
✅作者简介:合肥自友科技 📌核心产品:智慧校园平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人员均有多…...
从SAP实施到微信上线:一文读懂不同类型软件公司的实施岗到底有啥区别
从SAP实施到微信上线:一文读懂不同类型软件公司的实施岗核心差异 刚入行的技术新人小张最近很困惑:同样是"软件实施工程师"岗位,为什么招聘JD里有的要求精通SAP模块配置,有的却强调微信生态部署经验?在面试了…...
在Jetson Orin NX上为PyTorch 2.0编译TorchVision 0.15:一份完整的避坑与问题解决记录
在Jetson Orin NX上为PyTorch 2.0编译TorchVision 0.15:一份完整的避坑与问题解决记录 Jetson Orin NX作为英伟达新一代边缘计算设备,凭借其强大的AI算力和紧凑的尺寸,成为众多开发者的首选。然而,当我们需要在ARM架构上为特定版本…...
