![]() |
|||||
|
Java ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca) |
Como usar a pesquisa ou busca linear ou sequencial nos elementos de um vetor em JavaQuantidade de visualizações: 4837 vezes |
A busca linear ou sequencial, muitas vezes chamada de pesquisa linear ou sequencial, é geralmente implementada por meio de um algorítmo que varre os elementos de um coleção sequencial, começando do primeiro elemento e indo até o último. Esta busca não é tão usada quando a pesquisa binária ou hashing, por ser considerada muito lenta quando aplicado a um conjunto de dados muito grande. A busca linear ou sequencial em um vetor Java pode ser descrito pelos seguintes passos: 1) Efetua a varredura dos elementos do vetor. 2) Compara o valor do elemento atual do vetor com o valor sendo pesquisado. 3) Se o valor for encontrado, efetue o procedimento desejado com o elemento do vetor. 4) Se a varredura alcançar o último elemento do vetor e o valor pesquisado não for encontrado, exiba uma mensagem de erro ou algum outro procedimento para alertar o usuário do programa. Veja um exemplo no qual declaramos e preenchemos um vetor de int com 5 elementos e em seguida usamos um método pesquisaLinear para verificar se um determinado valor existe no vetor: package arquivodecodigos; public class Estudos{ public static void main(String a[]){ // vamos criar um vetor de 5 elementos int int[] valores = {32, 7, 21, 4, 90}; // vamos pesquisar o valor 21 int valor = 21; // vamos verifiar se o valor está no vetor int indice = pesquisaLinear(valores, valor); if(indice > -1){ System.out.println("O valor foi encontrado no índice: " + indice); } else{ System.out.println("O valor não foi encontrado."); } } // método que permite efetuar a busca linear em um vetor public static int pesquisaLinear(int[] vetor, int valor){ // percorre os elementos do vetor for(int i = 0; i < vetor.length; i++){ // o valor foi encontrado? if(vetor[i] == valor){ return i; } } // não foi encontrado? vamos retornar -1 return -1; } } Ao executarmos este código nós teremos o seguinte resultado: O valor foi encontrado no índice: 2 Veja o mesmo código sem usar um método adicional, ou seja, a busca linear é feito dentro do método main() da classe Java: package arquivodecodigos; public class Estudos{ public static void main(String a[]){ // vamos criar um vetor de 5 elementos int int[] valores = {32, 7, 21, 4, 90}; // vamos pesquisar o valor 21 int valor = 21; // vamos verifiar se o valor está no vetor int indice = -1; // não foi encontrado // percorre os elementos do vetor for(int i = 0; i < valores.length; i++){ // o valor foi encontrado? if(valores[i] == valor){ indice = i; break; } } if(indice > -1){ System.out.println("O valor foi encontrado no índice: " + indice); } else{ System.out.println("O valor não foi encontrado."); } } } |
Ruby ::: Dicas & Truques ::: Rotinas de Conversão |
Como converter uma string em um valor inteiro válido em Ruby usando a função to_iQuantidade de visualizações: 8813 vezes |
Em algumas situações nós temos que efetuar cálculos matemáticos usando valores fornecidos como texto. Para isso nós precisamos converter esses valores que chegam como string em valores numéricos válidos. Em Ruby nós podemos converter uma string em um inteiro usando a função to_i. Veja um exemplo que mostra como ler a entrada do usuário em Ruby a partir do teclado e efetuar um cálculo matemático: # Veja o uso do método to_i para converter um string # em um valor inteiro válido print "Informe o primeiro número: " num1 = (gets.chomp).to_i print "Informe o segundo número: " num2 = (gets.chomp).to_i # Exibe o resultado puts "A soma dos valores é: #{num1 + num2}" Ao executar este código Ruby nós teremos o seguinte resultado: Informe o primeiro número: 8 Informe o segundo número: 2 A soma dos valores é: 10 |
C# ::: Dicas & Truques ::: Data e Hora |
Como testar se um ano é bissexto em C# usando a função IsLeapYear() da classe DateTimeQuantidade de visualizações: 14493 vezes |
Podemos verificar se um determinando ano é bissexto usando o método IsLeapYear() da estrutura DateTime. Este método recebe um valor inteiro representando o ano com 4 dígitos e retorna um valor true ou false. Veja o exemplo:static void Main(string[] args){ // vamos verificar se o ano 2008 // é bissexto int ano = 2008; if(DateTime.IsLeapYear(ano)){ Console.WriteLine("O ano informado é bissexto"); } else{ Console.WriteLine("O ano informado NÃO é bissexto"); } // pausa o programa Console.ReadKey(); } Este método pode disparar uma exceção ArgumentOutOfRangeException se o valor do ano for menor que 1 ou maior que 9999. |
Java ::: Reflection (introspecção) e RTI (Runtime Type Information) ::: Passos Iniciais |
Saiba o que é Reflexão (Reflection) em Java - Como usar Reflexão (Reflection) na linguagem Java - RevisadoQuantidade de visualizações: 18460 vezes |
Reflection (ou Reflexão), também conhecida como RTI (Runtime Type Information) em algumas linguagens, é um mecanismo para descobrir dados a respeito de um programa em tempo de execução. Reflection em Java nos permite descobrir informações sobre atributos ou membros (campos), métodos e construtores de classes. Podemos também operar nos campos e métodos que descobrimos. A Reflection permite o que é normalmente chamada de programação dinâmica em Java. A Reflection em Java é conseguida usando a Java Reflection API. Esta API consiste de classes nos pacotes java.lang e java.lang.reflect. Antes de prosseguirmos, veja um exemplo de como podemos listar todos os métodos públicos da classe Object: package arquivodecodigos; import java.lang.reflect.*; public class Estudos{ public static void main(String args[]){ // vamos carregar a classe Object try{ Class c = Class.forName("java.lang.Object"); // obtém os nomes dos métodos Method[] metodos = c.getMethods(); // exibe o nome de cada método for(int i = 0; i < metodos.length; i++){ System.out.println(metodos[i].getName()); } } catch(ClassNotFoundException e){ System.out.println(e.getMessage()); } System.exit(0); } } Ao executarmos este código nós teremos o seguinte resultado: wait wait wait equals toString hashCode getClass notify notifyAll Eis uma lista das coisas que podemos fazer com a Java Reflection API: 1) Determinar a classe de um objeto; 2) Obter informações sobre os modificadores, campos (atributos), métodos, construtores e superclasses de uma classe; 3) Descobrir quais constantes e declarações de métodos pertencem a uma interface; 4) Criar uma instância de uma classe cujo nome não sabemos até o tempo de execução; 5) Obter e definir o valor do campo de um objeto; 6) Invocar um método em um objeto; 7) Criar um novo array, cujo tamanho e tipo de dados só saberemos em tempo de execução. A Java Reflection API é geralmente usada para criar ferramentas de desenvolvimento tais como debuggers, class browsers e construtores de GUI. Geralmente, neste tipo de ferramentas, precisamos interagir como classes, objetos, métodos e campos, e não sabemos quais em tempo de compilação. Assim, a aplicação deve, dinamicamente, encontrar e acessar estes itens. Esta dica foi revisada e testada no Java 8. |
Java ::: Dicas & Truques ::: Expressões Regulares |
Como usar expressões regulares em Java - Expressões regulares para iniciantesQuantidade de visualizações: 48725 vezes |
O suporte a expressões regulares ou regex tem sido parte da plataforma Java desde a versão 1.4. Contidas no pacote java.util.regex, as classes regex suportam a comparação de padrões de forma similar à linguagem Perl, mas, usando classes e a sintáxe da linguagem Java. Todo o pacote se limita a três classes: Pattern, Matcher e PatternSyntaxException. A versão 1.5 introduziu a interface MatchResult. Use as duas classes Pattern e Matcher juntas. Defina e expressão regular com a classe Pattern. Então use a classe Matcher para verificar o padrão em relação à fonte de entrada. Uma exceção é lançada quando o padrão tem um erro de sintáxe na expressão. Estas classes não possuem construtores. Em vez disso, compilamos uma expressão regular para obter um padrão, e então usamos o Pattern retornado para obter seu Matcher baseado na fonte de entrada: Pattern pattern = Pattern.compile(<regular expression>); Matcher matcher = pattern.matcher(<input source>); Uma vez que tenhamos um Matcher, tipicamente processamos a fonte de entrada a fim de encontrarmos as similaridades contidas. Usa-se o método find() para localizar similaridades do padrão na fonte de entrada. Cada chamada a find() continua a partir do ponto onde a última chamada parou, ou na posição 0 para a primeira chamada. As similaridades encontradas são retornadas pelo método group(): while(matcher.find()){ System.out.printf"Found: \"%s\" from %d to %d.%n", matcher.group(), matcher.start(), matcher.end()); } O código a seguir mostra um programa básico de expressões regulares, que pede ao usuário que informe tanto a expressão regular quanto a string que será comparada: import java.util.regex.*; import java.io.*; public class Regex{ public static void main(String args[]){ Console console = System.console(); // Obtém a expressão regular String regex = console.readLine("%nInforme a expressão: "); Pattern pattern = Pattern.compile(regex); // Obtém a entrada String source = console.readLine("Informe a entrada: "); Matcher matcher = pattern.matcher(source); // Mostra as similaridades while(matcher.find()){ System.out.printf("Encontrado: \"%s\" de %d à %d.%n", matcher.group(), matcher.start(), matcher.end()); } } } Mas, o que realmente é uma expressão regular? A classe Pattern fornece detalhes mais profundos, mas, basicamente uma expressão regular é uma sequência de caracteres que tenta encontrar semelhanças em outra sequencia de caracteres. Por exemplo, podemos procurar o padrão literal de "eles" duplos "ll" na string "Hello, World". O programa anterior encontraria o padrão "ll" começando na posição 2 e terminando na posição 4. A posição final é a posição do próximo caractere depois do fim do padrão de semelhança. Strings de padrão como "ll" não são muito interessantes, relatando somente onde elas estão literalmente na fonte de entrada. Padrões de expressões regulares podem incluir meta-caracteres especiais. Meta-caracteres fornecem habilidades poderosas de comparação. É possível usar os 15 caracteres "([{\^-$|]})?*+." como meta-caracteres em expressões regulares. Alguns meta-caracteres indicam o agrupamento de caracteres. Por exemplo, os caracteres de colchetes [ e ] permitem especificar um grupo de caracteres nos quais uma similaridade ocorre se qualquer um dos caracteres entre colchetes for encontrado no texto. Por exemplo, o padrão "co[cl]a" retornará similaridade com "coca" e "cola". Ele não se igualará a "cocla", uma vez que [] é usado para igualar apenas um caractere. Veremos mais sobre quantificadores mais adiante, quando quisermos encontrar alguma coisa múltiplas vezes. Além de tentar encontrar caracteres individuais, podemos usar os colchetes [ e ] para igualar uma faixa de caracteres, tais como as letras de j-z, definidas como [j-z]. Isso pode também ser combinado com um literal string, como em "foo[j-z]" que encontraria "fool", mas não encontraria "food", uma vez que l está na faixa de j à z e d não está. Podemos também usar o caractere ^ para representar negação, com um literal string ou uma faixa. O padrão "foo[^j-z]" encontrará palavras que começam como foo mas que não terminem com uma letra de j à z. Assim a string food agora seria encontrada. Faixas múltiplas podem ser combinadas como em [a-zA-Z] para informar as letras de a à z maiúsculas ou minúsculas. Enquanto literais strings são ótimos como primeira lição sobre expressões regulares, as coisas mais típicas que a maioria das pessoas usam em expressões regulares são as classes de caracteres pré-definidos. É aqui que os meta-caracteres . e \ são importantes. O ponto . é usado para representar qualquer caractere. Assim, a expressão regular ".oney" encontraria money e honey, e qualquer outro conjunto de 5 caracteres que terminem em oney. O caractere \ por sua vez, é usado com outros caracteres para representar um conjunto completo de letras. Por exemplo, enquanto podemos usar [0-9] para representar um conjunto de dígitos, podemos também usar \d. Podemos ainda usar [^0-9] para representar um conjunto de caracteres que não sejam dígitos. Ou podemos usar o caractere \D. Todas estas strings de classes de caracteres são definidas na documentação da plataforma Java para a classe Pattern, uma vez que elas não são fáceis de serem lembradas. Eis aqui um sub-conjunto de algumas classes de caracteres pré-definidos especiais: * \s -- whitespace (espaço em branco) * \S -- non-whitespace (não seja espaço em branco) * \w -- word character [a-zA-Z0-9] (caractere de palavra) * \W -- non-word character (não caractere de palavra) * \p{Punct} -- punctuation (pontuação) * \p{Lower} -- lowercase [a-z] (minúsculas) * \p{Upper} -- uppercase [A-Z] (maiúsculas) Se você quiser usar uma destas strings no programa Regex mostrado acima, você as define como mostrado. \s se iguala ao espaço em branco. Se, contudo, você quiser definir a expressão regular via código, você precisa se lembrar que o caractere \ tem tratamento especial. Devemos escapar a string no código fonte: String regexString = "\\s"; Aqui, os caracteres \\ representam uma única barra invertida na string. Há outras strings especiais para representar literais strings: * \t -- tab (tabulação) * \n -- newline (nova linha) * \r -- carriage return (retorno de carro) * \xhh -- hex character 0xhh (caractere hexadecimal) * \uhhhh -- hex character 0xhhhh (caractere hexadecimal) Os quantificadores tornam as expressões regulares mais interessantes, pelo menos quando combinados com outras expresssões tais como classes de caracteres. Por exemplo, se quisermos encontrar uma string de três caracteres de a-z, poderíamos usar o padrão "[a-z][a-z][a-z]". Mas não precisamos fazer isso. Em vez de repetir a string, adicionamos um quantificador após o padrão. Para este exemplo específico, "[a-z][a-z][a-z]" pode ser representado como "[a-z]{3}". Para uma quantidade específica, o número vai dentro das chaves {}. Podemos também usar ?, * ou + para representar zero ou uma vez, zero ou mais vezes, ou uma ou mais vezes, respectivamente. O padrão [a-z]? encontra um caractere de a-z zero ou uma vez. O padrão [a-z]* encontra um caractere de a-z zero ou mais vezes. O padrão [a-z]+ encontra um caractere de a-z uma ou mais vezes. Use quantificador com cuidado, prestando muita atenção aos quantificadores que permitem zero similaridades. Quando usamos as chaves {} como quantificadores, devemos definir uma faixa. {3} significa exatamente 3 vezes, mas poderíamos dizer {3,}, que define no mínimo três vezes. O quantificador {3,5} encontra um padrão de 3 a 5 vezes. Há mais sobre expressões regulares que o que mostramos aqui. A arte de usá-las envolve descobrir a expressão regular correta para a situação atual. Tente diferente expressões com o programa Regex e veja se ele encontra o que você está esperando. Certifique-se de tentar diferentes quantificadores para entender realmente suas diferenças. Observe que quantificadores geralmente tentam incluir o maior número de caracteres para uma similaridade possível. |
Java ::: Dicas & Truques ::: Formulários e Janelas |
Java Swing - Como minimizar uma janela JFrame ao clicar em um botão JButtonQuantidade de visualizações: 11834 vezes |
Nesta dica mostrarei como usar o método setExtendedState() da classe JFrame do Java Swing para minimizar uma janela JFrame no evento click de um JButton. Veja o código completo para o exemplo: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Estudos extends JFrame{ public Estudos() { super("A classe JFrame"); Container c = getContentPane(); c.setLayout(new FlowLayout(FlowLayout.LEFT)); JButton btn = new JButton("Minimizar"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ setExtendedState(ICONIFIED); } } ); // 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); } } |
C ::: C para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como somar os elementos da diagonal principal de uma matriz em CQuantidade de visualizações: 4719 vezes |
A Matriz quadrada é um tipo especial de matriz que possui o mesmo número de linhas e o mesmo número de colunas, ou seja, dada uma matriz Anxm, ela será uma matriz quadrada se, e somente se, n = m, onde n é o número de linhas e m é o número de colunas. Em geral as matrizes quadradas são chamadas de Matrizes de Ordem n, onde n é o número de linhas e colunas. Dessa forma, uma matriz de ordem 4 é uma matriz que possui 4 linhas e quatro colunas. Toda matriz quadrada possui duas diagonais, e elas são muito exploradas tanto na matemática quanto na construção de algorítmos. Essas duas diagonais são chamadas de Diagonal Principal e Diagonal Secundária. A diagonal principal de uma matriz quadrada une o seu canto superior esquerdo ao canto inferior direito. Veja: ![]() Nesta dica veremos como calcular a soma dos valores dos elementos da diagonal principal de uma matriz usando C. Para isso, só precisamos manter em mente que a diagonal principal de uma matriz A é a coleção das entradas Aij em que i é igual a j. Assim, tudo que temos a fazer é converter essa regra para código C. Veja um trecho de código C completo no qual pedimos para o usuário informar os elementos da matriz e em seguida mostramos a soma dos elementos da diagonal superior: #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]){ // vamos declarar e construir uma matriz de três linhas // e três colunas int linhas = 3, colunas = 3; int matriz[linhas][colunas]; // guarda a soma dos elementos na diagonal principal int soma_diagonal = 0; int i, j; // vamos ler os valores para os elementos da matriz for(i = 0; i < linhas; i++){ // linhas for(j = 0; j < colunas; j++){ // colunas printf("Informe o valor para a linha %d e coluna %d: " , i, j); scanf("%d", &matriz[i][j]); } } // vamos mostrar a matriz da forma que ela // foi informada printf("\n"); // percorre as linhas for(i = 0; i < linhas; i++){ // percorre as colunas for(j = 0; j < colunas; j++){ printf("%d ", matriz[i][j]); } // passa para a próxima linha da matriz printf("\n"); } // vamos calcular a soma dos elementos da diagonal // principal for(i = 0; i < linhas; i++){ for(j = 0; j < colunas; j++){ if(i == j){ soma_diagonal = soma_diagonal + matriz[i][j]; } } } // finalmente mostramos a soma da diagonal principal printf("\nA soma dos elementos da diagonal principal é: %d" , soma_diagonal); printf("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: Informe o valor para a linha 0 e coluna 0: 3 Informe o valor para a linha 0 e coluna 1: 7 Informe o valor para a linha 0 e coluna 2: 9 Informe o valor para a linha 1 e coluna 0: 2 Informe o valor para a linha 1 e coluna 1: 4 Informe o valor para a linha 1 e coluna 2: 1 Informe o valor para a linha 2 e coluna 0: 5 Informe o valor para a linha 2 e coluna 1: 6 Informe o valor para a linha 2 e coluna 2: 8 3 7 9 2 4 1 5 6 8 A soma dos elementos da diagonal principal é: 15 |
C ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como testar se uma matriz é uma matriz identidade usando CQuantidade de visualizações: 1884 vezes |
Seja M uma matriz quadrada de ordem n. A matriz M é chamada de Matriz Identidade de ordem n (indicada por In) quando os elementos da diagonal principal são todos iguais a 1 e os elementos restantes são iguais a zero. Para melhor entendimento, veja a imagem de uma matriz identidade de ordem 3, ou seja, três linhas e três colunas: ![]() Veja um código C completo no qual nós declaramos uma matriz quadrada de ordem 3, pedimos para o usuário informar os valores de seus elementos e no final informamos se a matriz é uma matriz identidade ou não: #include <stdio.h> #include <stdlib.h> #include <locale.h> int main(int argc, char *argv[]){ setlocale(LC_ALL,""); // para acentos do português int n = 3; // ordem da matriz quadrada int matriz[n][n]; // matriz quadrada int i, j, linha, coluna; int identidade = 1; // vamos pedir para o usuário informar os elementos da matriz for (i = 0; i < n; i++){ for (j = 0; j < n; j++) { printf("Elemento na linha %d e coluna %d: ", (i + 1), (j + 1)); scanf("%d", &matriz[i][j]); } } // agora verificamos se a matriz é uma matriz identidade for(linha = 0; linha < n; linha++){ for(coluna = 0; coluna < n; coluna++){ if(matriz[linha][coluna] != 1 && matriz[coluna][linha] != 0){ identidade = 0; break; } } } // agora mostramos a matriz lida printf("\n"); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { printf("%d ", matriz[i][j]); } printf("\n"); } if (identidade){ printf("\nA matriz informada é uma matriz identidade."); } else{ printf("\nA matriz informada não é uma matriz identidade."); } printf("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: Elemento na linha 1 e coluna 1: 1 Elemento na linha 1 e coluna 2: 0 Elemento na linha 1 e coluna 3: 0 Elemento na linha 2 e coluna 1: 0 Elemento na linha 2 e coluna 2: 1 Elemento na linha 2 e coluna 3: 0 Elemento na linha 3 e coluna 1: 0 Elemento na linha 3 e coluna 2: 0 Elemento na linha 3 e coluna 3: 1 1 0 0 0 1 0 0 0 1 A matriz informada é uma matriz identidade. |
VB.NET ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de VB.NET - Um laço for que solicita ao usuário 10 números inteiros e mostra o menor e o maior valor informadoQuantidade de visualizações: 592 vezes |
Pergunta/Tarefa: Escreva um programa VB.NET que usa o laço for para solicitar ao usuário que informe 10 números inteiros. Em seguida mostre o maior e o menor valor lido. Não é permitido usar vetores ou matrizes (arrays). Sua saída deve ser parecida com: Informe o 1º valor: 5 Informe o 2º valor: 1 Informe o 3º valor: 20 Informe o 4º valor: 6 Informe o 5º valor: 3 Informe o 6º valor: 4 Informe o 7º valor: 7 Informe o 8º valor: 12 Informe o 9º valor: 9 Informe o 10º valor: 8 O maior valor lido foi: 20 O menor valor lido foi: 1 Veja a solução comentada deste exercício usando a linguagem VB.NET: Imports System Module Program Sub Main(args As String()) Dim valor As Integer ' guarda o valor lido Dim maior, menor As Integer ' variáveis que guardarão ' o maior e o menor valor lido ' vamos pedir ao usuário que informe 10 valores inteiros For i As Integer = 1 To 10 Step 1 Console.Write("Informe o " & i & "º valor: ") valor = Integer.Parse(Console.ReadLine()) ' esta é a primeira iteração do laço? se for vamos assumir que o ' maior e menor valor lido são o primeiro valor informado If i = 1 Then maior = valor menor = valor Else ' não é a primeira iteração ' vamos verificar se é maior que o valor atual da variável maior If valor > maior Then maior = valor End If ' vamos verificar se é menor que o valor atual da variável menor If valor < menor Then menor = valor End If End If Next ' vamos exibir o maior e o menor valor lido Console.WriteLine(vbCrLf & "O maior valor lido foi: " & maior) Console.WriteLine("O menor valor lido foi: " & menor) Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...") ' pausa o programa Console.ReadKey() End Sub End Module |
Java ::: Java + MySQL ::: Passos Iniciais |
Java MySQL - Como efetuar uma conexão Java + JDBC + MySQL usando o NetBeans IDEQuantidade de visualizações: 8363 vezes |
Se sua intenção é usar a linguagem Java em combinação com o banco de dados MySQL, o primeiro passo é aprender como se conectar a este banco de dados usando JDBC (Java Database Connectivity). Para isso, siga atentamente os passos abaixo: a) Pesquise e baixe o driver Sun Microsystem's JDBC Driver for MySQL. A versão mais recente deste driver é chamada de MySQL Connector/J e pode ser baixada no endereço http://dev.mysql.com/downloads. Durante a autoria deste artigo, o nome do arquivo a ser baixado era semelhante à mysql-connector-java-5.1.10.zip. b) Depois de descompactar o arquivo baixado, adicione uma referência para o Jar mysql-connector-java-5.1.10-bin.jar. Se você estiver usando NetBeans, crie uma nova aplicação. Em seguida clique com o botão direito em Bibliotecas -> Adicionar Jar/pasta e localize o jar. Em seguida clique o botão Open. c) Hora de efetuar uma conexão com o banco de dados. Para este exemplo eu fiz uma conexão com o MySQL 5.0 (o nome da base de dados que usei foi "estudos"). Veja o código: package estudosjavamysql; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class EstudosJavaMySQL{ public static void main(String[] args){ // strings de conexão String databaseURL = "jdbc:mysql://localhost/estudos"; String usuario = "root"; String senha = "osmar1234"; String driverName = "com.mysql.jdbc.Driver"; try { Class.forName(driverName).newInstance(); Connection conn = DriverManager.getConnection(databaseURL, usuario, senha); System.out.println("Conexão obtida com sucesso."); } catch (SQLException ex) { System.out.println("SQLException: " + ex.getMessage()); System.out.println("SQLState: " + ex.getSQLState()); System.out.println("VendorError: " + ex.getErrorCode()); } catch (Exception e) { System.out.println("Problemas ao tentar conectar com o banco de dados: " + e); } } } Execute a aplicação. Se tudo correu bem você verá o resultado: Conexão obtida com sucesso. |
Nossas 20 dicas & truques de programação mais populares |
JavaScript - Como retornar o tamanho de uma string em JavaScript usando a propriedade length do objeto String Python - Exercício Resolvido de Python NumPy - Como somar duas matrizes usando a biblioteca NumPy do Python Java - Como adicionar conteúdo a um arquivo texto existente em Java usando BufferedWriter e FileWriter |
Você também poderá gostar das dicas e truques de programação abaixo |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |