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 DatabaseMetaDataQuantidade 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 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 BackgroundImageQuantidade 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.NETQuantidade 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 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 iniciantesQuantidade 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 DelphiQuantidade 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 PHPQuantidade 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 completoQuantidade 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 minQuantidade 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(); } |
Nossas 20 dicas & truques de programação mais populares |
C - Como escrever uma função C personalizada que copia os caracteres de uma string para outra string Laravel - Como criar um CRUD completo em Laravel 8 - CRUD em Laravel usando PHP e MySQL (MariaDB) - Parte 1 Java - Como construir uma data em Java usando o método set() da classe Calendar - Apostila Java Básico |
Você também poderá gostar das dicas e truques de programação abaixo |
PHP - Como inserir um determinado número de zeros antes de um número em PHP usando a função sprintf() Python - Como calcular o volume de chuvas em Python - Fórmula do cálculo do volume de chuvas em Python Java - Estruturas de Dados em Java - Como inserir nós no início de uma lista singularmente ligada em Java |
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 |