Conectando SQL Server em Java
Blogger templates
Visitas
quarta-feira, 29 de agosto de 2012
Conectando SQL Server em Java
Postado por
Guga Anjos
,
às
quarta-feira, agosto 29, 2012
1 comentários
Continue lendo
segunda-feira, 27 de agosto de 2012
Conectando MySQL em java
Postado por
Guga Anjos
,
às
segunda-feira, agosto 27, 2012
Primeiramente é necessário criar um classe de conexão que vai servir como molde para o Objeto do nosso banco de dados.
Classe
Também é necessário adicionar no seu projeto a biblioteca de conexão do MySQL Clique aqui para baixar
Passando valores de um JFrame para outro
Postado por
Guga Anjos
,
às
segunda-feira, agosto 27, 2012
segunda-feira, 20 de agosto de 2012
Alguns problemas ao criar arquivo Jar
Postado por
Guga Anjos
,
às
segunda-feira, agosto 20, 2012
Olá galera do java aeberto, tenho algumas dicas pra vc's
Deparei com um problema, ao criar um arquivo .JAR no Netbeans atraves da função Limpar e Construir, reparei as seguintes falhas:
- Cria outras pastas como a Lib (bibliotecas) fora do arquivo Jar, o ideal seria criar tudo dentro do arquivo.
- (pior Falha) Ao criar o arquivo Jar, apos a sua distribuição um Cracker pode obter o seu código fonte, atraves da Engenharia Reversa. (Testei com meu arquivo e funcionou)
Então, vai alguns links para solucionar o problema:
Criar Jar contendo todos arquivos necessarios sem a pasta Lib
http:// preclog.blogspot.com.br/2010/ 03/ criando-jar-no-netbeans-sem-pas ta-lib.html
Cria Ofuscador de código Anti-engenharia Reversa
http:// proguard.sourceforge.net/
Deparei com um problema, ao criar um arquivo .JAR no Netbeans atraves da função Limpar e Construir, reparei as seguintes falhas:
- Cria outras pastas como a Lib (bibliotecas) fora do arquivo Jar, o ideal seria criar tudo dentro do arquivo.
- (pior Falha) Ao criar o arquivo Jar, apos a sua distribuição um Cracker pode obter o seu código fonte, atraves da Engenharia Reversa. (Testei com meu arquivo e funcionou)
Então, vai alguns links para solucionar o problema:
Criar Jar contendo todos arquivos necessarios sem a pasta Lib
http://
Cria Ofuscador de código Anti-engenharia Reversa
http://
quinta-feira, 16 de agosto de 2012
Ler arquivo de Configuração (config .ini)
Postado por
Guga Anjos
,
às
quinta-feira, agosto 16, 2012
Por diversos motivos pode ser necessário ter um arquivo com parâmetros de configuração para a sua aplicação Java e esse arquivo de configuração além de ser modo texto não seria performático se fosse adotado XML. Uma opção mais viável seria a adoção de um arquivo texto com a seguinte estrutura:
identificador = valor
Com o arquivo nessa estrutura podemos utilizar o seguinte para um teste rápido (colocar o nome do arquivo de config.ini):
****** Arquivo de configurações ******** inicial=1452 final=acabou param1=Teste de leitura
Agora com poucas linhas de código iremos ler os valores necessários e imprimir na saida (console) da IDE (no caso estou utilizando o Netbeans, mas até um bloco de notas serve):
Viu a simplicidade? Basta declar uma String com o nome e extensão do arquivo e uma variável do tipo Properties, em seguida carregas i stream utilizando o método load() e obtemos os valores por métodos getProperty().
A saída da execução do software deverá ser essa:
Iniciando processo de leitura de configurações: 1452 Teste de leitura acabou Finalizando leitura!
Agora a sua aplicação Java pode conter valores e demais informações de forma dinâmica, não vai ser preciso abrir o software para alterar um simples parâmetro de configuração e depois compilar tudo de novo, basta alterar o valor no arquivo de configuração e pronto.
Fonte: viamais
sexta-feira, 10 de agosto de 2012
Criando Stub em RMI
Postado por
Guga Anjos
,
às
sexta-feira, agosto 10, 2012
Como criar o arquivo Stub em RMI
Olá galera do java aberto, segue abaixo uma dica de como criar um arquivo Stub para seu servidor rmi.
O arquivo Stub, serve para o servidor feito em RMI em Java, organizar e servir o computador com os métodos Remote do seu servidor, sem ele o seu servidor não irá funcionar, pois não saberá onde pegar os pedidos de métodos enviado pelo Cliente.
Para criar o arquivo, pegue a sua classe implementada com os métodos da interface que são os métodos que o servidor vai executar, também a mesma interface, copie e cole dentro do diretório Bin do seu JDK java.
Feito isso, abra o prompt de comando via cmd pelo executar do windows.
Vá até o diretório do seu bin do seu jdk.
cmd > cd seuriretorio\jdk\bin\
cmd > javac <NomeDaClasse>.java (irá compilar sua classe)
cmd > start rmiregistry (inicia o registro do stub)
cmd > rmic <sua classe> (cria o arquivo stub)
cmd > java -Djava.security.policy= <SeuArquivoPolicy>.policy <NomeDaClasse> (arquivo de politica de acesso ao servidor)
O arquivo Policy é um arquivo de configuração de segurança de acesso ao servidor, assim você pode
configurar seu servidor detalhando e restringindo determinada porta de seu firewall para acessa-lo.
Não vou entrar em detalhes, mas abaixo vou criar um passo-a-passo de um arquivo Policy genérico que não restringe porta de acesso ao seu servidor, ou seja, qualquer um pode acessar. Evita erros, é bom para testes.
Abra um editor de texto - como bloco de notas ou word pad.
Copie e cole o código abaixo
grant{
permission java.security.AllPermission;
};
Salve como <NomeDesejado>.policy
Tipo -> todos arquivos
pronto!
Até o próximo artigo..
quarta-feira, 8 de agosto de 2012
JOptionPane personalizado
Postado por
Guga Anjos
,
às
quarta-feira, agosto 08, 2012
Mudar a formatação das caixas de diálogo do JOptionPane
- import java.awt.Font;
- import javax.swing.*;
- import javax.swing.plaf.FontUIResource;
- public class OptionPaneFonts {
- public static void main(String[] args) {
- UIManager.put("OptionPane.messageFont", new FontUIResource(new Font("Times New Roman", Font.BOLD, 18))); // Aqui você muda o nome e tamanho da fonte.
- JOptionPane.showMessageDialog(null, "Resultado da nova fonte", "Nova fonte", JOptionPane.INFORMATION_MESSAGE);
- UIManager.put("OptionPane.messageFont", new FontUIResource(new Font("SanSerif", Font.ITALIC, 18))); // Aqui você muda o nome e tamanho da fonte.
- JOptionPane.showMessageDialog(null, "Resultado da nova fonte", "Nova fonte", JOptionPane.INFORMATION_MESSAGE);
- }
- }
JList com CheckBox
Postado por
Guga Anjos
,
às
quarta-feira, agosto 08, 2012
JList com Checkbox
exemplo simples Classe |
/*
Este exemplo mostra como criar uma JList
contendo JCheckBoxes. Aprenda a marcar os
itens e obter quais itens estão marcados.
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class Estudos extends JFrame{
JList lista;
public Estudos() {
super("A classe JList");
Container c = getContentPane();
c.setLayout(new FlowLayout(FlowLayout.LEFT));
// Cria a JList
lista = new JList();
// Define o renderizador de células
lista.setCellRenderer(new CheckBoxCellRenderer());
// Define os valores da lista Object[] cbArray = new Object[4];
cbArray[0] = new JCheckBox("Goiânia");
cbArray[1] = new JCheckBox("Brasília");
cbArray[2] = new JCheckBox("Barra do Garças");
cbArray[3] = new JCheckBox("Curitiba");
// Atribue os itens à lista lista.setListData(cbArray);
// Define a seleção única para a lista lista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
// Aqui nós permitimos que as checkboxes sejam marcadas
// ou desmarcadas com a barra de espaço
lista.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
if(e.getKeyCode() == KeyEvent.VK_SPACE){
int index = lista.getSelectedIndex();
if(index != -1){
JCheckBox checkbox =
(JCheckBox) lista.getModel().getElementAt(index);
checkbox.setSelected(!checkbox.isSelected());
repaint();
}
}
}
});
// Aqui nós permitimos que as checkboxes sejam marcadas
// ou desmarcadas com o mouse
lista.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
int index = lista.locationToIndex(e.getPoint());
if(index != -1){
JCheckBox checkbox = (JCheckBox) lista.getModel().getElementAt(index);
checkbox.setSelected(!checkbox.isSelected());
repaint();
}
}
});
// Um botão que permite obter os itens marcados
JButton btn = new JButton("Obter itens marcados");
btn.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
String itens = "";
/*
* Loop feito com FOR, para fazer uma varredura
* para obter quais itens estao marcados ou não
*/ for(int i = 0; i < lista.getModel().getSize(); i++){
JCheckBox checkbox = (JCheckBox) lista.getModel().getElementAt(i);
if(checkbox.isSelected())
itens += "Item com índice " + i +
" está marcado\n";
else
itens += "Item com índice " + i +
" está desmarcado\n";
}
JOptionPane.showMessageDialog(null,
itens);
}
}
);
// Adiciona a lista à janela
c.add(new JScrollPane(lista));
// Adiciona o botão à janela c.add(btn);
setSize(350, 250);
setVisible(true);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
// Classe personalizada que permite que os itens
// da lista sejam exibidos como
JCheckBoxesclass
CheckBoxCellRenderer implements ListCellRenderer{
Border noFocusBorder = new EmptyBorder(1, 1, 1, 1);
public Component getListCellRendererComponent(
JList list, Object value, int index,
boolean isSelected, boolean cellHasFocus){
JCheckBox checkbox = (JCheckBox) value;
checkbox.setBackground(isSelected ?
list.getSelectionBackground() : list.getBackground());
checkbox.setForeground(isSelected ?
list.getSelectionForeground() : list.getForeground());
checkbox.setEnabled(list.isEnabled());
checkbox.setFont(list.getFont());
checkbox.setFocusPainted(false);
checkbox.setBorderPainted(true);
checkbox.setBorder(isSelected ? UIManager.getBorder(
"List.focusCellHighlightBorder") : noFocusBorder);
return checkbox;
}
}
SQL Server - Tabela temporária no banco de dados
Postado por
Guga Anjos
,
às
quarta-feira, agosto 08, 2012
Como utilizar e criar tabelas temporárias no SQL Server
Pois bem, saiba que o SQL Server permite que você crie uma tabela temporária, ou seja, a tabela existirá somente enquanto a conexão estiver ativa com o banco de dados. Ao encerrar a conexão a tabela automaticamente é eliminada!
Além disso a tabela temporária não fica no database de produção. Ela sempre é criada no database tempdb e poderá ser visualizada apenas pelo usuário que efetuou a conexão.
Vejamos um exemplo:
Considere a seguinte tabela:
CREATE TABLE LOC_LOCACAO (Inserindo alguns registros:
LOC_IN_CODIGO INT NOT NULL CONSTRAINT LOC_PK_LOCACAO PRIMARY KEY,
LOC_DT_LOCACAO SMALLDATETIME,
LOC_RE_VALOR NUMERIC(12,2)
);
SET DATEFORMAT YMDDigamos que você precisa copiar os dados para uma tabela temporária que iremos chamar de LOC_LOCACAOTEMP
Define a data no formato YMD, evitando erro no SQL em Português
insert into LOC_LOCACAO values (1,'2009-07-06',3.50);
insert into LOC_LOCACAO values (2,'2009-07-06',4.50);
insert into LOC_LOCACAO values (3,'2009-07-07',4.50);
Temos duas opções:
1. Criar a tabela temporária durante o próprio comando SELECT/INSERT:
SELECTObserve que o nome da tabela temporária é iniciado pelo caractere #.
LOC_IN_CODIGO, LOC_DT_LOCACAO, LOC_RE_VALOR
INTO #LOC_LOCACAOTEMP
FROM LOC_LOCACAO
2. A outra opção seria criar a tabela na "unha":
CREATE TABLE #LOC_LOCACAOTEMP (E depois rodar o seu comando de insert, por exemplo:
LOC_IN_CODIGO INT NOT NULL,
LOC_DT_LOCACAO SMALLDATETIME,
LOC_RE_VALOR NUMERIC(12,2)
);
INSERT INTO #LOC_LOCACAOTEMP VALUES (7,'2008-06-30',3.50);Para visualizar os registros da tabela temporária:
SELECT * FROM #LOC_LOCACAOTEMPATENÇÃO! Observe que essa tabela existe apenas para o usuário da atual conexão.
Tente abrir o SQL Server Management Studio Express em uma outra janela ou outra máquina e rodar o seguinte comando:
SELECT * FROM #LOC_LOCACAOTEMPIrá dar uma mensagem de erro avisando que a tabela não existe!
"Poxa! Mas eu queria criar uma tabela temporária que pudesse ser compartilhada em outra estação... Tem como?"
Sim! É possível criar uma tabela temporária compartilhável, ou como ela é chamada no SQL de TEMP GLOBAL TABLE.
Vejamos como criar a tabela temporária global utilizando o mesmo exemplo já visto:
CREATE TABLE ##LOC_LOCACAOTEMPNotou algo diferente? Não?
( LOC_IN_CODIGO INT NOT NULL,
LOC_DT_LOCACAO SMALLDATETIME,
LOC_RE_VALOR NUMERIC(12,2)
);
A única diferença é que a tabela irá iniciar por dois caracteres #.
Não esqueça: Assim que a conexão que a criou se desconectar a tabela será destruída!
Fonte: oficinadanet
SQL Server - Data Base Tunning Advisor
Postado por
Guga Anjos
,
às
quarta-feira, agosto 08, 2012
O Database Engine Tuning Advisor é uma das novas features do SQL Server 2005, ele analisa arquivos de carga de trabalho e propõe alterações no banco de dados, a fim de melhorar seu desempenho geral.
Para as alterações propostas, o Tuning Advisor também mostra o impacto que causará cada modificação.
Entre as suas capacidades, estão:
Entre as suas capacidades, estão:
- Query Optimazer, para propor índices e visões indexadas;
- Recomendação de particões;
- Análise de impacto das recomendações;
- Fornecimento de informações sobre o número de consultas e o número de índices.
Opções de ajuste:
- Quais objetos o Tuning Advisor poderá recomendar;
- Quais partições analisará;
- Quais estruturas serão mantidas no banco de dados;
- Espaço máximo para recomendações;
- Número máximo de columas por índice.
Criando analises com o DTA
Para iniciar o DTA, vá em StartAll ProgramsMicrosoft SQL Server 2005Performance ToolsDataBase Engine Tunning Advisor.
Quando o programa for iniciado, clique em File/New Connection.
Aparecerá a tela de conexão para qual servidor você deseja criar a análise.
Obs: Para o exemplo será usado um ambiente de testes.
O servidor será mostrado no canto superior direito da tela, clique com o botão direito e escolha a opção New Session.
A seguinte tela será mostrada:
Clique na guia Tunning Options e será mostrado a seguinte tela:
Partitioning strategy to employ: A opção de particionamento, verifica se existem objetos que podem ser particionados e avalia o particionamento que já existente. Disponível somente na versão Enterprise do SQL Server.
Physical Design Structure(PDS) to keep in database: Avalia a estrutura fisica do banco, abalia se existem índices clustereds e nonclustereds devem ser deletados(ele não deleta os indices), ou se existe algo divergente na no modelo como um todo. O padrão é Keep All existing PDS.
Voltando a guia General, aonde:
- Session Name: Nome da Sessão
- WorkLoad:
A origem de ondes virão os dados que serão analisados(no caso do profiler o mesmo pode ser um arquivo ou uma tabela) - DataBase for WorkLoad Analysis: Aonde serão gaurdadas as analises temporarias.
- Select DataBase and tables to tune: Lista de banco de dados e de tabelas que serão parte da analise. (sempre coloque os bancos de dados que [*] foram filtrados no profiler)
Coloque o nome no profiler e escolha o caminho aonde está o arquivo de trace do profiler. Ao clicar no Radio Button File, clique no binóculo a esquerda e será aberta a tela do Windows. Escolha o profiler que deseja analisar.
Clique em abrir.
Caso o trace tenha sido guardado em uma tabela, marque o Radio Button Table, clique no binóculo a esquerda e será aberta a tela de conexão:
Escolha qual banco, schema e tabelas estão os profilers que foram armazeandos.
Obs: O login qual abriu a sessão no DTA deve ter acesso as tabelas que estão os traces, caso contrário, uma mensagem de erro será retornada.
O preenchimento deve ficar parecido com a tela abaixo:
Clique no botão Start Analysis. Após clicar em Star Analysis, uma tela de progresso será exibida.
Na guia recomendações, é apresenta a porcentagem de melhoria da análise.
No menu Actions aparecerá a opção de aplicar as recomendações ou savá-las.
Clique em Save Recommendations
Será gerado um arquivo .sql com as recomendações.
Fonte: oficinadanet
(Java Jr - Parte VI ) - Encapsulamento
Postado por
Guga Anjos
,
às
quarta-feira, agosto 08, 2012
Encapsulamento é a técnica de transformar os objetos que compõem uma aplicação em verdadeiras caixas-pretas. De fato, se pensarmos em termos de informática, é possível para um usuário comum usar todas as funcionalidades de uma impressora sem nem mesmo entender seu funcionamento interno. Imagine o desastre que seria se todos os usuários resolvessem abrir suas impressoras para investigar o que há dentro delas.
Da mesma forma, ao contruir uma classe, devemos fazê-lo de forma que o usuário desta classe tenha acesso apenas aos métodos que permitem ler informações da classe ou fornecer os dados necessários para sua correta operação. Dados relativos ao funcionamento interno da classe devem permanecer ocultos e acessíveis somente aos métodos da própria classe.
O encapsulamento deve ser aplicado de forma a permitir que alterações na estrutura interna de uma classe não prejudique o funcionamento do código externo que a usa. Veja um exemplo:
class Pedido{
//variavel local da classe
private int codigoCliente;
//metodo set
public void setCodigoCliente(int codigo){
this.codigoCliente = codigo;//altera variavel local pelo parametro vindo
}
//metodo get
public int getCodigoCliente(){
return codigoCliente;//retorna o valor do variavel local
}
}
Fonte: arquivodecodigos
quinta-feira, 2 de agosto de 2012
Pega codigo selecionado de um JTable
Postado por
Guga Anjos
,
às
quinta-feira, agosto 02, 2012
Pega codigo selecionado de um JTable
Gente aqui eu criei uma classe onde eu pego o valor da primeira coluna de um JTable;
Eu posso usar isso pra fazer consulta, excluir, editar o cliente selecionado da minha tabela.
Como funciona, o usuario clica na tabela onde esta o "cliente" que deseja editar e automaticamente o objeto criado
vai acionar o método da classe que pegará o valor da coluna 1, com isso voce pode pegar esse valor e procurar no seu banco
de dados para poder editar esse registro.
Antes de tudo eu devo criar um objeto;
- //objeto
- clsComandosJTable cmdJTable = new clsComandosJTable();
Pega o dado selecionado;
- //Aqui ele pega o dado da linha selecionado da minha tabela, com retorno inteiro//por isso que tenho que converter para String
- jtTextField1.setText(String.valueOf(cmdJTable.PegaRegistro(jTable)));
Assinar:
Postagens (Atom)