JDBC连接数据库增删改查实例
查询所有
- dao层代码:
package example;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import fengzhuang.Brand;
public class BrandTest {
/**
* 1.sql语句:select * from tb_brand
* 2.参数:不需要
* 3.结果:List<Brand>
*
*/
@Test
public void testSelectAll() throws Exception {
//获取连接
String url = "jdbc:mysql://localhost:3306/db1";
String name = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, name, password);
//定义sql语句
String sql = "select * from tb_brand";
//获取对象
PreparedStatement pstmt = conn.prepareStatement(sql);
//执行sql
ResultSet rs = pstmt.executeQuery();
//处理结果
Brand brand = null;
List<Brand> brands = new ArrayList<>();
while(rs.next()) {
//获取数据
int id = rs.getInt("id");
String brandName = rs.getString("brand_name");
String companyName = rs.getString("company_name");
int ordered = rs.getInt("odered");
String description = rs.getString("description");
int status = rs.getInt("status");
//封装对象
brand = new Brand();
brand.setId(id);
brand.setBrandName(brandName);
brand.setCompanyName(companyName);
brand.setOrdered(ordered);
brand.setDescription(description);
brand.setStatus(status);
//放到集合
brands.add(brand);
}
System.out.println(brands);
//释放资源
rs.close();
pstmt.close();
conn.close();
}
}
- 数据类代码:
package fengzhuang;
public class Brand {
private Integer id;
private String brandName;
private String companyName;
private Integer ordered;
private String description;
private Integer status;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getBrandName() {
return brandName;
}
public void setBrandName(String brandName) {
this.brandName = brandName;
}
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public Integer getOrdered() {
return ordered;
}
public void setOrdered(Integer ordered) {
this.ordered = ordered;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
@Override
public String toString() {
return "Brand [id=" + id + ", brandName=" + brandName + ", companyName=" + companyName + ", ordered=" + ordered
+ ", description=" + description + ", status=" + status + "]";
}
}
数据库表
数据库名为db1,表名为tb_brand,数据库结构如下图:

运行结果
目前主要是学习JDBC,所有代码都是junit测试来运行的,暂时还没有前端界面。

添加数据
- dao层代码
/**
* 1.SQL语句:insert into tb_brand(brand_name,company_name,odered,description,status) values(?,?,?,?,?);
* 2.参数:需要,除了id外所有信息
* 3.结果:boolean
*/
@Test
public void testAdd() throws Exception {
//接受页面提交的参数
String brandName = "香飘飘";
String companyName = "香飘飘公司";
int ordered = 1;
String description = "香的要飘飘";
int status = 1;
//1. 获取连接
String url = "jdbc:mysql://localhost:3306/db1";
String name = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, name, password);
//2. 定义SQL语句
String sql = "insert into tb_brand(brand_name,company_name,odered,description,status) values(?,?,?,?,?)";
//3. 获取对象
PreparedStatement pstmt = conn.prepareStatement(sql);
//4. 设置参数
pstmt.setString(1, brandName);
pstmt.setString(2, companyName);
pstmt.setInt(3, ordered);
pstmt.setString(4, description);
pstmt.setInt(5, status);
//5. 执行SQL
int count = pstmt.executeUpdate();
//6. 处理结果
System.out.println(count > 0);
//7. 释放资源
pstmt.close();
conn.close();
}
数据类代码
与查找相同数据库表结构
与查找相同运行结果


修改
- dao层代码:
/**
* 1.SQL语句:update tb_brand set brand_name = ?,company_name = ?,odered = ?,description = ?,status = ? where id = ?
* 2.参数:需要,所有数据
* 3.结果:boolean
*/
@Test
public void testUpdate() throws Exception {
//接受页面提交的参数
String brandName = "香飘飘";
String companyName = "香飘飘公司";
int ordered = 1000;
String description = "直接起飞!";
int status = 1;
int id = 4;
//1. 获取连接
String url = "jdbc:mysql://localhost:3306/db1";
String name = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, name, password);
//2. 定义SQL语句
String sql = "update tb_brand set brand_name = ?,company_name = ?,odered = ?,description = ?,status = ? where id = ?";
//3. 获取对象
PreparedStatement pstmt = conn.prepareStatement(sql);
//4. 设置参数
pstmt.setString(1, brandName);
pstmt.setString(2, companyName);
pstmt.setInt(3, ordered);
pstmt.setString(4, description);
pstmt.setInt(5, status);
pstmt.setInt(6, id);
//5. 执行SQL
int count = pstmt.executeUpdate();
//6. 处理结果
System.out.println(count > 0);
//7. 释放资源
pstmt.close();
conn.close();
}
数据类代码
与查询相同数据库结构
与查询相同运行结果


删除
- dao层代码
/**
* 1.SQL语句:delete from tb_brand where id = ?
* 2.参数:需要,id
* 3.结果:boolean
*/
@Test
public void testDeleteById() throws Exception {
//接受页面提交的参数
int id = 4;
//1. 获取连接
String url = "jdbc:mysql://localhost:3306/db1";
String name = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, name, password);
//2. 定义SQL语句
String sql = "delete from tb_brand where id = ?";
//3. 获取对象
PreparedStatement pstmt = conn.prepareStatement(sql);
//4. 设置参数
pstmt.setInt(1, id);
//5. 执行SQL
int count = pstmt.executeUpdate();
//6. 处理结果
System.out.println(count > 0);
//7. 释放资源
pstmt.close();
conn.close();
}
数据类代码:
与查找相同数据库表结构
与查找相同运行结果


JDBC连接数据库增删改查实例的更多相关文章
- 纯Java JDBC连接数据库,且用JDBC实现增删改查的功能
Java JDBC连接数据库 package cn.cqvie.yjq; import java.sql.*; /** * 注册数据库的驱动程序,并得到数据库的连接对象 * @author yu * ...
- JDBC基础学习(一)—JDBC的增删改查
一.数据的持久化 持久化(persistence): 把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,数据持久化意味着将内存中的数据保存到硬盘上加以固化,而持久化的实现过程大多通过各 ...
- java:JSP(JSPWeb.xml的配置,动态和静态导入JSP文件,重定项和请求转发,使用JSP实现数据库的增删改查实例)
1.JSP的配置: <%@ page language="java" import="java.util.*" pageEncoding="UT ...
- Oracle使用JDBC进行增删改查 表是否存在
Oracle使用JDBC进行增删改查 数据库和表 table USERS ( USERNAME VARCHAR2(20) not null, PASSWORD VARCHAR2(20) ) a ...
- python链接oracle数据库以及数据库的增删改查实例
初次使用python链接oracle,所以想记录下我遇到的问题,便于向我这样初次尝试的朋友能够快速的配置好环境进入开发环节. 1.首先,python链接oracle数据库需要配置好环境. 我的相关环境 ...
- yii2.0增删改查实例讲解
yii2.0增删改查实例讲解一.创建数据库文件. 创建表 CREATE TABLE `resource` ( `id` int(10) NOT NULL AUTO_INCREMENT, `textur ...
- Java Web(十) JDBC的增删改查,C3P0等连接池,dbutils框架的使用
前面做了一个非常垃圾的小demo,真的无法直面它,菜的抠脚啊,真的菜,好好努力把.菜鸡. --WH 一.JDBC是什么? Java Data Base Connectivity,java数据库连接,在 ...
- 【php增删改查实例】第四节 -自己 DIY 一个数据库管理工具
本节介绍如何自己DIY一个数据库管理工具,可以在页面输入sql 进行简单的增删改查操作. 首先,找到xampp的安装目录,打开htdocs: 新建一个php文件,名称为 mysqladmin.php ...
- MySQL的安装+可视化工具+JDBC的增删改查
1.Mysql和可视化工具的安装 安装包网上有很多资源.这里推荐一个我一直在用的学习网站,上面有提供安装包和详细的说明. http://how2j.cn/k/mysql/mysql-install/3 ...
- 【温故知新】Java web 开发(四)JSTL 与 JDBC 的增删改查
本篇开始使用 jstl 这个 jsp 的标签库,在同一个 Servlet 中实现处理 CRUD 请求,以及使用 jdbc 数据库基本操作.然后你会发现 Servlet 和 jdbc 还是有很多不方便之 ...
随机推荐
- OpenCV开发笔记(八十三):图像remap实现哈哈镜效果
前言 对图像进行非规则的扭曲,实现哈哈镜就是一种非常规的扭曲方式,本文先描述remap的原理,然后通过remap实现哈哈镜. Demo 基于原始算法,可以进行二次开发 ...
- 报错:ReferenceError: __dirname is not defined in ES module scope
报错: __dirname is not defined in ES module scope 前言 新版 NodeJS 支持通过 ESM 方式导入模块,代码如: // CommonJS 规范(旧) ...
- AI编程:最疯狂的MCP服务器你一定要试试
我还记得我第一次听说MCP(模型上下文协议)的时候,我心想: "哈?又一个花里胡哨的缩写,这个世界已经快被这些缩写淹没了!" 但当我意识到MCP就像AI界的通用连接器--就像USB ...
- PaddleOCR学习笔记2-初步识别服务
今天初步实现了网页,上传图片,识别显示结果到页面的服务.后续再完善. 采用flask + paddleocr+ bootstrap快速搭建OCR识别服务. 代码结构如下: 模板页面代码文件如下: up ...
- RealSense .bag文件彩色图,深度图提取
RealSense .bag文件彩色图,深度图提取 代码 import roslib import rosbag import rospy import cv2 import os from sens ...
- mvc api 下载文件问题
背景:前后端分离项目,文件下载 项目中 因为实际文件名和路径里的文件名 不一致(一般路径文件名需要使用唯一名字) 刚开始使用返回链接的方式,会出现图片直接预览,文件名会以路径文件名下载,用户体验不好. ...
- 如何使用 OpenAI Agents SDK 构建 MCP
1.概述 OpenAI Agents SDK 现已支持 MCP(模型上下文协议),这是 AI 互操作性的重大变革.这使开发人员能够高效地将 AI 模型连接到外部工具和数据源.本篇博客,笔者将指导使用 ...
- idhttp的socket error # 10054 错误的处理办法
在通过http实现restful数据通讯时,死活出现: socket error # 10054 导致这种情况的原因很复杂. 同样的程序,在不同的环境中出现不同结果. 通过观察,发现登录后获取toke ...
- FastAPI依赖注入系统及调试技巧
title: FastAPI依赖注入系统及调试技巧 date: 2025/04/11 15:00:50 updated: 2025/04/11 15:00:50 author: cmdragon ex ...
- Python+Appium+unittest案例
代码如下: # coding=utf-8 import time import unittest from appium import webdriver class MyTestCase(unitt ...