Como alguém faz para definir a propriedade class path para o Apache server derby. Estou tentando depurar esse erro ao criar um procedimento e vinculá-lo a uma função Java como o nome externo:
The class 'C:\Users\Koi\IdeaProjects\Java Finishing Touches\JDBC\src\main\java\MyFirstDatabaseConnection.testProc' does not exist or is inaccessible. This can happen if the class is not public or the derby.database.classpath property is missing or incorrectly defined.
Quanto ao procedimento apache derby, este é o nome externo que defini:
CREATE PROCEDURE
read_e_names
() PARAMETER STYLE JAVA READS SQL DATA LANGUAGE JAVA EXTERNAL NAME 'C:\Users\Koi\IdeaProjects\Java Finishing Touches\JDBC\src\main\java\MyFirstDatabaseConnection.testProc';
Resumidamente:
CLASSPATH
para adicionar o caminho para o arquivo Jar do seu procedimento.EXTERNAL NAME
como o nome do pacote Java mais o nome da classe mais o nome do método: por exemplo:com.example.ReadENamesProcedure.readENames
Diretório do Projeto
criar
ST_Derby_Procedure
emC:\
Crie um diretório de dados do banco de dados
derby-meu-procedimento-de-demonstração
pom.xml
MeuProcedimento.java
LeiaENamesProcedure.java
Construir
saída: Nosso procedure.jar
Servidor de rede Apace Derby
Para Java 17+
db-derby-10.16.1.1-bin
emC:\TOOLS
(Caminho completo:C:\TOOLS\db-derby-10.16.1.1-bin
)Adicionar variável de ambiente do usuário
DERBY_HOME
, DEFINIRC:\TOOLS\db-derby-10.16.1.1-bin
PATH
, ADICIONARC:\TOOLS\db-derby-10.16.1.1-bin\bin
Executar Derby Network Server
Defina o caminho para o seu jar de procedimento para
CLASSPATH
Alterar diretório de trabalho para diretório de dados do banco de dados (
C:\ST_Derby_Procedure\apache-derby-demodb
)Abra o CMD.exe
Criar banco de dados
Se você ainda não criou um banco de dados, você precisa criar um:
em ij:
Se você já criou um banco de dados:
C:\ST_Derby_Procedimento\init.sql
Criar tabela e importar dados
Em
ij
, execute o comando:ij
, execute o comando SQL do arquivo: init.sqlCriar PROCEDIMENTO
Em
ij
, execute o comando:Observação: no Windows, as instruções devem ser combinadas em uma linha.
Linux: Isso é equivalente ao acima.
Observação:
O
EXTERNAL NAME
aqui está no formato Java, que é:package name
.class name
.method name
com.example
.ReadENamesProcedure
.readENames
PROCEDIMENTO DE TESTE
Em ij, execute o comando:
saída:
Criar FUNÇÃO
Em ij, execute o comando:
Observação: no Windows, as instruções devem ser combinadas em uma linha.
Linux:
FUNÇÃO DE TESTE
Em ij, execute o comando:
saída:
demo-java-chamada-procedimento
Use Java para chamar o PROCEDIMENTO e a FUNÇÃO acima.
pom.xml
ChamadaReadENames.java
Chamar a função AddNumbers.java
Construir e baixar dependências
Executar - Chamar PROCEDIMENTO
obter saída:
Executar - Chamar FUNÇÃO
obter saída