Criando Base de Dados em Db2

14 respostas
K

Alguém já criou uma base de dados em db2, via uma aplicação java, porque a string de conexão naum funciona sem o parametro de banco, e no caso a conexão seria para criar o banco entaum a conexão precisaria ser na engine do banco. Em fire o driver JDBC usa uma classe FBManager para fazer isto , alguem sabe se o db2 tem esta funcionalidade no seu pacote JDBC.

14 Respostas

aline_marques

Vc esta falando do derby?
Bom se for, eu uso no netbeans, n acho muito bom n …

W

Esses são os parametros .:
com.ibm.db2.jcc.DB2Driver
jdbc:db2://localhost:50000/<>
O caminho dos drivers ODBC tipo 4.:

C:<>\libs\DB2\db2jcc.jar;C:\eclipse\libs\DB2\db2jcc_license_cu.jar;

sds.

K

WilliamSilva:
Esses são os parametros .:
com.ibm.db2.jcc.DB2Driver
jdbc:db2://localhost:50000/<>
O caminho dos drivers ODBC tipo 4.:

C:<>\libs\DB2\db2jcc.jar;C:\eclipse\libs\DB2\db2jcc_license_cu.jar;

sds.

está e a conexão com um banco que ja foi criado, foi nela msm que eu tinha dito que o db2 naum aceita conectar sem o parametro <> . A pergunta e como conectar no db2 se eu ainda naum tenho banco

W

Vc. não tem o banco.???, vc. acabou de informar que seu banco é o DB2, não entendi.Vc tem o banco sim o que não se tem é a instancia criada, procure estudar um pouco sobre isso no DB2 ou outros bancos.
Vc. tem o Database, que no seu caso é o DB2 que por sua vez possui uma instancia e o que vc. quer é criar um “create table” via linguagem de programação pode ser, mais não seria mais saudável vc. ler na documentação do DB2 a criação desse procedimento via “script” disparados do próprio DB2, nele vc. “jornals” e vários procedimentos que podem e devem ser agendados.
Se vc. quer copiar uma estrutura de tabelas para o DB2, ele tem recursos muito bons para importar nos vários formatos.E mais uma coisa será que os tipos do Firebird são os mesmo do DB2 ou outro banco qualquer.

K

Vc. não tem o banco.???, vc. acabou de informar que seu banco é o DB2, não entendi.Vc tem o banco sim o que não se tem é a instancia criada, procure estudar um pouco sobre isso no DB2 ou outros bancos.
Vc. tem o Database, que no seu caso é o DB2 que por sua vez possui uma instancia e o que vc. quer é criar um “create table” via linguagem de programação pode ser, mais não seria mais saudável vc. ler na documentação do DB2 a criação desse procedimento via “script” disparados do próprio DB2, nele vc. “jornals” e vários procedimentos que podem e devem ser agendados.
Se vc. quer copiar uma estrutura de tabelas para o DB2, ele tem recursos muito bons para importar nos vários formatos.E mais uma coisa será que os tipos do Firebird são os mesmo do DB2 ou outro banco qualquer.

db2 e a engine, que pode ter varios bancos dentro dela tal como ‘bancoTeste’, para eu conectar ao ‘bancoTeste’ da engine db2 eu uso

String strBancoURL = "jdbc:db2://localhost:50000/bancoTeste";
String strDriverName = "com.ibm.db2.jcc.DB2Driver";
try{
				
    Class.forName(strDriverName);
    cnn = DriverManager.getConnection(strBancoURL, strUsuario, strSenha);
     System.out.println("Conectado");
}
catch(ClassNotFoundException cnfe){
	System.err.println("Erro no driver");
	System.exit(1);
}
catch(SQLException sqlE){
   JOptionPane.showMessageDialog(null, "Conexão Recusada", "Erro", JOptionPane.ERROR_MESSAGE);
   System.err.println("Não conectado");
   sqlE.printStackTrace();
}

no meu caso eu tenho o ‘banco teste’, mas se eu quiser criar um novo banco como ficaria a string de conexão para executar um comando de ‘create database novoBanco’ por exemplo ?

R

Tenta via ODBC.

[]´s

W

Tenta via ODBC.
Assim fica meio estranho pois o DB2 9.1 ,somente aceita JDBC eSQLJ que são os drivers defaults para aplicação java, ou seja Drivers DB2 JDBC type 2 estão “deprecated” e, drivers DB2 JDBC type 23 estão descontinuados.

R

Quem não tem cão, caça com gato.

:wink:

W
Remendando seu código.:
String strBancoURL = "jdbc:db2://localhost:50000/bancoTeste";
 String strDriverName = "com.ibm.db2.jcc.DB2Driver";
 try{
 				
     Class.forName(strDriverName);
     cnn = DriverManager.getConnection(strBancoURL, strUsuario, strSenha);
      System.out.println("Conectado");
 }
 catch(ClassNotFoundException cnfe){
 	System.err.println("Erro no driver");
 	System.exit(1);
 }
 catch(SQLException sqlE){
    JOptionPane.showMessageDialog(null, "Conexão Recusada", "Erro", JOptionPane.ERROR_MESSAGE);
    System.err.println("Não conectado");
    sqlE.printStackTrace();
 }
Colocaria algo assim
// protege..
try{
//  no teu código acho que faltou..
....
Statement stmt;
stmt =cnn.createStatement();
String query =
"create table minhatbl" +
 "(Cod int  NOT NULL," +
 "Descr varchar(80)," +
"primary key (Cod))";
stmt.executeUpdate(query);
stmt.close();
cnn.close();
} catch(SQLException ex) {
.... System.err.print("..") etc....
....  idem   . println("")..;
Veja que isso é em JDBC tipo 4, e o básico, o Hibernate/JPA pode fazer esse processo para vc. automaticamente. Use esse modelo de DDL para estudos .: [quote] WORKDEPT CHAR(3), PHONENO CHAR(4) CONSTRAINT NUMBER CHECK (PHONENO >= '0000' AND PHONENO <= '9999'), HIREDATE DATE, JOB CHAR(8), EDLEVEL SMALLINT, SEX CHAR(1), BIRTHDATE DATE, SALARY DECIMAL(9,2), BONUS DECIMAL(9,2), COMM DECIMAL(9,2), PRIMARY KEY(EMPNO) FOREIGN KEY RED (WORKDEPT) REFERENCES DSN8810.DEPT ON DELETE SET NULL ) EDITPROC DSN8EAE1 IN DSN8D81A.DSN8S81E; CREATE TABLE DSN8810.DEPT (DEPTNO CHAR(3) NOT NULL, DEPTNAME VARCHAR(36) NOT NULL, MGRNO CHAR(6), ADMRDEPT CHAR(3) NOT NULL, LOCATION CHAR(16), PRIMARY KEY(DEPTNO) ) IN DSN8D81A.DSN8S81D; ALTER TABLE DSN8810.DEPT FOREIGN KEY RDD (ADMRDEPT) REFERENCES DSN8810.DEPT ON DELETE CASCADE; ALTER TABLE DSN8810.DEPT FOREIGN KEY RDE (MGRNO) REFERENCES DSN8810.EMP ON DELETE SET NULL; [code] E essas referências.: http://mysite.verizon.net/Graeme_Birchall/cookbook/DB2V91CL.PDF http://www-306.ibm.com/software/data/db2/express/ http://www.cse.yorku.ca/~jarek/db2/sqlj.html http://www.devmedia.com.br/articles/viewcomp.asp?comp=1344 http://www.dsc.ufcg.edu.br/~baptista/cursos/BDadosI/SQLJ.ppt Todos esse exemplos foram voltados para o DB@- Express C 9.1. SDS e Boa sorte....
W

Ufa, já tô cansado o código para vc dar uma studada ficou uma caquinha vou repetir ok…

CREATE TABLE DSN8810.EMP (EMPNO CHAR(6) NOT NULL, FIRSTNME VARCHAR(12) NOT NULL, MIDINIT CHAR(1) NOT NULL, LASTNAME VARCHAR(15) NOT NULL, WORKDEPT CHAR(3), PHONENO CHAR(4) CONSTRAINT NUMBER CHECK (PHONENO >= '0000' AND PHONENO <= '9999'), HIREDATE DATE, JOB CHAR(8), EDLEVEL SMALLINT, SEX CHAR(1), BIRTHDATE DATE, SALARY DECIMAL(9,2), BONUS DECIMAL(9,2), COMM DECIMAL(9,2), PRIMARY KEY(EMPNO) FOREIGN KEY RED (WORKDEPT) REFERENCES DSN8810.DEPT ON DELETE SET NULL ) EDITPROC DSN8EAE1 IN DSN8D81A.DSN8S81E; CREATE TABLE DSN8810.DEPT (DEPTNO CHAR(3) NOT NULL, DEPTNAME VARCHAR(36) NOT NULL, MGRNO CHAR(6), ADMRDEPT CHAR(3) NOT NULL, LOCATION CHAR(16), PRIMARY KEY(DEPTNO) ) IN DSN8D81A.DSN8S81D; ALTER TABLE DSN8810.DEPT FOREIGN KEY RDD (ADMRDEPT) REFERENCES DSN8810.DEPT ON DELETE CASCADE; ALTER TABLE DSN8810.DEPT FOREIGN KEY RDE (MGRNO) REFERENCES DSN8810.EMP ON DELETE SET NULL;

E essas referências.:
http://mysite.verizon.net/Graeme_Birchall/cookbook/DB2V91CL.PDF
http://www-306.ibm.com/software/data/db2/express/
http://www.cse.yorku.ca/~jarek/db2/sqlj.html
http://www.devmedia.com.br/articles/viewcomp.asp?comp=1344
http://www.dsc.ufcg.edu.br/~baptista/cursos/BDadosI/SQLJ.ppt
Todos esse exemplos foram voltados para o DB@- Express C 9.1.
SDS e Boa sorte…

M

Eu fikei imaginando qual a aplicação pratica para isso…

flw.

luiz_ross
No DB2 não tem como vc criar o banco via código java, somente as tabelas.
W

No DB2 não tem como vc criar o banco via código java, somente as tabelas.
E o pior é que ninguém quer estudar o conceito de “instância” e outros recursos do SGBDs, todo mundo quer é criar tabelas não importa se estão normalizadas ou não.

K

WilliamSilva:
Ufa, já tô cansado o código para vc dar uma studada ficou uma caquinha vou repetir ok…

CREATE TABLE DSN8810.EMP (EMPNO CHAR(6) NOT NULL, FIRSTNME VARCHAR(12) NOT NULL, MIDINIT CHAR(1) NOT NULL, LASTNAME VARCHAR(15) NOT NULL, WORKDEPT CHAR(3), PHONENO CHAR(4) CONSTRAINT NUMBER CHECK (PHONENO >= '0000' AND PHONENO <= '9999'), HIREDATE DATE, JOB CHAR(8), EDLEVEL SMALLINT, SEX CHAR(1), BIRTHDATE DATE, SALARY DECIMAL(9,2), BONUS DECIMAL(9,2), COMM DECIMAL(9,2), PRIMARY KEY(EMPNO) FOREIGN KEY RED (WORKDEPT) REFERENCES DSN8810.DEPT ON DELETE SET NULL ) EDITPROC DSN8EAE1 IN DSN8D81A.DSN8S81E; CREATE TABLE DSN8810.DEPT (DEPTNO CHAR(3) NOT NULL, DEPTNAME VARCHAR(36) NOT NULL, MGRNO CHAR(6), ADMRDEPT CHAR(3) NOT NULL, LOCATION CHAR(16), PRIMARY KEY(DEPTNO) ) IN DSN8D81A.DSN8S81D; ALTER TABLE DSN8810.DEPT FOREIGN KEY RDD (ADMRDEPT) REFERENCES DSN8810.DEPT ON DELETE CASCADE; ALTER TABLE DSN8810.DEPT FOREIGN KEY RDE (MGRNO) REFERENCES DSN8810.EMP ON DELETE SET NULL;

E essas referências.:
http://mysite.verizon.net/Graeme_Birchall/cookbook/DB2V91CL.PDF
http://www-306.ibm.com/software/data/db2/express/
http://www.cse.yorku.ca/~jarek/db2/sqlj.html
http://www.devmedia.com.br/articles/viewcomp.asp?comp=1344
http://www.dsc.ufcg.edu.br/~baptista/cursos/BDadosI/SQLJ.ppt
Todos esse exemplos foram voltados para o DB@- Express C 9.1.
SDS e Boa sorte…

vlw

Criado 6 de julho de 2007
Ultima resposta 20 de jul. de 2007
Respostas 14
Participantes 6