View Full Version : [Dúvidas]mysql


nasic
26-01-2008, 22:15
Boas!
Instalei o mysql server 6 para dar uns toques em sql com java. Já tenho conhecimentos de sqlplus embora estejam um pouco esquecidos.
Tenho algumas duvidas:
1-necessito de mais alguma ferramenta, ou aconselham outra melhora?eu apenas instalei o mysql e crio as bases de dados pela consola mysql;
2-instalei o jdbc e ao fazer a conexão à base de dados, atraves da função Class.forName não sei que dados tenho que por nos parâmetros desta função.Eu apenas quero aceder a uma base de dados criada e gerida por mim.
3-Criei duas tabelas muito simples:drop table filmes;
CREATE TABLE filmes (
id TINYINT(3) not null,
titulo CHAR(30) not null,
ano YEAR(4) not null,
realizador CHAR(20) not null,
PRIMARY KEY (id)
);

--ALTER TABLE filmes ADD INDEX (titulo);

drop table elenco;
CREATE TABLE elenco (
cod_el TINYINT(3) not null auto_increment,
titulo_f CHAR(30) not null,
nome_actor CHAR(30) not null,
PRIMARY KEY (cod_el),
INDEX (titulo_f),
FOREIGN KEY (titulo_f) REFERENCES filmes(titulo) ON UPDATE CASCADE ON DELETE RESTRICT
);
Acontece que estou a ter problemas com a chave estrangeira. Já procurei um pouco pelo google, mas parece que a sintaxe da linguagem muda muito de versao para versao.

Notem que estou em ambiente windows, mais precisamente no vista
Por agora são só estas, mas vão surgir mais de certeza:x2:

Cumps

AliFromCairo
26-01-2008, 23:28
1-necessito de mais alguma ferramenta, ou aconselham outra melhora?eu apenas instalei o mysql e crio as bases de dados pela consola mysql;


Precisas do MySQL Connector para Java e, adicionalmente, podes utilizar as GUI Tools que o MySQL tem disponível, como por exemplo, o MySQL Query Browser que te permite criar tabelas e fazer consultas (entre outras coisas) através de uma interface gráfica.


2-instalei o jdbc e ao fazer a conexão à base de dados, atraves da função Class.forName não sei que dados tenho que por nos parâmetros desta função.Eu apenas quero aceder a uma base de dados criada e gerida por mim.


Tens que usar o nome qualificado da classe do driver JDBC que vais utilizar. Em princípio, se estás a utilizar o driver que está disponível no site do MySQL, o nome é "com.mysql.jdbc.Driver". Além de registares o driver, vais precisar de fazer a ligação, pelo que te aconselho a veres os exemplos de como usar o connector no site do MySQL.


Acontece que estou a ter problemas com a chave estrangeira. Já procurei um pouco pelo google, mas parece que a sintaxe da linguagem muda muito de versao para versao.


Verifica qual o engine que estás a utilizar (InnoDB ou MyISAM).

nasic
27-01-2008, 01:36
Já consegui comunicar com a base de dados finalmente! O connector (jdbc) já tinha instalado. Faltava era uma serie de coisas. Deixo aqui um pequeno tutorial:

-abrir portas no router (não sei se era mm importante);
-criar um utilizador com privilegios atraves do comando grant;
EX: grant all on <nome_bd>.* to <user>@<ip> identified by <password>
-dps é utilizar estes dados no vosso programa;
EX:com.mysql.jdbc.jdbc2.optional.MysqlDataSource MySql = new com.mysql.jdbc.jdbc2.optional.MysqlDataSource();
MySql.setServerName("192.168.2.100");
MySql.setPort(3306);
MySql.setDatabaseName("bd");
MySql.setUser("nasic");
MySql.setPassword("****");

con = MySql.getConnection();

E está feita a ligação à base de dados.

Espero ter sido util