Receita para criação de aplicação

Colegas, boa tarde,

Sou iniciante em Java, estou estudando a algum tempo pelas apostilas do Caelum e agora pelo Deitel e já me sinto confortável para criar telas, classes, utilizar swing, etc.

No entanto todos os exemplos que trabalhei foram baseados nos livros e não consigo visualizar quais os passos básicos para criação de uma aplicação, seja ela desktop ou web.

Explicando melhor: alguem consegue me passar um exemplo básico de cadastro, utilizando uma tabela de um banco como o MySql, por exemplo ?
Quer dizer, uma aplicação, com um menu e uma tela onde se possa consultar, alterar, inserir e alterar dados ?

Li alguns tópicos aqui sobre utilização de Hibernate, mas acho que vou deixar isso pra depois, posso fazer uma aplicação que utiliza banco de dados funcionar sem ele, utilizando SQL mesmo ?

Qual o grande problema, além de poluir o código Java com código SQL dentro das classes, em continuar utilizando SQL ?

Para desktop e web.

O que acho que estou em dúvida é onde colocar cada coisa. Será que consegui explicar ?

Pra web, também não consegui entender como criar as páginas que o usuário irá acessar, onde colocar a conexão com o banco ?

Vixi… pensando bem parece que não sei é nada !

Se alguém puder me ajudar…

Muito obrigado a todos.

Abraços.

Nossa quanta pergunta, vou tentar te ajudar em algumas… kkkk

[quote] Explicando melhor: alguem consegue me passar um exemplo básico de cadastro, utilizando uma tabela de um banco como o MySql, por exemplo ?
Quer dizer, uma aplicação, com um menu e uma tela onde se possa consultar, alterar, inserir e alterar dados ? [/quote]

Para criar menus tem uns exemplos legais na pagina sun
http://java.sun.com/docs/books/tutorial/uiswing/components/menu.html

Se vc ja criou as classes com Swing, é só adicionar a chamada delas a um JMenuItem, tem no link acima…

Para Mysql vc precisa ter o driver do seu SGDB, tem muitas perguntas sobre isso aqui no GUJ, use a BUSCA…

[quote] Li alguns tópicos aqui sobre utilização de Hibernate, mas acho que vou deixar isso pra depois, posso fazer uma aplicação que utiliza banco de dados funcionar sem ele, utilizando SQL mesmo ?

Qual o grande problema, além de poluir o código Java com código SQL dentro das classes, em continuar utilizando SQL ? [/quote]

Caso vc precise mudar as querys vc tera q altera-las individualmente em cada classe…

Romeo,

Voce tem um exemplo ou uma descrição de como tudo deve ficar organizado ?

Por exemplo:

  1. Classe MenuPrincipal que servirá como tela principal do aplicativo
    Composta por:
    ->classe JMenu
    ->classe JItemMenu que irá chamar a classe Cadastro

  2. Classe Cadastro que servirá de interface com o usuario
    Composta por:
    -> uma classe que “desenhe” realmente a interface (com os JLabels, JTextFields, JButtons, etc)
    -> uma classe Conection que irá realizar a conexão com o banco
    -> diversas classes do tipo AtualizarDados, BuscarDados, InserirRegistro e Deletar registro, que serão chamadas pela classe cadastro…

Talvez eu esteja falando um monte de besteiras, porque venho de uma linguagem considerada procedural, VB com banco de dados Oracle… alguém pode me ajudar ?

Realmente são muitas perguntas ! Me desculpem.

Isso porque ainda não chegamos a Web…

hehehehe…

Valeu !

Acho que compreendi sua dúvida…

mais ou menos assim…

vc desenhava as telas em VB agora vc tem que criar classes, nessas classes vai ter a telas que vc vai desenhar sem a facilidade do VB e sua outras Funcionalidades!.

é isso sua dúvida?

Abraços

Daew cara

Sobre os codios sql que poluem o codigo tem uma saida bem elegante com relação a isso. Você pode criar uma classe contendo os sql’s e apenas invocando abaixo tem um exemplo da classe

package com.ead.dao.objetos.setor;

public interface OracleSetorMetaDados {

	/**
	 * string com o nome da tabela usada no banco
	 */	
	public static final String TABLE = "SETOR";
	
	/**
	 * vetor de string com as chaves da tabela
	 */
	public static final String[] PK = { "SETOR_ID" };		
	
	/**
	 * string com os campos para serem utilizados com insert
	 */
	public static String METADADOSINSERT = "SETOR_ID, NOME";
	

	/**
	 * Retorna uma string com os campos para serem utilizados com select
	 */	
	public static String METADADOSSELECT = ""+TABLE+".SETOR_ID, "+TABLE+".NOME";
		
}

e na classe principal eu costumo fazer assim

	public List getSetorById(Setor set)
			throws SQLException {
		return select("select "+METADADOSSELECT+" from "+TABLE+" where "+PK[0]+" = '"
				+ prepara(set.getSetorId()) + "'");
	}

espero ter ajudado :idea:

truck1n:

A minha dúvida começa por ai mesmo.
Então eu devo ter uma classe que faria toda a parte de interface gráfica do usuário e outra onde colocaria as funcionalidades ?

Vamos supor um exemplo básico:
Uma tela para cadastro de cliente onde o CPF fosse a chave.
Eu teria uma tela com dois campos, CPF e NOME, e botões, NOVO, SALVAR, EXCLUIR, isso tudo numa classe.
Depois teria outras classes que seriam chamadas por essa onde, por exemplo:
-Eu verificaria se o CPF é válido.
-Verificaria se ele já existe no BD.
-Daria o comando INSERT ou UPDATE.

É isso ?

fabiel:

Acho que entendi sua alternativa, mas fiquei com duas dúvidas:
-O método getSetorById ficaria em qual classe ?
-Se eu entendi METADADOSSELECT, por exemplo, é uma variavel de classe, sendo assim vc deveria estar usando OracleSetorMetaDados.METADADOSSELECT, certo ?

truck1n:
A minha dúvida começa por ai mesmo.
Então eu devo ter uma classe que faria toda a parte de interface gráfica do usuário e outra onde colocaria as funcionalidades ?

Vamos supor um exemplo básico:
Uma tela para cadastro de cliente onde o CPF fosse a chave.
Eu teria uma tela com dois campos, CPF e NOME, e botões, NOVO, SALVAR, EXCLUIR, isso tudo numa classe.
Depois teria outras classes que seriam chamadas por essa onde, por exemplo:
-Eu verificaria se o CPF é válido.
-Verificaria se ele já existe no BD.
-Daria o comando INSERT ou UPDATE.

É isso ?

fabiel:

Acho que entendi sua alternativa, mas fiquei com duas dúvidas:
-O método getSetorById ficaria em qual classe ?
-Se eu entendi METADADOSSELECT, por exemplo, é uma variavel de classe, sendo assim vc deveria estar usando OracleSetorMetaDados.METADADOSSELECT, certo ?

truck1n:

A minha dúvida começa por ai mesmo.
Então eu devo ter uma classe que faria toda a parte de interface gráfica do usuário e outra onde colocaria as funcionalidades ?

Vamos supor um exemplo básico:
Uma tela para cadastro de cliente onde o CPF fosse a chave.
Eu teria uma tela com dois campos, CPF e NOME, e botões, NOVO, SALVAR, EXCLUIR, isso tudo numa classe.
Depois teria outras classes que seriam chamadas por essa onde, por exemplo:
-Eu verificaria se o CPF é válido.
-Verificaria se ele já existe no BD.
-Daria o comando INSERT ou UPDATE.

É isso ?

fabiel:

Acho que entendi sua alternativa, mas fiquei com duas dúvidas:
-O método getSetorById ficaria em qual classe ?
-Se eu entendi METADADOSSELECT, por exemplo, é uma variavel de classe, sendo assim vc deveria estar usando OracleSetorMetaDados.METADADOSSELECT, certo ?