Pessoal, estou estudando pela apostila fj21 da Caelum. Estou estudando como o java, linguagem de programação orientada a objeto pode utilizar banco de dados relacional como o mysql. Essa “tradução” é feita pela API JDBC neh? Bom, estou fazendo um exercicio para praticar como abrir uma conexão com o banco de dados. Para abrir uma conexão com um banco temos que usar o driver dele neh, no meu caso o mysql conector para Java. Para saber qual banco vamos usar temos que usar essa string:
O banco de dados que eles usaram foi o fj21 neh? Como devo criar esse banco? Tenho que criar pelo sql mesmo? Criando uma tabela normalmente? Ou crio fazendo em Java mesmo? Não sei, acho que isto era para esta mais explicado na apostila.
Dai pode ser criado o banco e as tabelas por modo visual e não apenas por SQL.
P
pakuista
Vou da uma olhadinha na apostila aew. qualquer duvida minha eu volto aqui.
Vou usar este topico como tira duvidas do meu estudo de java web pela apostila FJ21.
Muito obrigado
P
pakuista
romarcio,
È mais comum usar o MySQL Administrator ou linha de comando? È melho usar o Administrator mesmo?
romarcio
Não sei te informar.
Mas o Admistrador te fornece mais praticidade para ambiente de desenvolvimento pelo menos.
Acho que isso fica por conta própria de cada um ou da empresa, não tem certo ou errado nesse caso.
P
pakuista
Hum, ta ok.
P
pakuista
Pessoal, quando eu executo essa classe para persistir no BD eu crio um contato na tabela com nome contatos, certo?
importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.SQLException;importjava.util.Calendar;importbr.com.caelum.jdbc.ConnectionFactory;publicclassJDBCInsere{publicstaticvoidmain(String[]args)throwsSQLException{Connectioncon=newConnectionFactory().getConnection();Stringsql="insert into contatos (nome,email,endereco,dataNascimento) values (?,?,?,?)";PreparedStatementstmt=con.prepareStatement(sql);stmt.setString(1,"Caelum");stmt.setString(2,"[email removido]");stmt.setString(3,"R. Vergueiro 3185 cj57");stmt.setDate(4,newjava.sql.Date(Calendar.getInstance().getTimeInMillis()));stmt.execute();stmt.close();System.out.println("Gravado");con.close();}}
Dei nome, e-mail, endereço e data da criação do contato.
Como faço para ver o contato que eu acabei de criar? Procurei no MySQL Administrator mas não achei.
robertoMoraes
sua pergunta e respondida algumas paginas a frente na apostila com um metodo para exibir os cadastros do seu banco na tela
P
pakuista
robertoMoraes
.
Muito obrigado.
robertoMoraes
nada li essa apostila a pouco tempo e por sinal e muito boa da pra ter varias ideias para projetos web
P
pakuista
Pessoal, como vocês podem ver pela print acima a tabela que criei tem ids crescentes, o problema é que se eu apago um registro os ids não diminuem, ele continuam crescendo. Tipo, Tenho só dois registros, mas os ids deles são 7 e 9 e não 1 e 2 como eu queria, como faço isso? Isso é para ser feito na criação da tabela? Para criação da tabela eu fiz:
Oque posso mudar para o id ficar do jeito que relatei acima? Valeu gente.
robertoMoraes
mas por que voce quer mudar os ids?
qnd voce cria uma Primary key (no seu caso o id) ela serve para o banco c axar nos registros
por issu ela e marcada como auto-increment assim voce nunca tera 2 registros na tabela com o mesmo id (o que geraria uma caca tremenda)
o valor que o banco deu para a chave id nao vai lhe atrapalhar em nada.
ps: algum motivo para querer que os ids sejam 1 e 2?
P
pakuista
Só mais uma coisinha, pela apostila aprendir a adicionar um registro, alterar um registro, deletar um registro, listar os registros, mas tudo isso numa tabela previamente criada. Para meu exercício eu criei uma tabela ou por linha de comando do MySQL ou mesmo pelo MySQL Administrator, oque eu queria saber, e que não tem na apostila, é se tem como criar uma tabela usando JDBC. Já que eu posso inserir, alterar e deletar, listar registros por que não criar uma tabela? Como faço? VLW gente.
P
pakuista
robertoMoraes:
mas por que voce quer mudar os ids?
qnd voce cria uma Primary key (no seu caso o id) ela serve para o banco c axar nos registros
por issu ela e marcada como auto-increment assim voce nunca tera 2 registros na tabela com o mesmo id (o que geraria uma caca tremenda)
o valor que o banco deu para a chave id nao vai lhe atrapalhar em nada.
ps: algum motivo para querer que os ids sejam 1 e 2?
Não não, não existe nenhum motivo para mudar os ids não. Só achei que ficaria mais organizado pois tendo somente dois registros eu já saberia que um teria id 1 e outro 2. Mas vou deixar assim mesmo, melhor doque ter uma caca tremenda.
packagebr.com.caelum.jdbc;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;publicclassConnectionFactory{publicConnectiongetConnection(){System.out.println("Conectando ao banco");try{returnDriverManager.getConnection("jdbc:mysql://localhost/testejdbc","root","19021988");}catch(SQLExceptione){thrownewRuntimeException(e);}}}
Alguma coisa me diz que estou complicando d+.
P
pakuista
Pronto, pronto. Deu certo, era só a sintax do SQL que tava errada mesmo, na verdade nem sintax era, era só que tinha trocado BIGINT por BEGINT.
P
pakuista
Pessoal, como faço para criar um db ao inves de tabela? Estou tendo dificuldades com isso porque quando crio um objeto da classe ConnectionFactory eu me conecto diretamente ao db testejdbc. Tem como criar uma classe para se conectar apenas ao mysql em se e não a um db específico?
robertoMoraes
acredito que tenha porem nunca tentei algo acima d criar tabelas
talvez se vc conectar no banco shema (axo que n é bem esse o nome n lembro) , voce possa criar dbs
ps: estude sobre permiçoes de usuarios do banco nao e uma boa ideia permitir q o usuario da sua aplicaçao que se conecta do banco
possa ficar criando e deletando tabelas , bancos se alguem tiver acesso a issu vc vai ter um problema daqueles …
tente criar um usuario q so possa executar as açoes q sua aplicaçao precisa nada +
P
pakuista
Entendo, como é só uma prática vou ficar por aqui. Bom, a apostila começa a falar sobre Jee propriamente dito a partir de agora. Vou continuar meu estudo. Alguma coisa me diz que vou passar muitas vezes por aqui ainda. Vlw mesmo cara.
P
pakuista
Pessoal, estou empancado aqui. Não consigo achar um link para download do apache tomcat que seja .exe. Todos que tem no site são no máximo .zip. Se eu baixo o .zip ele não vem com o .exe aí eu teria que fazer uma pá de coisas certo? Alguém não teria o link do .exe? VLW gente.
romarcio
É só descompactar a pasta em algum diretório, tipo ‘C:\’ ou ‘C:\Arquivos de Programas’
Depois vc precisa setar as variaveis de ambiente.
CATALINA_HOME
C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0
PATH
CATALINA_HOME\bin;
O endereço do CATALINA_HOME deve ser identico ao local em que está a pasta do tomcar no seu pc, esse caminho que coloquei é um exemplo.
P
pakuista
Valeu Romarcio.
P
pakuista
Setei CATALINA_HOME com o valor de D:\TomCat e CLASSPATH com o valor de D:\tomcat\common\lib\servlet-api.jar;
Quando tento executar o o apache fazendo:
D:\TomCat\bin>startup.bat
aparece uma mensagem: " Neither the Java_Home nor the JRE_HOME enviroment variable is defined at least one of these enviroment variable is needed to run this program"
Eu instalei o pack completo, JDK. Oque posso fazer agora?
P
pakuista
Bom gente, oque eu fiz foi criar o JAVA_HOME e setar para a pasta JDK1.6.0. , agora quando vou executar o Tomcat da um erro assim:
Ah gente, não to conseguindo instalar de jeito nenhuma, CARAMBA, to chateado já oh. Eu consegui o .exe que eu estava atrás, mesmo com ele ta dando erro aqui. Tirei uma print para ficar melhor, olhem aqui:
P
pakuista
Ah, fala serio gente, consegui. Sabem oque era? O meu anti virus Kaspersky bloqueando a porta(ele também é firewall). È barra viu. Vlw gente.
P
pakuista
Pessoal, estou com duas dúvidas aqui.
1)Como eu falei mais acima o meu antivirus (Kaspersky internet Security) ta botando boneco com o Apache tomcat, só consigo startar o servidor se o kaspersky estiver desabilitado. Alguém tem alguma dica para eu liberar o tomcat no kaspersky?
2)Eu criei um projeto chamado primeiroprojeto, o problema é que quando tento acessar ele pelo browser não da certo, da um erro 404 e “description The requested resource (/primeiroprojeto/) is not available”.
Eu fui e criei um arquivo chamado Index.html, esse arquivo só contem umas besteirinhas em html mesmo, quando faço:
ele abre normalmente. Oque pode esta dando errado para não abrir a URL principal d projeto?
P
pakuista
Pessoal, estou estudando a part de Servlets, o exercício que estou fazendo é para cadastrar um usuario no banco de dados. Como vou mecher com o banco eu preciso importar as classes do projeto JDBC que fiz no capitulo 1. Como faço para improtar o projeto? Preciso importar o projeto todo? Se for para importar só algumas classes eu importo .java ou .class? E nesse caso, eu vou ter que criar os pacotes de onde elas vieram e colocar no meu oprojeto atual? Pergunto isso por que quando importo as classes dicam sem pacote, aí não sei se eu coloco dentro da pasta src do meu projeto e crio os respectivos pacotes novamentes. Olhem aqui od dois projetos e as classes que importei de jdbc para jf21-agenda:
Tenho que criar os pacotes no fj21-agenda e colocar as classes tais como o do jdbc ?
P
pakuista
Pessoal, Alguém pode me passar um exercicio para eu poder usar hibernate? Pode ser para usar Java SE mesmo, ou se quiserem Java EE mesmo. Ajuda aqui gente. Agora preciso de prática, prática prática.