Java ::: Java + MySQL ::: Metadados da Base de Dados (Database Metadata)

Java MySQL - Como obter os tipos de tabelas suportados pelo MySQL usando o método getTableTypes() da classe DatabaseMetaData

Quantidade de visualizações: 5471 vezes
Em algumas situações precisamos obter os tipos de tabelas suportados por uma determinada versão do MySQL. Isso pode ser feito com uma chamada ao método getTableTypes() da classe com.mysql.jdbc.DatabaseMetaData. Um objeto desta classe é obtido a partir do método getMetaData() da interface Connection (para o driver com.mysql.jdbc.Driver, é claro).

A assinatura do método getTableTypes() é:

public ResultSet getTableTypes() throws SQLException 
O retorno do método é um ResultSet contendo os tipos de tabelas, tais como "TABLE", "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS" e "SYNONYM".

Vamos ver um exemplo? Veja um trecho de código que usei para listar os tipos de tabelas disponíveis no MySQL 5.0:

package estudosbancodados;

import java.sql.*;

public class EstudosBancoDados{
  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);

      // vamos obter um objeto da classe com.mysql.jdbc.DatabaseMetaData
      DatabaseMetaData dbmd = conn.getMetaData();

      // vamos obter os tipos de tabelas suportadas por esta versão do MySQL
      ResultSet tiposTabelas = dbmd.getTableTypes();
      while(tiposTabelas.next()){
        System.out.println(tiposTabelas.getString("TABLE_TYPE"));
      }
      
      // vamos fechar o ResultSet
      tiposTabelas.close();
    }
    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);
    }
  }
}

O resultado da execução deste código foi:

TABLE
VIEW
LOCAL TEMPORARY


C# ::: Namespace System.Windows.Forms ::: Formulários e Janelas

Como definir uma imagem de fundo para um formulário C# Windows Forms usando a propriedade BackgroundImage

Quantidade de visualizações: 14227 vezes
Formulários Windows Forms podem conter uma imagem de fundo. Isso pode ser feito por meio da propriedade BackgroundImage.

Em tempo de design, só precisamos clicar no formulário, acessar a janela de propriedades (Properties) e modificar o valor da propriedade BackgroundImage. Quando clicamos no botão ao lado do valor da propriedade, temos acesso à janela Select Resource. Deixe a opção Project resource file marcada e clique o botão Import. Selecione a imagem que você deseja usar e clique o botão OK. Imediatamente a imagem importada será aplicada ao fundo do formulário.

É importante observar que esta forma de adicionar a imagem de fundo evita que tenhamos que enviar a imagem juntamente com nossa aplicação. Como a imagem importada fará parte do Resources da aplicação, ela será compilada e fará parte do .exe resultante.

É possível também carregar uma imagem e colocá-la como fundo para um formulário em tempo de execução. Veja um trecho de código no qual carregamos uma imagem JPG localizada em uma pasta imagens no mesmo diretório do .exe da aplicação:

private void button2_Click(object sender, EventArgs e){
  // using System.IO;
  this.BackgroundImage = new Bitmap(Path.GetDirectoryName(
    Application.ExecutablePath) + @"\imagens\foto.jpg");
}



VB.NET ::: Desafios e Lista de Exercícios Resolvidos ::: VB.NET Básico

Exercício Resolvido de VB.NET - Como ler um número inteiro e imprimir seu sucessor e seu antecessor em VB.NET

Quantidade de visualizações: 727 vezes
Pergunta/Tarefa:

Escreva um programa VB.NET para ler um número inteiro e imprimir seu sucessor e seu antecessor. O usuário poderá informar um valor positivo ou negativo.

Sua saída deverá ser parecida com:

Informe um número inteiro: 16
O número informado foi: 16
O antecessor é 15
O sucessor é: 17
Resposta/Solução:

Veja a resolução comentada deste exercício usando VB.NET:

Imports System

Module Program
  Sub Main(args As String())
    ' vamos pedir ao usuário que informe um número inteiro
    Console.Write("Informe um número inteiro: ")
    Dim numero As Integer = Integer.Parse(Console.ReadLine())

    ' vamos calcular o sucessor do número informado
    Dim sucessor As Integer = numero + 1

    ' vamos calcular o antecessor do número informado
    Dim antecessor As Integer = numero - 1

    ' e agora mostramos os resultados
    Console.WriteLine("O número informado foi: {0}", numero)
    Console.WriteLine("O antecessor é {0}", antecessor)
    Console.WriteLine("O sucessor é: {0}", sucessor)

    Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...")
    ' pausa o programa
    Console.ReadKey()
  End Sub
End Module



JavaScript ::: Dicas & Truques ::: Strings e Caracteres

Como converter uma string para letras maiúsculas em JavaScript usando a função toUpperCase() do objeto String - JavaScript para iniciantes

Quantidade de visualizações: 105 vezes
A função toUpperCase() do objeto String da linguagem JavaScript nos permite transformar todos os caracteres de uma palavra, frase ou texto em letras maiúsculas.

Veja o código completo para o exemplo:

<html>
<head>
<title>Estudando JavaScript</title>
</head>
<body>
 
<script type="text/javascript">
  var frase = "Veja Esta Frase.";
  document.writeln(frase);  
  frase = frase.toUpperCase();
  document.writeln("<br>" + frase);
</script>
 
</body>
</html>

Ao executarmos este código nós teremos o seguinte resultado:

Veja Esta Frase.
VEJA ESTA FRASE.


Delphi ::: Win32 API (Windows API) ::: Formulários e Janelas

Como usar a função GetWindow() da API do Windows para pesquisar e retornar um handle para uma janela baseado em seu título completo ou parcial usando Delphi

Quantidade de visualizações: 15069 vezes
Em algumas situações nós precisamos pesquisar e retornar um handle para uma janela baseado em seu título completo ou parcial, ou seja, gostaríamos de encontrar uma janela que contenha a palavra "sexo".

Isso pode ser feito com o auxílio da função GetWindow() da API do Windows. Veja:

// função personalizada que permite encontrar uma janela
// baseado em seu título
function FindWindowByTitle(WindowTitle: string): Hwnd;
var
  NextHandle: Hwnd;
  NextTitle: array[0..255] of char;
begin
  // vamos obter a primeira janela
  NextHandle := GetWindow(Application.Handle, GW_HWNDFIRST);

  while NextHandle > 0 do
    begin
      // vamos obter o título da janela
      GetWindowText(NextHandle, NextTitle, 256);

      // a janela contém o título que procuramos?
      if Pos(Uppercase(WindowTitle), UpperCase(String(NextTitle))) <> 0 then
         begin
           Result := NextHandle;
           Exit;
         end
      else
        // vamos tentar a próxima janela
        NextHandle := GetWindow(NextHandle, GW_HWNDNEXT);
    end;

    // não encontramos nada? vamos retornar um handle nulo
    Result := 0;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  handle: hwnd;
begin
  // vamos localizar e fechar a Calculadora do Windows
  // ou qualquer janela que contenha o texto "Calculadora"
  handle := FindWindowByTitle('Calculadora');
  if handle <> 0 then // encontramos a janela? vamos fechá-la
    SendMessage(handle, WM_SYSCOMMAND, SC_CLOSE, 0)
  else
    ShowMessage('A janela pesquisada não foi encontrada');
end;

Neste exemplo nós pesquisamos uma janela que contenha a palavra "Calculadora" em seu título. Se encontrada, nós a fechamos com o auxílio da função SendMessage() e a mensagem WM_SYSCOMMAND com o valor SC_CLOSE para o parâmetro wParam.

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


PHP ::: Dicas & Truques ::: Programação Orientada a Objetos

Programação Orientada a Objetos em PHP - Aprenda a criar e usar métodos e classes abstratas em PHP

Quantidade de visualizações: 10833 vezes
À medida que começamos a usar programação orientada a objetos em PHP algumas situações interessantes podem surgir, tais como o uso de métodos e classes abstratas.

As classes e métodos abstratos podem ser usados por uma série de razões. Eis as que considero mais importantes:

a) - Um classe abstrata não permite que criemos novas instâncias da mesma. Veja:

<?
  // Uma classe Boleto abstrata
  abstract class Boleto{

  }

  // vamos criar um novo objeto desta classe
  $b = new Boleto();
?>


Ao executarmos este código teremos a seguinte mensagem de erro:

Fatal error: Cannot instantiate abstract class Boleto in ...

A vantagem de termos uma classe que não pode ser instanciada é que podemos usá-la como classe base em um código envolvendo poliformismo (no momento que escrevo este artigo não vejo como implementar polimorfismo em PHP. Me pergunto se isso é possível em linguagens de tipos dinâmicos).

b) - Qualquer classe que contenha um ou mais métodos abstratos também precisa se declarar abstrata. Como um método abstrato não pode conter implementação, ao forçar a classe a ser abstrata também, as classes derivadas terão a obrigação de implementar tal método. Veja um trecho de código no qual criamos uma classe normal contendo um método abstrato:

<?
  // Uma classe Boleto não-abstrata
  class Boleto{
    // um método abstrato
    public abstract function imprimir($dados);
  }
?>

Ao executarmos este código teremos a seguinte mensagem de erro:

Fatal error: Class Boleto contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Boleto::imprimir) in ...

Ao marcarmos a classe como abstract esta mensagem de erro desaparecerá.

c) - Uma classe que herda de uma classe derivada deve, obrigatoriamente, fornecer implementação para todos os métodos abstratos herdados. Veja o trecho de código no qual temos uma classe Boleto e uma classe BoletoBradesco:

<?
  // Uma classe Boleto abstrata
  abstract class Boleto{
    // um método abstrato
    public abstract function imprimir($dados);
  }
 
  // vamos herdar da classe Boleto
  class BoletoBradesco extends Boleto{

  }
?>

A mensagem de erro aqui é a mesma quando temos métodos abstratos em uma classe mas não a declaramos como abstrata. Basta fornecer a implementação para o método imprimir e a mensagem de erro desaparece:

<?
  // Uma classe Boleto abstrata
  abstract class Boleto{
    // um método abstrato
    public abstract function imprimir($dados);
  }
 
  // vamos herdar da classe Boleto
  class BoletoBradesco extends Boleto{
    public function imprimir($dados){
      echo "Imprimindo o boleto: " . $dados; 
    }
  }

  // vamos criar um objeto da classe BoletoBradesco
  $b = new BoletoBradesco();
  // vamos imprimir o boleto
  $b->imprimir("Dados do boleto");
?>

d) - Um método marcado como abstract não pode conter implementação, ou seja, a implementação será feita pelas classes derivadas. Veja:

<?
  // Uma classe Boleto abstrata
  abstract class Boleto{
    // um método abstrato que não deveria conter implementação
    public abstract function imprimir($dados){
      echo "Isso vai dar um erro daqueles!";
    }
  }
?>

Ao tentarmos executar este trecho de código teremos a seguinte mensagem de erro:

Fatal error: Abstract function Boleto::imprimir() cannot contain body in ...

Bastará remover a implementação do método que a mensagem de erro desaparecerá.


PHP ::: Sistemas Completos com Código Fonte ::: Projetos PHP com Código Fonte - Códigos Fonte PHP

Como criar um Cadastro de Usuários em PHP e MySQL - Cadastrar, Listar, Editar, Exluir e Pesquisar - Código fonte completo

Quantidade de visualizações: 7539 vezes
Sobre este projeto PHP e MySQL

Quando se está dando os primeiros passos em PHP e banco de dados, principalmente no MySQL, é sempre uma boa idéia desenvolver aplicações do mundo real para ver como as coisas realmente funcionam. É muito difícil aprender uma linguagem de programação ou um banco de dados sem visualizar situações nas quais esse conhecimento pode ser aplicado.

Veja na figura abaixo o projeto que desenvolvemos para você nesta dica:



O que vou aprender neste código fonte?

Escrevemos uma aplicação PHP e MySQL bem simples, sem muita formatação e sem firulas de programador exibido, apenas com o propósito de ensiná-lo(a) como gravar, listar, editar, excluir e pesquisar dados em uma tabela MySQL a partir de uma aplicação PHP.

Como você pode ver na imagem acima, o cadastro é muito simples: nome, e-mail, idade e sexo. Porém, não se deixe levar pela simplicidade, pois este é o conhecimento básico para se desenvolver programas PHP e MySQL mais avançados. Isso quer dizer que, uma vez dominado as técnicas ensinadas aqui, você será capaz de criar sistemas para folha de pagamento em PHP, gestão financeira, contas a pagar e a receber, gestão de documentos em PHP, muita coisa mesmo.

Por meio de um código simples e bem documentado, você verá como disparar os comandos SQL INSERT, DELETE, UPDATE e SELECT a partir de seus códigos PHP. Mostramos também como escrever uma função tratar_entrada() para que os dados vindos de formulários POST ou GET sejam devidamente tratados antes de entrar na sua aplicação. Isso garante maior segurança e também evita que usuários mal intencionados fiquem tentando injetar código nas suas aplicações usando SQL Injection.

Por fim, você também aprenderá como escrever páginas PHP separadas para representar o topo da aplicação, o menu do lado e o rodapé, de forma que você não precise atualizar todas estas partes sempre que decidir mudar a cor ou o layout da aplicação.

Como posso obter este código fonte?

Para adquirir este código fonte, me chama no WhatsApp ou no e-mail indicando na lateral do site. Se necessário podemos combinar e faço a instalação na sua máquina ou no seu domínio. Podemos também combinar as alterações ou a adição de novas funcionalidades.

Não se esqueça: Uma boa forma de estudar o código é fazendo pequenas alterações e rodando para ver os resultados. Outra opção é começar um projeto PHP do zero e ir adicionando trechos do código fonte para melhor entendimento de suas partes.


C# ::: Coleções (Collections) ::: List<T>

Como remover um elemento em uma determinada posição de uma List<T> do C# usando a função RemoveAt()

Quantidade de visualizações: 9789 vezes
Em algumas situações gostaríamos de remover um elemento em uma determinada posição da List<T>. Para isso podemos usar o método RemoveAt(). Veja sua assinatura:

public void RemoveAt(
  int index
)


Note que só precisamos fornecer o índice do elemento a ser removido. Veja um exemplo:

static void Main(string[] args){
  // vamos criar um objeto da classe List<T>
  List<int> valores = new List<int>();

  // vamos inserir quatro valores na lista
  valores.Add(5);
  valores.Add(2);
  valores.Add(6);
  valores.Add(9);

  // vamos usar o laço foreach para percorrer os elementos na lista
  Console.WriteLine("Elementos na lista:");
  foreach(int v in valores){
    Console.WriteLine(v);    
  }

  // vamos remover o terceiro elemento (com índice 2)
  valores.RemoveAt(2);

  // vamos usar o laço foreach para percorrer os elementos na lista novamente
  Console.WriteLine("Elementos na lista:");
  foreach(int v in valores){
    Console.WriteLine(v);    
  }

  // vamos pausar a execução
  Console.ReadKey();
}

Ao executarmos este código teremos o seguinte resultado:

Elementos na lista:
5
2
6
9
Elementos na lista:
5
2
9

Este método pode lançar uma exceção do tipo ArgumentOutOfRangeException se o índice fornecido for menor que 0 ou igual ou superior à quantidade de itens na lista.


Ruby ::: Dicas & Truques ::: Data e Hora

Como retornar os minutos em Ruby a partir de um objeto da classe Time usando a função min

Quantidade de visualizações: 6306 vezes
Muitas vezes precisamos obter os minutos de uma determinada hora a partir de um determinado objeto Time. Para isso a classe Time nos fornece o método min. Este método retorna um número inteiro na faixa 0..59.

Veja uma demonstração de como usar este método no trecho de código a seguir:

# constrói um objeto Time com a data e hora atual
agora = Time.now

# obtém os minutos
minutos = agora.min

# exibe o resultado
puts "Os minutos são: " + minutos.to_s

Ao executar este código Ruby nós teremos o seguinte resultado:

Os minutos são: 7


C# ::: Fundamentos da Linguagem ::: Estruturas de Controle

Como usar a instrução switch do C#

Quantidade de visualizações: 26507 vezes
A instrução switch da linguagem C# é útil quando queremos testar condições nas quais o uso de if..else if..else poderia ser considerado excessivo ou não aplicável. Esta instrução recebe uma variável como argumento e testa seu valor por meio de cláusulas case.

Veja o exemplo:

static void Main(string[] args){
  Console.Write("Digite um número inteiro: ");
  int valor = int.Parse(Console.ReadLine());

  switch(valor){
    case 1:
      Console.WriteLine("Você digitou o valor 1");
      break;
    case 2:
      Console.WriteLine("Você digitou o valor 2");
      break;
    case 3:
      Console.WriteLine("Você digitou o valor 3");
      break;
    default:
      Console.WriteLine("Valor incorreto.");
      break;
  }

  Console.WriteLine("\n\nPressione uma tecla para sair...");
  Console.ReadKey();
}


Note que a instrução switch possui uma cláusula default para os casos nos quais o valor da variável não estiver presente em nenhuma das cláusulas case. Observe também o uso da instrução break para evitar a avaliação das cláusulas seguintes àquela na qual o valor desejado foi encontrado.

Qualquer objeto, valor ou tipo referência que puder ser convertido em um valor inteiro, caractere, enumeração (enum) ou string pode ser usado como argumento para uma instrução switch. Veja:

static void Main(string[] args){
  Console.Write("Digite uma letra: ");
  char letra = Char.Parse(Console.ReadLine().ToLower());

  switch(letra){
    case "a":
      Console.WriteLine("Você digitou a letra a");
      break;
    case "b":
      Console.WriteLine("Você digitou a letra b");
      break;
    case "c":
      Console.WriteLine("Você digitou a letra c");
      break;
    default:
      Console.WriteLine("Letra inválida.");
      break;
  }

  Console.WriteLine("\n\nPressione uma tecla para sair...");
  Console.ReadKey();
}

É possível haver cláusulas case vazias. Neste caso, o bloco de instruções é executado caso o valor da variável seja encontrado em qualquer uma das cláusulas. Veja:

static void Main(string[] args){
  Console.Write("Digite uma letra: ");
  char letra = Char.Parse(Console.ReadLine().ToLower());

  switch(letra){
    case "a":
    case "b":
      Console.WriteLine("Você digitou a ou b");
      break;
    case "c":
    case "d":
      Console.WriteLine("Você digitou c ou d");
      break;
    case "e":
      Console.WriteLine("Você digitou a letra e");
      break;
    default:
      Console.WriteLine("Letra inválida.");
      break;
  }

  Console.WriteLine("\n\nPressione uma tecla para sair...");
  Console.ReadKey();
}


Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais populares

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

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 42 usuários muito felizes estudando em nosso site.