Você está aqui: JPA - Java Persistence Architecture API - Arquitetura de Persistência Java ::: Interfaces, Classes e Componentes ::: EntityManager |
Atualizando um registro em uma tabela do banco de dados usando o método merge() da interface EntityManagerQuantidade de visualizações: 8206 vezes |
O método merge() da interface EntityManager é usado quando precisamos atualizar uma entidade no contexto de persistência do JPA. Este método possui a seguinte assinatura:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <T> T merge(T entity) O método recebe como parâmetro a instância a ser atualizada e retorna a instância já atualizada. Veja um exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudosjpa; import entidades.Cliente; import java.util.Date; import javax.persistence.*; public class EstudosJPA { public static void main(String[] args) { // vamos criar o EntityManagerFactory a partir do contexto de persistência EntityManagerFactory emf = Persistence.createEntityManagerFactory("LocadoraService"); // vamos obter um objeto da interface EntityManager EntityManager em = emf.createEntityManager(); // vamos obter o cliente com o id 4 Cliente c = em.find(Cliente.class, 4); // o cliente foi encontrado? vamos atualizar seus dados, menos o id if(c != null){ c.setNome("Roberto Carlos Augusto"); c.setEmail("roberto@arquivodecodigos.net"); c.setDataCadastro(new Date()); // vamos iniciar a transação e atualizar o registro no banco de dados em.getTransaction().begin(); // inicia a transação Cliente temp = em.merge(c); // atualiza este cliente em.getTransaction().commit(); // finaliza a transação System.out.println("Dados atualizados. O novo nome do cliente é: " + c.getNome()); } else{ System.out.println("Registro não encontrado."); } em.close(); // fecha o EntityManager emf.close(); // fecha o EntityManagerFactory } } Quando executamos este código, o log do EclipseLink mostrará os seguintes comandos SQL: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- --SELECT ID, data_cadastro, EMAIL, NOME FROM clientes WHERE (ID = ?) bind => [4] --UPDATE clientes SET data_cadastro = ?, EMAIL = ?, NOME = ? WHERE (ID = ?) bind => [2013-06-01 15:14:32.144, roberto@arquivodecodigos.net, Roberto Carlos Augusto, 4] Dados atualizados. O novo nome do cliente é: Roberto Carlos Augusto Observe que o método merge() pode disparar uma exceção do tipo IllegalArgumentException se a instância não for uma entidade ou for uma entidade fora do contexto de persistência. Uma exceção TransactionRequiredException poderá ser disparada se o método merge() for chamado em um gerenciador de entidades controlado por um contâiner (container-managed entity manager) do tipo PersistenceContextType.TRANSACTION e não houver transação ativa. |
Link para compartilhar na Internet ou com seus amigos: |
PHP ::: Dicas & Truques ::: Strings e Caracteres |
Como testar se uma substring está contida em uma string usando a função strpos() do PHPQuantidade de visualizações: 3030 vezes |
Em algumas situações precisamos verificar se uma palavra (substring) está contida em uma frase (string). Isso pode ser feito com o auxílio da função strpos(). Veja um exemplo:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <?php $frase = "Gosto muito de PHP e Java"; $palavra = "Java"; // vamos verificar se a palavra Java está contida na frase if(strpos($frase, $palavra) !== false){ echo "A palavra está contida na string"; } else{ echo "A palavra não está contida na string"; } ?> Ao executarmos este código nós teremos o seguinte resultado: A palavra está contida na string Note que a função strpos() diferencia maiúsculas de minúsculas. Se você quiser efetuar uma pesquisa de substrings desconsiderando maiúsculas e minúsculas, use a função stripos(). |
C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Exercício Resolvido de C++ - Uma função C++ que recebe um valor inteiro e informa se o mesmo é um número primoQuantidade de visualizações: 8581 vezes |
Exercícios Resolvidos de C++ - Uma função C++ que recebe um valor inteiro e informa se o mesmo é um número primo Pergunta/Tarefa: Um inteiro é um número primo se ele for divisível somente por 1 e por ele mesmo. Assim, 2, 3, 5 e 7 são primos, enquanto 4, 6, 8 e 9 não são. Escreva uma função C++ que recebe um valor inteiro e informe se o mesmo é um número primo. Você deverá usar a seguinte assinatura para a função: bool primo(int valor){ // implementação aqui } Informe um valor inteiro: 7 O numero informado é primo Veja a resolução comentada deste exercício em C++: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <cstdlib> #include <iostream> using namespace std; // protótipo da função primo() bool primo(int); int main(int argc, char *argv[]){ int numero; setlocale(LC_ALL,""); // para acentos do português cout << "Informe um valor inteiro: "; cin >> numero; // vamos verificar se o valor informado é um número primo if(primo(numero)){ cout << "O numero informado é primo\n" << endl; } else{ cout << "O numero informado NÃO é primo\n" << endl; } system("PAUSE"); return EXIT_SUCCESS; } bool primo(int valor){ // se o valor fornecido for 7, a variável i do laço contará // de 2 até 7 / 2 (divisão inteira), ou seja, 3. Se o // módulo de 7 por qualquer um dos valores neste intervalo // for igual a 0, então o número não é primo for(int i = 2; i <= (valor / 2); i++){ if(valor % i == 0){ return false; // não é primo } } return true; } |
JavaScript ::: Desafios e Lista de Exercícios Resolvidos ::: JavaScript Básico |
Exercício Resolvido de JavaScript - Como somar dois números em JavaScript - O operador de adição da linguagem JavaScriptQuantidade de visualizações: 956 vezes |
Pergunta/Tarefa: Escreva um programa JavaScript para somar dois números, ou seja, dois valores numéricos inteiros. O usuário deverá informar os dois valores. Para efetuar a leitura dos números você pode usar a função window.prompt() e, para exibir o resultado, use a função window.alert(). Sua saída deverá ser parecida com: Informe o primeiro número: 7 Informe o segundo número: 3 A soma dos números é: 10 Veja a resolução comentada deste exercício em JavaScript: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <!doctype html> <html> <head> <title>Exercícios de JavaScript</title> </head> <body> <script type="text/javascript"> // vamos ler dois números do usuário var num1 = Number.parseInt(window.prompt( "Informe o primeiro número:")); var num2 = Number.parseInt(window.prompt( "Informe o segundo número:")); // agora vamos somar os dois números var soma = num1 + num2; // e mostramos o resultado window.alert("A soma dos números é: " + soma); </script> </body> </html> |
C# ::: Namespace System.Drawing ::: Graphics |
Como desenhar texto usando o método DrawString() da classe Graphics do C#Quantidade de visualizações: 5700 vezes |
Em algumas situações precisamos desenhar uma string (texto) no formulário ou algum outro controle. Para isso podemos usar o método DrawString() da classe Graphics. A assinatura mais comumente usada deste método é:Graphics.DrawString(String, Font, Brush, Single, Single) ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- private void button1_Click(object sender, EventArgs e){ // vamos obter o Graphics do formulário Graphics g = this.CreateGraphics(); // vamos desenhar a string "Arquivo de Códigos" g.DrawString("Arquivo de Códigos", this.Font, new SolidBrush(Color.Red), 40, 60); // vamos liberar o objeto Graphics g.Dispose(); } Aqui a string será desenhada usando a fonte do formulário e na cor vermelha e sólida. Se quiséssemos definir a fonte, o código ficaria algo assim: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- g.DrawString("Arquivo de Códigos", new Font("Verdana", 30), new SolidBrush(Color.Red), 40, 60); As coordenadas x e y nas quais o desenho ocorrerá podem ser informadas como um objeto da estrutura PointF. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- g.DrawString("Arquivo de Códigos", new Font("Verdana", 30), new SolidBrush(Color.Red), new PointF(80f, 120f)); |
Delphi ::: VCL - Visual Component Library ::: TEdit |
Como obter a quantidade de caracteres no texto de um TEdit do Delphi usando a função SendMessage() da API do Windows e a mensagem WM_GETTEXTLENGTHQuantidade de visualizações: 10645 vezes |
Em algumas ocasiões gostaríamos de obter o tamanho do texto de um TEdit usando apenas as funções da API do Windows. Para isso podemos usar a função SendMessage() em combinação com a mensagem WM_GETTEXTLENGTH. A função SendMessage() da API do Windows possui a seguinte assinatura em C/C++: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- LRESULT SendMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ); No arquivo Windows.pas podemos encontrar o protótipo e corpo desta função convertidos para Object Pascal: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // Protótipo {$EXTERNALSYM SendMessage} function SendMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; // Implementação function SendMessage; external user32 name 'SendMessageW'; Quando usamos a mensagem WM_GETTEXTLENGTH para obter a quantidade de caracteres no texto de um TEdit, o retorno da função SendMessage() é um valor inteiro contendo a quantidade de caracteres na caixa de texto. Os parâmetros wParam e lParam não são usados, ou seja, podemos fornecer o valor 0 para os mesmos. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); var tamanho: Integer; begin // vamos obter a quantidade de caracteres na caixa de texto tamanho := SendMessage(Edit1.Handle, WM_GETTEXTLENGTH, 0, 0); // vamos exibir o resultado ShowMessage('O edit contém ' + IntToStr(tamanho) + ' caracteres.'); end; Ao executar este exemplo teremos uma mensagem com um conteúdo parecido com: O edit contém 10 caracteres. |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
Java - Estruturas de dados em Java - Como obter a quantidade de nós em uma árvore binária usando Java |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |