Académique Documents
Professionnel Documents
Culture Documents
O que faremos
Parte I: Instalar o Cach e Definir nossas Classes
Parte II: Construir uma Aplicao JDBC para
listar todos os Cursos cadastrados.
Cach e Java
Parte I
Cach
universidade.Aluno
universidade.Curso
1..1
Matricula: %Integer
Nome: %String
Email: %String
+Curso
%Library.Populate
Populate(n)
Nome: %String
Codigo: %Integer
1..1
+Endereco
empresa.Endereco
Rua
Numero
Agregao
Aluno
Endereo
Curso
Definindo um Relacionamento
Crie uma
propriedade
chamada Curso,
na classe Aluno,
do tipo
Relacionamento
Cach e Java
Parte II
JDBC
JDBC
ODBC
SQL
Cach Engine
Driver JDBC
Classe que implementa a interface JDBC
Fornecidas pelo vendedor do banco de dados
Permite o acesso ao banco de dados
Banco de Dados Cach
Pacote CacheDB.jar
(com.intersys.jdbc.CacheDriver)
try
{
//registra o driver Cach
Class.forName(com.intersys.jdbc.CacheDriver);
// URL JDBC para o Cach
String url = jdbc:Cache://127.0.0.1:1972/User;
String usuario = _system;
String senha = sys;
//conecta com o banco de dados
conn = DriverManager.getConnection(url, usuario, senha);
}
catch (Exception ex)
{}
//fechar conexo no finally
Executando um Statement
...
//cria Statement
Statement stat = conn.createStatement();
//executa query
String query = "select Nome, Codigo from universidade.Curso";
ResultSet rs = stat.executeQuery(query);
//para cada linha retornada...
while (rs.next())
{
//apresentar os dados relacionados
System.out.println("Cdigo: " + rs.getString(2) + " Nome: " +
rs.getString(1));
}
//fechar o statement
stat.close();
...
Executando um PreparedStatement
...
//cria PreparedStatement
String query=select Nome, Curso->Nome from universidade.Aluno
where Email=?;
PreparedStatement pstmt = conn.prepareStatement(query);
//passando o e-mail da linha de comando para a query
pstmt.setString(1, args[0]);
//executando a query
ResultSet rs = pstmt.executeQuery();
if (rs.next())
{
//apresenta os dados selecionados
System.out.println("Nome: " + rs.getString(1) + " Curso: " +
rs.getString(2));
}
//fechando o PreparedStatement
pstmt.close();
...
Cach e Java
Parte III
Objetos
Objetos Cach
Todas as classes bsicas esto no CacheDB.jar
Para obter uma conexo precisamos de:
String de conexo
(jdbc:Cache://maquina:porta/namespace )
Usurio
Senha
A classe Persistent
%Library.Persistent
...
a superclasse de todos os
Java Binding
%Library.Persistent
...
universidade.Aluno
Matricula: %Integer
Nome: %String
Email: %String
Como funciona
Cach Process
JVM
Objeto
Cach
Objeto
Proxy
Rede TCP/IP
Suas classes
Cach exportadas
CacheDB.jar
O nome de
nossa query
ser listar
Definindo a Projeo
Uma vez definida, toda
Definindo a Projeo
Class universidade.Curso Extends (%Persistent, %Populate)
[ ClassType = persistent, Language = Basic, ProcedureBlock ]
{
Projection JavaProj As %Projection.Java(ROOTDIR = c:\Projeto");
....
try
{
// URL JDBC para o Cach
String url = jdbc:Cache://127.0.0.1:1972/User;
String usuario = _system;
String senha = sys;
//conecta com o banco de dados
db = CacheDatabase.getDatabase (url, usuario, senha);
}
catch (Exception ex)
{
}
//fechar database no finally
Abrindo um Objeto
// preciso passar o database como primeiro
// argumento de todo mtodo de classe.
// Um id deve ser encapsulado em um objeto da classe Id()
Curso curso = (Curso) Curso._open(db, new Id(1));
if (curso!=null)
{
System.out.println("Nome do curso: " + curso.getNome());
}
// No preciso fechar o objeto aberto
// Fechamos apenas Connections, Databases, ResultSets,
// Statements, etc...
Criando um Objeto
// preciso passar o database tambm para os construtores
// de objetos recm criados
Curso curso = new Curso(db);
// O Cach gera os mtodos set e get para cada propriedade da classe
curso.setNome("Cach University");
curso.setCodigo(new Integer(1972));
// Uma CacheException pode ser disparada durante o salvamento
curso._save();
// No preciso fechar o objeto aberto
// Fechamos apenas Connections, Databases, ResultSets,
// Statements, etc...
Transaes
No JDBC voc utiliza mtodos de sua connection para gerenciar
transaes
JavaDoc do CacheDB.jar
C:\CacheSys\Dev\Java\doc\index.html