0%

一般情况下,我们可以通过 SQL 的方式和 Java 的方式获取树形数据,比如常见的菜单数据、用户组织数据等。下面我们使用 Java 的 Stream 类处理获取树形数据。

下图是对应的数据模型,我们主要需要关注的就是分类标识 cat_id、父分类标识 parent_cid 和排序字段 sort。

数据模型

阅读全文 »

如下是获取与 RabbitMQ 连接的一段代码,示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/**
* 获取连接对象
* @return 连接对象
*/
public static Connection getConnection() throws IOException, TimeoutException {
// 定义连接工厂
ConnectionFactory factory = new ConnectionFactory();
// 设置服务地址
factory.setHost("192.168.31.41");
// 设置端口
factory.setPort(5672);
// 设置账号信息,用户名,密码和虚拟主机
factory.setVirtualHost("host1");
factory.setUsername("shoto");
factory.setPassword("abc123");
// 握手超时设置需要有,因为不同机器之前的网络情况不同,因此可能导致网络超时而无法连接
// factory.setHandshakeTimeout(300 * 1000);
// 通过工厂获取连接
Connection connection = factory.newConnection();
return connection;
}
阅读全文 »

下面介绍几种常用的 Java 访问 oarcle 存储过程的示例,需要说明的是创建 Java 项目记得装载 odbc 驱动包,并创建按如下 student 表:

1
2
3
4
5
6
create table STUDENT
(
sno number,
sname VARCHAR2(10),
sage number
);
阅读全文 »

1. 概念

程序包是对相关过程、函数、变量、游标和异常等对象的封装。程序包具有模块化、更轻松的应用程序设计、信息隐藏、新增功能和性能更佳等优点。程序包由规范(包头)和主体(包体)两部分组成,及其作用如下图所示:

需要说明的是,包头中声明的变量为公共变量,程序包可以进行访问。而包体中的为私有变量,只能在包体中进行访问。

阅读全文 »

1. 简介

触发器是当特定事件出现时自动执行的存储过程,特定事件可以是执行更新的DML语句和DDL语句。触发器不能被显式调用,其有如下功能:

  • 自动生成数据

  • 自定义复杂的安全权限

  • 提供审计和日志记录

  • 启用复杂的业务逻辑

阅读全文 »

1. 简介

在使用 select 语句查询数据时,查询返回的数据存放在结果集中,用户如何从查询得到的结果集中逐行逐列地获取存储的数据,从而在应用程序中使用这些值,就需要一种定位并控制结果集的机制,即游标。

游标是映射在结果集中一行数据上的位置实体,用来处理从数据库中检索的多行记录。利用游标,程序可以逐个地处理和便利一次检索返回的整个记录表,即可以对当前行数据进行操作。

阅读全文 »

1. 子程序

子程序即为命名的 PL/SQL 块,编译并存储在数据库中。子程序包含如下各个部分:

  • 声明部分
  • 可执行部分
  • 异常处理部分(可选)

子程序的分类:

  • 过程 - 执行某些操作
  • 函数 - 执行操作并返回值

子程序的优点:

  • 模块化:将程序分解为逻辑模块
  • 可重用性:可以被任意数目的程序调用
  • 可维护性:简化维护操作
  • 安全性:通过设置权限,使数据更安全
阅读全文 »

1. PL/SQL 简介

PL/SQL 是过程语言 (Procedural Language) 与结构化查询语言 (SQL) 结合而成的编程语言,PL/SQL 是对 SQL 的扩展。
PL/SQL 支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制结构,可用于创建存储过程、触发器和程序包,给SQL语句的执行添加程序逻辑。并且与 Oracle 服务器和 Oracle 工具紧密集成,具备可移植性、灵活性和安全性。

阅读全文 »