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 还是有很多不方便之 ...
随机推荐
- ubuntu升级python版本
ubuntu升级python版本 # 更新包列表 sudo apt update # 安装 Python 所需的软件包 sudo apt install software-properties-com ...
- JavaScript 图片弹窗
html <!-- 触发弹窗 - 图片改为你的图片地址 --> <img loading="lazy" id="myImg" src=&quo ...
- 详细讲述了CPU的调度原理,本篇讲一下内存的分配过程。
运行在ESXi主机上的虚拟机分配内存之和可以超过物理机的实际内存大小,这个技术叫做超额分配(overcommitment),即使单个虚拟机的内存分配值都可以超分.但是超分的结果就是可能会引起内存资源竞 ...
- Docker Swarm(一)
Docker Swarm(一)即使有了Docker Compose,项目的部署仍然存在问题,因为Docker Compose只能把项目所有的容器部署在同一台机器上,这在生产环境下是不现实的.Docke ...
- Java 8的新特性还不了解?快进来!
能坚持别人不能坚持的,才能拥有你想拥有的.关注 编程大道,让我们一起成长
- 入门Dify平台:知识库分析
今天,我们来简单了解一下 Dify 的知识库功能.其实,它并没有想象中那么复杂或难以操作.无论是 Dify 还是其他类似平台,都已经将知识库的功能封装得非常完善.你可以直接把它当作一个云端的记事本,内 ...
- Jenkins合并代码Git报错处理过程
#jenkins合并代码时候报错内容#10:36:08 ! [rejected] HEAD -> master (non-fast-forward)#10:36:08 error: failed ...
- Redis 分布式锁的正确实现原理演化历程与 Redission的源码
当线程A,加锁并设置过期时间-->执行业务-->判断锁id完成后,但这时CPU线程调度其它工作了在这里卡住了, 而且也到了锁的过期时间了被动被删除,当线程B,加锁并设置过期时间--> ...
- windows10环境下,remote wsl链接wsl ubuntu使用ubuntu 开发环境,报错:VS Code server for WSL closed unexpectedly check WSL terminal for more details
报错提示这样 在windows的vscode里面的关键报错信息是:vscode wsl Unable to detect if server is already installed: Error: ...
- 【代码审计】Emlog存在SQL注入+XSS漏洞
1.源码简介 EMLOG 是一款轻量级开源博客和CMS建站系统,速度快.省资源.易上手,适合各种规模的站点搭建. 2.漏洞描述 EMLOG $keyword参数存在SQL注入漏洞. EMLOG art ...