当前位置: 首页 > news >正文

Derby - Derby 服务器(Derby 概述、Derby 服务器下载与启动、Derby 连接数据库与创建数据表、Derby 数据库操作)

一、Derby 概述

  1. Derby 是一种轻量级、嵌入式数据库,适用于开发、测试或小型应用

  2. Derby 是使用 Java 编写的,可以无缝集成到 Java 应用中

  3. Derby 支持嵌入式模式与网络服务器模式,在嵌入式模式下,Derby 与应用程序运行在同一 JVM 中,数据库文件存储在本地目录

  4. 在网络服务器模式下,Derby 作为独立数据库服务运行


二、Derby 服务器

  1. 下载 Derby 服务器:https://db.apache.org/derby/
  1. 启动 Derby 服务器:在 Windows 系统上,运行 Derby 根目录下的 bin 目录下的 startNetworkServer.bat
  • 开发前准备,在 pom.xml 文件中添加相关依赖
<dependency><groupId>org.apache.derby</groupId><artifactId>derbyclient</artifactId><version>10.14.2.0</version>
</dependency>

三、Derby 连接数据库与创建数据表

1、连接数据库
String dbURL = "jdbc:derby://localhost:1527/mydb;create=true";try (Connection connection = DriverManager.getConnection(dbURL)) {System.out.println("连接 Derby 成功");
} catch (SQLException e) {e.printStackTrace();
}
  1. create=true 表示如果数据库不存在,则创建它,如果数据库已存在,则直接连接到它

  2. 第一次执行时,Derby 会创建一个新的数据库,输出结果如下

连接 Derby 成功
2、创建数据表
String createTableSQL = "CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(50))";
try (Statement statement = connection.createStatement()) {statement.execute(createTableSQL);System.out.println("创建表 users 成功");
} catch (SQLException e) {if (e.getSQLState().equals("X0Y32")) { // 表已存在时的 SQLStateSystem.out.println("表 users 已存在");} else {System.out.println("创建表失败,错误信息:" + e.getMessage());}
}
  1. 第一次执行时,会创建表 users,输出结果如下
创建表 users 成功
  1. 第二次执行时,表 users 已存在,抛出异常,输出结果如下
表 users 已存在

四、Derby 数据库操作

1、插入数据
String insertSQL = "INSERT INTO users (id, name) VALUES (?, ?)";try (PreparedStatement preparedStatement = connection.prepareStatement(insertSQL)) {preparedStatement.setInt(1, 1);preparedStatement.setString(2, "Alice");preparedStatement.executeUpdate();System.out.println("插入数据成功");
} catch (SQLException e) {System.out.println("插入数据失败,错误信息:" + e.getMessage());
}
  1. 第一次执行时,会插入数据成功,输出结果如下
插入数据成功
  1. 第二次执行时,主键冲突,会抛出异常,输出结果如下
插入数据失败,错误信息:语句已中止,因为它导致“USERS”上所定义的“SQL0000000000-80220011-019a-2efb-15b9-00000f200000”标识的唯一或主键约束条件或唯一索引中出现重复键值。
2、查询数据
String selectSQL = "SELECT id, name FROM users";try (Statement statement = connection.createStatement();ResultSet resultSet = statement.executeQuery(selectSQL)) {while (resultSet.next()) {System.out.println("ID: " + resultSet.getInt("id") + ", Name: " + resultSet.getString("name"));}
}
  • 输出结果如下
ID: 1, Name: Alice
3、更新数据
String updateSQL = "UPDATE users SET name = ? WHERE id = ?";try (PreparedStatement preparedStatement = connection.prepareStatement(updateSQL)) {preparedStatement.setString(1, "Bob");preparedStatement.setInt(2, 1);int rowsAffected = preparedStatement.executeUpdate();if (rowsAffected > 0) {System.out.println("更新数据成功");} else {System.out.println("更新数据失败,未找到匹配的记录");}
} catch (SQLException e) {System.out.println("更新数据失败,错误信息:" + e.getMessage());
}
  • 输出结果如下
更新数据成功
4、删除数据
String deleteSQL = "DELETE FROM users WHERE id = ?";try (PreparedStatement preparedStatement = connection.prepareStatement(deleteSQL)) {preparedStatement.setInt(1, 1);int rowsAffected = preparedStatement.executeUpdate();if (rowsAffected > 0) {System.out.println("删除数据成功");} else {System.out.println("删除数据失败,未找到匹配的记录");}
} catch (SQLException e) {System.out.println("删除数据失败,错误信息:" + e.getMessage());
}
  • 输出结果如下
删除数据成功
http://www.dtcms.com/a/554710.html

相关文章:

  • 慈溪高端网站设计甘肃嘉峪关建设局网站
  • 重庆渝云建设有限公司官方网站深圳网站运营
  • 【开题答辩实录分享】以《自动售货机刷脸支付系统的设计与实现》为例进行答辩实录分享
  • 瑜伽 网站模板夏津网站建设电话
  • 长沙手机网站设计公司网站建设与客户价格谈判技巧
  • 网页抓包实战,工具选型、分层排查与真机取证流程
  • 荆门市城乡建设管理局网站广州建设工程中心网站
  • 可以自己建设购物网站家具营销策划方案
  • 基于阿里云效实现cicd记录
  • 网站结构的规划与设计拓者设计吧首页
  • 递归专题4 - 网格DFS与回溯
  • 免费排版网站专业网站是什么意思
  • 精准且快速校准的语音神经假体研究与学习
  • 授权购买网站广州越秀网站制作
  • 马克·扎克伯格大学做的网站lnmp wordpress 500
  • Maven 入门指南
  • 网站建设电话销售技巧和话术合肥网络seo
  • 湖北人工智能建站系统软件360建筑兼职网官网
  • 怎么搭建自己的电影网站建设部网站社保联网
  • 学习笔记二:发展历程
  • 回森AI智能服务唯一服务已更新
  • 设计的素材网站有哪些软件平台开发流程
  • 山东网站建设优化技术网站建设的实践体会
  • 免费设计软件网站攻击Wordpress网站
  • Nginx简介与应用场景:从原理到实战案例
  • 网站的icp备案信息企业网站建设流程第一步是什么
  • 用easyui皮肤做漂亮的网站购物建设网站
  • 网站提供入口做网站存在的问题
  • 网站建设怎么骗人洛阳网站建设多少钱
  • 石家庄网站建设公司锦州网站建设品牌