persistência de dados
|
|
|
- Luana Cipriano Bennert
- 10 Há anos
- Visualizações:
Transcrição
1 _sqlite Transparecendo a persistência de dados em Android com MVC Conhecendo o funcionamento do SQLite e aplicando as práticas do modelo MVC no desenvolvimento da camada DAO. Douglas Cavalheiro [email protected] Bacharel em Sistemas de Informação, trabalha com Java desde 2009, focado no desenvolvimento Android a partir de Desenvolveu a biblioteca DroidPersistence para persistência em SQLite na S.O. para dispositivos móveis do Google. Muitas aplicações comerciais estão sendo voltadas à mobilidade. Empresas já vêm migrando parte de seus módulos para tablets ou celulares, principalmente devido à facilidade de manter esses aparelhos sempre conectados e à mão. A grande vantagem hoje de portar aplicações, ou parte delas, para tablets é todo o ambiente oferecido ao desenvolvedor, mesmo que limitado a desempenho, mas funcional. É o caso do Android SDK que nos permite escrever aplicações na linguagem Java e integrar com o banco de dados SQLite, lembrando que é possível utilizar outras formas de storage como DB4Object. O conceito MVC se aplica muito bem em projetos deste porte, pois nos permite organizar e distribuir parte das camadas para demais projetos ou envolver na nova aplicação outros projetos já amadurecidos que estejam nesta estrutura (Modelo, Visão e Controle). Aplicaremos este conceito de forma transparente e agradável para manutenções claras e com resultados bem consolidados ao longo do tempo. Temos anseio de iniciar o mais breve possível a codificação quando se trata de novas tecnologias como o Android, mas o resultado fica ainda melhor quando programar não é a preocupação principal e sim o objetivo a ser alcançado da forma mais simples possível. Planejar uma aplicação móvel que terá constante interação com base de dados torna-se uma atividade complexa se não houver métricas de desenvolvimento, assim como em qualquer outro sistema, é importante resgatarmos todas as boas práticas que vamos adquirindo ao longo do tempo e adequá-las quando formos ingressar para um novo ambiente. Olhando pelo lado do desenvolvedor, a garantia de um bom resultado no novo projeto é o sucesso das aplicações desenvolvidas anteriormente. Portanto, antes de iniciar o projeto, analise sua aplicação numa linha que inicie do ambiente real com regras de negócio e termine na implementação, esta observação parece filosófica, mas sugere uma visão menos técnica e voltada ao mundo real, tendo por consequência as expectativas do interessado (usuário) sendo atendidas da melhor forma possível pelo analista. Definindo o Projeto Seguindo a arquitetura MVC, além da view, a camada de Business Object ou Service irá realizar validações e repassar para os objetos DAO as funções de CRUD. A layer DAO terá uma estrutura com interfaces que declaram os métodos que serão implementados por cada DAO, isto permite flexibilidade para projetos não Android e homogenização da interação de dados. Também, é claro, o modelo que será nossa classe Cliente. Em qualquer dúvida, o projeto de exemplo está disponível no site da MundoJ. DAO Uma ótima prática para utilização de DAOs é a criação de uma interface que declara os métodos que irão ser utilizados. O motivo? O reúso. O objeto DAO que implementar esta interface poderá ter implementação diferente, mas as assinaturas dos métodos serão as mesmas. Conforme o que é mostrado por Silveira[2], programar voltado à interface e não a implementação é uma das boas práticas de orientação a objetos. Um exemplo numa aplicação Java é criar os métodos na interface, podemos codificar uma classe DAO que utiliza Connection e outra que utiliza o EntityManager da JPA que implementam a interface. São implementações diferentes, mas o objetivo das funções é retornar o mesmo resultado. Além do reúso, usar interfaces explica a linha de partir do menos 33 \
2 Quem já está acostumado a desenvolver em Java com certeza já se deparou com atividades de acesso aos dados e usou JDBC com suas factories (Connection ou implementações JPA, por exemplo) para desenvolver os famosos DAOs. No sistema Android, não temos o mesmo fluxo oferecido nas aplicações Java web ou desktop, mas podemos adequar boas práticas e minimizar o código para a camada de persistência e consulta de dados. técnico para o mais abrangente (implementação) durante o desenvolvimento para estar mais próximo do negócio neste início de construção. Listagem 1. Criação da Interface DAO. package br.com.cadastroclientes.dao; import java.util.list; import br.com.cadastroclientes.model.cliente; public interface IClienteDao { Cliente getbynome(string nome); Cliente getbyid(long id); List<Cliente> listall(); boolean savecliente(cliente cliente); boolean deletecliente(long id); boolean updatecliente(cliente cliente); O código da Listagem 1 deixa claro que não há dependência nenhuma de bibliotecas ou outras classes fora do contexto do projeto. Para projetos multiplataforma, a interface DAO, a camada modelo e a camada de negócio são candidatas a um projeto separado. Imagine um projeto Web e Android que ambos devem cadastrar clientes, não fica prático copiar e colar o código de um projeto a outro. Numa simples manutenção no modelo, este deverá ser alterado em ambos os projetos, não queremos isso, por fim criamos um projeto core que mantém toda esta estrutura e adicionamos este projeto ao build path do projeto mobile e no projeto web. Implementando o DAO Aqui se inicia a implementação da interface usando as particularidades do SDK Android. Num DAO Android a classe deve, além de implementar a interface, estender SqliteOpenHelper, pois esta classe nos permite interagir com o objeto Database, do qual provém as ações CRUD. Consequentemente o SqliteOpenHelper traz alguns métodos para serem sobrescritos. Listagem 2. Criação da Classe Dao. public class ClienteDao extends SQLiteOpenHelper implements IClienteDao{ private SQLiteDatabase database; /**Construtor*/ public ClienteDao(Context context, String name, CursorFactory factory,int version) { super(context, name, factory, version); database = getwritabledatabase(); No Construtor, encontramos parâmetros que devem ser mantidos, tais como Context, que é o contexto da aplicação, sendo obtido nas classes de Activity e Application do Android. O nome do banco de dados, o CursorFactory (este, é um criador de query, no caso da aplicação de exemplo não será usado, sendo passado null) e a versão do banco de dados, esta versão é importante caso queira realizar um novo build da aplicação com alterações de estrutura ou inserção de dados, a criação de um novo campo na tabela, por exemplo. Logo abaixo temos o objeto privado SQLiteDatabase sendo instanciado pelo método getwritabledatabase() este método abre o banco de dados para uso e o cria se necessário. Como é criado o banco de dados da aplicação? E como criamos as estruturas mencionadas anteriormente? A classe SQLiteOpenHelper nos dá uma visão melhor de como a mágica acontece com os métodos de OnCreate e onupgrade (Listagem 3). Listagem 3. Métodos que criam a tabela e atualizam se necessário. /**Método chamado quando o banco de dados é criado*/ / 34
3 public void oncreate(sqlitedatabase db) { StringBuilder sb = new StringBuilder(); sb.append( create table if not exists CLIENTE( ); sb.append( ID integer not null primary key autoincrement, ); sb.append( NOME varchar(50), ); sb.append( SOBRENOME varchar(50), ); sb.append( IDADE integer ); sb.append( ); ); db.execsql(sb.tostring()); /**Método lançado caso a versão do banco de dados tenha sido atualizada * na mesma aplicação. Usado geralmente para adicionar novos campos * ou Drop da tabela e criar a nova chamando o oncreate*/ public void onupgrade(sqlitedatabase db, int oldversion, int newversion) { if(newversion > oldversion){ /*inserir aqui scripts de drop ou alter table se necessário de acordo com a versão do banco de dados */ No método oncreate encontramos algo familiar que é a instrução de CREATE TABLE definindo então a estrutura da tabela cliente. O SqliteDatabase usado como parâmetro é o banco de dados aberto na construção do banco de dados. Lembrando que não é necessário invocar o método oncreate, pois ele é disparado no momento que o método getwritabledatabase é chamado. Na função onupgrade informamos instruções de alter table ou inserts e updates no caso de sua versão do banco de dados ter sido alterada como dito anteriormente. Listagem 4. Métodos que auxiliam na interação entre o objeto e os dados. /**Método que rertorna um cursor de um select simples, * mais amigável, se necessário incluir os parametros de * groupby e having*/ private Cursor executeselect(string selection, String[] selectionargs, String orderby){ return database.query( CLIENTE, new String[]{ ID, NOME, SOBRENOME, IDADE, selection, selectionargs, orderby); Cliente cliente = new Cliente(); cliente.setid(cursor.getint(0)); cliente.setnome(cursor.getstring(1)); cliente.setsobrenome(cursor.getstring(2)); cliente.setidade(cursor.getint(3)); return cliente; /**Instancia o objeto ContentValues, facilitando insert e update*/ private ContentValues serializecontentvalues(cliente cliente){ ContentValues values = new ContentValues(); values.put( NOME, cliente.getnome()); values.put( SOBRENOME, cliente.getsobrenome()); values.put( IDADE, cliente.getidade()); return values; Cursor é uma interface que funciona como o ResultSet do java.sql onde obtemos o resultado de uma consulta e podemos interagir entre ela, a prática de construção de um método como o executeselect facilita consultas onde o desenvolvedor tem de trazer todo o objeto da tabela e para transformar os dados em objeto. Outro método como o serializebycursor é recomendado para economia e versatilidade no código do DAO transformando cada resultado em um objeto instanciado, já o método serializecontentvalues faz o contrário, transforma o objeto em values para insert ou update. Com o código apresentado na Listagem 4 podemos fazer qualquer operação de dados. No DAO, basta implementar os métodos da interface descrita anteriormente. Listagem 5. Implementação da interface no objeto DAO. public Cliente getbynome(string nome) { Cliente cliente = null; Cursor cursor = executeselect( NOME =?, new String[]{nome, null); if(cursor!= null && cursor.movetofirst()){ cliente = serializebycursor(cursor); if(! cursor.isclosed()) cursor.close(); /**Método que instancia o objeto e o serializa * com o resultado de um Cursor*/ private Cliente serializebycursor(cursor cursor){ return cliente; 35 \
4 public List<Cliente> listall() { List<Cliente> list = new ArrayList<Cliente>(); Cursor cursor = executeselect( 1 ); if(cursor!= null && cursor.movetofirst()){ do{ list.add(serializebycursor(cursor)); while(cursor.movetonext()); if(! cursor.isclosed()) cursor.close(); return list; public boolean savecliente(cliente cliente) { ContentValues values = serializecontentvalues(cli ente); //retorno do insert é a quantidade de registros inseridos if(database.insert( CLIENTE, values) > 0) return true; else return false; public boolean deletecliente(long id) { if(database.delete( CLIENTE, ID =?, new String[]{ String.valueOf(id) ) > 0) return true; else return false; de busca, listagem e update Business Object (service) e seu baixo acoplamento Business Object ou Service é um objeto voltado ao controle do negócio, como cita Fowler[3] sobre Design guiado pelo domínio. Neste objeto colocamos regras de negócio antes de persistir ou realizar alguma tarefa na camada visão. Validações também são bem-vindas. No objeto ClienteBO é necessário invocar os métodos do ClienteDao, mas necessitando o mínimo possível do objeto ClienteDao, faremos isso usando a interface DAO. //trecho public class ClienteBO { private IClienteDao clientedao; public ClienteBO(Context context, String databasename, int databaseversion){ clientedao = new ClienteDao( context, databasename, databaseversion); public void savecliente(cliente cliente) throws Exception{ validatecadastrocliente(cliente); if(! clientedao.savecliente(cliente)) throw new Exception( Cliente não pode ser salvo! ); public List<Cliente> getlistcliente(){ return clientedao.listall(); // demais métodos usando o dao e o // validatecadastrocliente omitidos O atributo clientedao utilizado em todos os métodos de interação é a interface instanciada no construtor com sua implementação Android ClienteDao, neste procedimento mantemos a pouca dependência do objeto que implementa a interface. Mas e o construtor? Este tem particularidades do Android usando Dependence Injection, este BO não poderá ser usado como uma lib ou projeto avulso. Isso é verdade, mas a solução é simples: criar um objeto BO para o android etendendo do BO genérico e só implementando o construtor já resolveria o problema. Usando a Classe Application Um recurso muito útil para desenvolvedores Android é poder sobrescrever a classe Application. Sua função é instanciar objetos globais que podem ser usados na aplicação. Conforme a documentação[4], singletons podem resolver isso, porém, se o singleton precisar de um Context ou demais recursos como Broadcast Receivers, já seria mais funcional utilizar a própria classe Application que contém estes atributos. Listagem 6. Classe Application. public class CadastroClientesApp extends Application{ private ClienteBO clientebo; public void oncreate() { super.oncreate(); clientebo = new ClienteBO( this, DATABASE_ CLIENTES, 1 ); / 36
5 A fim de que o SDK entenda que a classe escrita será a que implementará a aplicação, é necessário informar o AndroidManifest.xml para que ela seja executada nas operações de início e fim. Desta maneira, a tag android:name deve conter o nome da classe: <application android:name= CadastroClientesApp Usando o BO instanciado na Activity Com a classe Application executando, e a Classe BO instanciada, torna-se fácil a chamada do objeto e seus métodos, desde que também se utilize o método getapplication() para buscar a instância do objeto Application dentro da activity Android: //trecho private CadastroClientesApp app; protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.cadastro_cliente); //Instancia a aplicação app = (CadastroClientesApp) getapplication(); E, por fim, é possível desfrutar dos BO chamando-o diretamente da Application: //Trecho /* demais métodos omitidos*/ app.getclientebo().savecliente(cliente); /* demais métodos omitidos*/ A grande vantagem de usar um único Business Object instanciado é a minimização de locks no banco de dados, pois não haverá preocupação em abrir e fechar transações durante o runtime da aplicação, mas se precisar abrir e fechar as transações manualmente por questões de otimização ou até mesmo controle próprio, os métodos begintransaction e endtransaction do SQLiteDatabase. Outro benefício é o ganho em heap, mas é interessante monitorá-lo para ver o que pode estar errado numa possível lentidão na inicialização. É importante imaginar que se a utilização de um BO for somente uma vez e chamada pelo usuário esporadicamente, talvez não seja necessária a criação do objeto na classe Application durante a inicialização do sistema e sim dentro da própria activity, porém, um cuidado especial ao parâmetro version no construtor do DAO, pois se muitas criações do BO ficarem espalhadas pela aplicação e um upgrade na versão do BD for necessário, o refactoring poderá ser doloroso. Um meio de resolver o parâmetro version é usando uma classe com constantes ou no modelo singleton. Considerações Finais O modo em que se aplica um banco de dados Sqlite no projeto Android fica muito a cargo do desenvolvedor. Fazer a leitura e atualização de dados pode ser uma prática problemática durante o desenvolvimento ou manutenção posterior. O artigo sugere formas de aproveitar bem os conceitos de desenvolvimento orientado a objetos e grandes facilidades que o Android SDK proporciona. Algumas particularidades do Android podem trazer benefícios à aplicação como a classe Application que é instanciada no momento que a aplicação é executada (não a confunda com Singleton), e esta pode conter classes provedoras de negócio que servem de ponte para o acesso a todos os DAOs do projeto, sendo fácil e rápido chamar os métodos sem ter que ficar instanciando a cada necessidade. Tudo dependerá de como for projetada a aplicação, quantas serão as interações entre os dados, quantas tabelas existirão no banco de dados etc. Uma pergunta a ser feita durante o escopo do projeto é: realmente é necessário usar DAO, BO e criar uma classe gerenciadora de dados para somente usar a tabela Usuário na tela de login? A resposta é implícita se tudo estiver projetado. De qualquer modo o artigo tem foco nas aplicações comerciais, que exigem bastante carga e interação de dados ou outra aplicação do gênero. Para jogos, aplicações como redes sociais, talvez o Sqlite nem seja a melhor recomendação, o Android tem também outras formas de gravar informações como o Shared Preferences e escrita em arquivo. /referências > > Introdução à Arquitetura e Design de Software Uma Visão sobre a Plataforma Java Editora: Elsevier Campus > > Application.html /para saber mais > Existem frameworks que auxiliam na escrita do DAO, sendo possível diminuir seu código, principalmente na criação da tabela, métodos de busca e inserção, exclusão e atualização de dados. O DroidPersistence é um projeto que possibilita isso. Mas não descarte o fato de ao menos dominar como trabalha o SDK antes de usar qualquer framework, essa ideia ajudará a resolver possíveis problemas e também servirá de argumento para decisões técnicas de projeto. > O SQLite é um banco de dados relacional simples e a linguagem usada é o SQL (como seu próprio nome indica). Uma das limitações encontradas logo de início em relação a outros SGBDs (Sistemas Gerenciadores de Banco de Dados) é a falta de Stored Procedures, a própria documentação SQLite[1] explica que por ser Lite não tem este recurso e se o desenvolvedor necessita utilizar Stored Procedures em seu BD, procure um que lhe atenda, como o Oracle ou PostgreSql. Contudo, as operações de CRUD (Create, Read, Update e Delete Criar, Ler, Atualizar e Excluir) são feitas normalmente. 37 \
Capítulo 04: Persistência com SQLite
Capítulo 04: Persistência com SQLite Instrutor Programador desde 2000 Aluno de doutorado Mestre em informática pelo ICOMP/UFAM Especialista em aplicações WEB FUCAPI [email protected] sites.google.com/site/marcio
Android Banco de Dados. Ivan Nicoli
Android Banco de Dados Ivan Nicoli SQLite O Android tem suporte ao SQLite (http://www.sqlite.org), um leve e poderoso banco de dados. Cada aplicação pode criar um ou mais banco de dados, que ficam localizados
Android e Bancos de Dados
(Usando o SQLite) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Introdução App de exemplo Implementação do exemplo Testes realizados
Programação para Android. Aula 08: Persistência de dados SQL
Programação para Android Aula 08: Persistência de dados SQL Persistência de dados Na maioria das aplicações precisamos ter algum tipo de persistência de dados. Para guardar informações de forma persistente
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Introdução App de exemplo Implementação do exemplo Testes realizados
Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro ([email protected]) Maio/ 2015
Manipulação de Banco de Dados com Java Ms. Bruno Crestani Calegaro ([email protected]) Maio/ 2015 Acesso a um SGBD Em sistemas mais simples o uso de arquivos pode ser usado mas para aplicações
Programação para Android. Aula 06: Activity, menus e action bar
Programação para Android Aula 06: Activity, menus e action bar Activity A classe Activity é quem gerencia a interface com o usuário. Ela quem recebe as requisições, as trata e processa. Na programação
Leonardo Gresta Paulino Murta [email protected]
Leonardo Gresta Paulino Murta [email protected] O Que é JDBC? API de acesso a banco de dados relacional do Java Faz uso do driver provido pelo banco de dados Roda SQL (create, insert, update, etc.) no
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS Uso do SQLite no Android Professor: Danilo Giacobo OBJETIVOS DA AULA Aprender a persistir dados utilizando o banco de dados SQLite. Conhecer e utilizar a classe SQLiteOpenHelper.
Armazenamento de dados
Armazenamento de dados Opções de Armazenamento Shared Preferences Mecanismo simples de armazenar pares de chavevalor Internal Storage Mecanismo para armazenar dados na memória do aparelho External Storage
Persistência de Classes em Tabelas de Banco de Dados
UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Persistência de Classes em Tabelas de Banco de Dados 1) Introdução! Em algumas situações, pode ser necessário preservar os objetos
Desenvolvendo Websites com PHP
Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.
AULA 4 VISÃO BÁSICA DE CLASSES EM PHP
AULA 4 VISÃO BÁSICA DE CLASSES EM PHP Antes de mais nada, vamos conhecer alguns conceitos, que serão importantes para o entendimento mais efetivos dos assuntos que trataremos durante a leitura desta apostila.
Armazenamento de Dados
Persistência... Armazenamento de Dados Diversas opções para armazenar dados da aplicação. A escolha de acordo com a necessidade: dados privados ou públicos, quantidade de espaço necessário, etc. 2 Armazenamento
JDBC Java Database Connectivity
5 JDBC Java Database Connectivity Prof. Autor: Daniel Morais dos Reis e-tec Brasil Programação Avançada Para Web Página1 Meta Trabalhar com bancos de dados em aplicações web em JSP através das classes
Módulo 5 JPATransaction Camadas Turma Turma TurmaBC .business @BusinessController TurmaBC TurmaBC TurmaBC
Módulo 5 No módulo anterior adaptamos nosso projeto para persistir as informações no banco de dados utilizando as facilidades da extensão demoiselle-jpa. Experimentamos o controle transacional do Framework
Provedores de Conteúdo
Programação para a Plataforma Android Aula 12 Provedores de Conteúdo O que são provedores de conteúdo? Como ler dados de outras aplicações? Como iden@ficar recursos de forma única? Como deixar dados disponíveis
Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.
Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2012 Edição 7 Listando e Gravando Listando itens em ComboBox e gravando os dados no
Programação para Dispositivos Móveis
Prof. MSc. Flávio Barros [email protected] www.flaviobarros.com.br Programação para Dispositivos Móveis Aula: CRUD Agenda com SQLite Parte II Caxias - MA Projeto Android Estrutura Activity MainActivity.java
Programação para Android. Aula 07: Persistência de dados Shared Preferences, Internal e External Storage
Programação para Android Aula 07: Persistência de dados Shared Preferences, Internal e External Storage Persistência de dados Na maioria das aplicações precisamos ter algum tipo de persistência de dados.
Programação para a Plataforma Android Aula 11. Banco de Dados
Programação para a Plataforma Android Aula 11 Banco de Dados Introdução a linguagem SQL O banco de dados SQLite Como criar e manipular um banco de dados em Android Como apresentar dados na tela do aparelho
Apresentação de um Processo Cria4vo de Desenvolvimento de uma App Android. Realização de Dinâmica Hands- On para Construção de uma App Android
Apresentação de um Processo Cria4vo de Desenvolvimento de uma App Android Realização de Dinâmica Hands- On para Construção de uma App Android Dr. Eduardo Manuel de Freitas Jorge, PMP Realização de Dinâmica
Programação com Acesso a Banco de Dados
Campus Ipanguaçu Curso: Técnico em Informática Programação com Acesso a Banco de Dados AULA 17 ACESSO A BANCO DE DADOS COM JDBC PROF.: CLAYTON M. COSTA 2 011.2 Introdução Aplicação + Banco de Dados: Funcionalidade
Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011
Trabalhando com conexão ao banco de dados MySQL no Lazarus Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 4 O Componente Trabalhando com conexão ao banco de dados MySQL no Lazarus Ano: 03/2011
SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária
SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária Cascavel Novembro de 2009 Pedro Patitucci Finamore Daniel Bordignon Cassanelli Marco Antonio da Rosa DIAGRAMAS DE CLASSE E SEQUÊNCIA
Noções de. Microsoft SQL Server. Microsoft SQL Server
Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados
Persistência de Dados
Persistência de s Universidade do Estado de Santa Catarina - Udesc Centro de Ciências Tecnológicas - CCT Departamento de Ciência da Computação Tecnologia de Sistemas de Informação Estrutura de s II - DAD
( TIAGO DOS SANTOS MENDES ) PROGRAMAÇÃO DISPOSITIVOS MOVEIS ANDROID STUDIO
Serviço Nacional de Aprendizagem Comercial E.E.P. Senac Pelotas Centro Histórico Programa Nacional de Acesso ao Ensino Técnico e Emprego Curso Técnico em Informática ( TIAGO DOS SANTOS MENDES ) PROGRAMAÇÃO
Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL
Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Prof. MSc. Hugo Souza Iniciando nossas aulas sobre
Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano
Programação Servidor para Sistemas Web 1 Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Objetivo: Apresentar a teoria por trás dos padrões na construção de aplicações Web. INTRODUÇÃO Nas aulas anteriores
1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)
Sessão Prática II JPA entities e unidades de persistência 1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF) a) Criar um Web Application (JPAsecond) como anteriormente:
Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser
A1Criando um módulo de negócio Capítulo 27 Aplicação dividida em módulos - Introdução Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser compreendido como uma solução de
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS Persistência de dados com Android Professor: Danilo Giacobo OBJETIVOS DA AULA Apresentar novas técnicas de persistência em Android. Utilizar a classe SharedPreferences.
02 - Usando o SiteMaster - Informações importantes
01 - Apresentação do SiteMaster - News Edition O SiteMaster foi desenvolvido para ser um sistema simples de gerenciamento de notícias, instalado em seu próprio computador e com configuração simplificada,
Interfaces Gráficas parte 3
parte 3 (Listview, AlertDialog e ActionBar) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação
Manual de Utilização
Manual de Utilização Versão 1.0 18/01/2013 Sempre consulte por atualizações deste manual em nossa página. O Cotação Web está em constante desenvolvimento, podendo ter novas funcionalidades adicionadas
Transações Seguras em Bancos de Dados (MySQL)
Transações Seguras em Bancos de Dados (MySQL) Índice Entendendo os storage engines do MySQL 5 1 As ferramentas 1 Mais algumas coisas que você deve saber 1 Com a mão na massa 2 Mais ferramentas Usando o
DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0
DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando
PROGRAMAÇÃO ESTRUTURADA. CC 2º Período
PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 07: Funções O comando return Protótipo de funções O tipo void Arquivos-cabeçalho Escopo de variáveis Passagem de parâmetros por valor
5 Mecanismo de seleção de componentes
Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações
Java na WEB Banco de Dados
1 Java na WEB Banco de Dados Objetivo: Ao final da aula o aluno será capaz de: Criar aplicações JSP com acesso ao Banco de Dados MySql Configurar o TomCat para acessar o MySql. Não é Objetivo: Ao final
MVC e Camadas - Fragmental Bliki
1 de 5 20-03-2012 18:32 MVC e Camadas From Fragmental Bliki Conteúdo 1 Introdução 2 Camadas: Separação Entre Componentes 3 MVC: Interação Entre Componentes 4 Conclusão 5 Referências Introdução A Arquitetura
C# - Conexão com MySQL
E S T A A P R E S E N T A Ç Ã O F O I E L A B O R A D A COMO M A T E R I A L DE A P O I O À A U L A DO P R O F E S S O R L E O L A R B A C K A O S A L U N O S DA E S C O L A T É C N I C A P O L I M I G.
MANUAL DE UTILIZAÇÃO. HELP SUPORTE e HELP - REMOTO (Versão de usuário: 2.0)
MANUAL DE UTILIZAÇÃO HELP SUPORTE e HELP - REMOTO (Versão de usuário: 2.0) 1 Sumário 1 Introdução...3 2 O que é o HELP Suporte?...3 3 Cadastro no Help Suporte...3 4 Como Acessar e Utilizar o HELP SUPORTE...3
QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013
QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013 Prezados Senhores da comissão de licitação da UENF, seguem alguns questionamentos acerca do edital de concorrência 01/2013 para esclarecimentos: 1. ANEXO
Figura 1. A Classe Java
Conexã o com MySQL Connection Factory Para criar as conexões com o banco de dados será utilizado um padrão chamado Factory, onde através dele se terá uma única classe que proverá uma fábrica de conexão
Armazenamento de Dados
Persistência... Armazenamento de Dados Diversas opções para armazenar dados da aplicação. A escolha de acordo com a necessidade: dados privados ou públicos, quantidade de espaço necessário, etc. 2 Armazenamento
BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com
- Aula 11-1. INTRODUÇÃO TRIGGERS (GATILHOS OU AUTOMATISMOS) Desenvolver uma aplicação para gerenciar os dados significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface, passando
Desenvolvendo Aplicações Web com NetBeans
Desenvolvendo Aplicações Web com NetBeans Aula 3 Cap. 4 Trabalhando com Banco de Dados Prof.: Marcelo Ferreira Ortega Introdução O trabalho com banco de dados utilizando o NetBeans se desenvolveu ao longo
ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02
ArpPrintServer Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 1 Sumário INTRODUÇÃO... 3 CARACTERÍSTICAS PRINCIPAIS DO SISTEMA... 3 REQUISITOS DE SISTEMA... 4 INSTALAÇÃO
JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos.
JDBC CRIANDO O BANCO DE DADOS: Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos. CRIANDO O PROJETO JAVA PARA DESKTOP: Crie um projeto Java chamado Prograd Crie um pacote chamado
QUALIDATA Soluções em Informática. Módulo CIEE com convênio empresas
FM-0 1/21 ÍNDICE 1. MÓDULO DESKTOP(SISTEMA INSTALADO NO CIEE)... 2 Cadastro de Ofertas de Empregos:... 2 Cadastro de Eventos:... 3 Cadastro de Instituições do Curriculum:... 5 Cadastro de Cursos do Curriculum:...
BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010
BANCO DE DADOS: SQL UERN - Universidade do Estado do Rio Grande do Norte. Departamento de Ciências da Computação. 27 de janeiro de 2010 índice 1 Introdução 2 3 Introdução SQL - Structured Query Language
UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET. Programação para Internet I
UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET Programação para Internet I Aula 10 PHP: Trabalhando com Banco de Dados [email protected] Acessando
sobre rogério gonçalves gerente de projetos > digitale agência digital [email protected] h7p://www.digitale.com.br h7p://leveme.
sobre rogério gonçalves gerente de projetos > digitale agência digital [email protected] h7p://www.digitale.com.br h7p://leveme.la/rogerio definição - é uma forma de programar e organizar um sistema
Entendendo como funciona o NAT
Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços
Orientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Itinerários de Ônibus Relatório Final
CENTRO UNIVERSITÁRIO SENAC Itinerários de Ônibus Relatório Final Grupo 5 Caio Roque Daniel Nunes Elise Roese José Caneiro Marcos Grignani São Paulo Junho de 2007 1 ÍNDICE 1. Introdução... 3 2. Desenvolvimento...
Programação de Computadores - I. Profª Beatriz Profº Israel
Programação de Computadores - I Profª Beatriz Profº Israel Ambiente de Desenvolvimento Orientação a Objetos É uma técnica de desenvolvimento de softwares que consiste em representar os elementos do mundo
O sistema que completa sua empresa Roteiro de Instalação (rev. 15.10.09) Página 1
Roteiro de Instalação (rev. 15.10.09) Página 1 O objetivo deste roteiro é descrever os passos para a instalação do UNICO. O roteiro poderá ser usado não apenas pelas revendas que apenas estão realizando
Guia de Fatores de Qualidade de OO e Java
Qualiti Software Processes Guia de Fatores de Qualidade de OO e Java Versã o 1.0 Este documento só pode ser utilizado para fins educacionais, no Centro de Informática da Universidade Federal de Pernambuco.
Autor: Ricardo Francisco Minzé Júnior - [email protected] Desenvolvendo aplicações em camadas com PHP 5.
Desenvolvendo aplicações em camadas com PHP 5. Talvez a primeira vista você ache estranha a palavra Camada em programação, mas o que vem a ser Camada? Segundo o dicionário: Camada 1 - Qualquer matéria
e-stf WebServices Processo Eletrônico Smart Client Documentação
SUPREMO TRIBUNAL FEDERAL Secretaria de Tecnologia da Informação e-stf WebServices Processo Eletrônico Smart Client 1 Histórico da Revisão Data Versão Descrição Autor 20/06/2008 1.0 Criação do documento
PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. [email protected]
PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES Prof. Angelo Augusto Frozza, M.Sc. [email protected] ROTEIRO 5. Tratamento de Exceções Introdução e conceitos Capturando exceção usando
Manual de instalação e configuração da Ferramenta Android SDK
Trabalho de Programação para Dispositivos Móveis Turma: 1011 Camila Botelho [email protected] Manual de instalação e configuração da Ferramenta Android SDK Introdução O Android é uma ferramenta
APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL
1. O que é Linguagem SQL 2. Instrução CREATE 3. CONSTRAINT 4. ALTER TABLE 5. RENAME TABLE 6. TRUCANTE TABLE 7. DROP TABLE 8. DROP DATABASE 1 1. O que é Linguagem SQL 2. O SQL (Structured Query Language)
Projeto de Banco de Dados
Projeto de Banco de Dados Prof. Marcelo Siedler Objetivos do documento: Apresentar os conceitos de stored procedutes e funções. Exercícios. Referência: http://dev.mysql.com/doc/refman/4.1/pt/stored-procedures.html
PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1
PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB PADRÕES MVC E DAO Prof. Dr. Daniel Caetano 2012-1 Objetivos Compreender o conceito de Padrões de Projeto Compreender o Padrão MVC Conhecer o princípio de alguns dos
O Novo Portal Etilux também foi criado para ser um facilitador para nossa Força de Vendas, abrangendo as seguintes características:
INTRODUÇÃO: O Novo Portal Etilux também foi criado para ser um facilitador para nossa Força de Vendas, abrangendo as seguintes características: Ser uma alternativa para substituição dos volumosos e pesados
DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID
DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID Maik Olher CHAVES 1 ; Daniela Costa Terra 2. 1 Graduado no curso de Tecnologia em Análise e Desenvolvimento de Sistemas
Implementando uma Classe e Criando Objetos a partir dela
Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe
ANDROID APPLICATION PROJECT
Criando um programa Abrindo o programa Eclipse, clique na opção [FILE], depois em [NEW], selecione a opção [PROJECT], uma janela de opção do tipo de projeto irá se abrir, escolha [ANDROID] logo depois
Fábrica de Software 29/04/2015
Fábrica de Software 29/04/2015 Crise do Software Fábrica de Software Analogias costumam ser usadas para tentar entender melhor algo ou alguma coisa. A idéia é simples: compara-se o conceito que não se
Banco de Dados. Prof. Leonardo Barreto Campos 1
Banco de Dados Prof. Leonardo Barreto Campos 1 Sumário Introdução; Banco de Dados Relacionais; SQL; MySQL; Manipulando Banco de Dados com o JDBC; Bibliografia; Prof. Leonardo Barreto Campos 2/25 Introdução
Manual Integra S_Line
1 Introdução O é uma ferramenta que permite a transmissão Eletrônica de Resultado de Exames, possibilitando aos Prestadores de Serviços (Rede Credenciada), integrarem seus sistemas com os das Operadoras
INTRODUÇÃO. No entanto, o que pode ser considerado um produto (resultado) da criação de BDs?
BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos [email protected] INTRODUÇÃO Um Banco
Índice: CMS 3 O que é Content Management System? Clientes 4 O que é o Cliente? 4 Configurando o i-menu/i-view para trabalhar. com o CMS.
Índice: CMS 3 O que é Content Management System? Clientes 4 O que é o Cliente? 4 Configurando o i-menu/i-view para trabalhar com o CMS. 5 Removendo o Cliente. Playlist 7 Criando um Playlist. 8 Adicionando
Procedimentos para Reinstalação do Sisloc
Procedimentos para Reinstalação do Sisloc Sumário: 1. Informações Gerais... 3 2. Criação de backups importantes... 3 3. Reinstalação do Sisloc... 4 Passo a passo... 4 4. Instalação da base de dados Sisloc...
Manual AGENDA DE BACKUP
Gemelo Backup Online DESKTOP Manual AGENDA DE BACKUP Realiza seus backups de maneira automática. Você só programa os dias e horas em que serão efetuados. A única coisa que você deve fazer é manter seu
Manipulação de Dados em PHP (Visualizar, Inserir, Atualizar e Excluir) Parte 2
Desenvolvimento Web III Manipulação de Dados em PHP (Visualizar, Inserir, Atualizar e Excluir) Parte 2 Prof. Mauro Lopes 1-31 21 Objetivos Nesta aula iremos trabalhar a manipulação de banco de dados através
1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2.
1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2. Editando um Artigo 4.3. Excluindo um Artigo 4.4. Publicar
Sistemas Distribuídos
Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor
Programação para Dispositivos Móveis
Programação para Dispositivos Móveis Fatec Ipiranga Análise e Desenvolvimento de Sistemas Aula 04 Anatomia de uma aplicação Android Dalton Martins [email protected] São Paulo, Fevereiro, 2012 24/02/12
JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES
Conteúdo O Projeto... 2 Criação de Pacotes... 4 Factory:... 6 DAO:... 15 GUI (Graphical User Interface ou Interface Gráfica de Cadastro)... 18 Evento SAIR... 23 Evento CADASTRAR... 24 1 O Projeto Arquivo
Usando PostgreSQL na Regra de Negócio de um ERP. Fabiano Machado Dias Eduardo Wolak
Usando PostgreSQL na Regra de Negócio de um ERP Fabiano Machado Dias Eduardo Wolak Regra de negócio? São todas as regras existentes num sistema de informação, que ditam seu comportamento, suas restrições
Java com Banco de Dados Posgree
Java com Banco de Dados Posgree Prof. Luiz Claudio Ferreira de Souza www.luizclaudiofs.blogspot.com 1 Driver para ligação Java e Postgre http://jdbc.postgresql.org/download.html www.luizclaudiofs.blogspot.com
Classes de Entidades Persistentes JDB
Classes de Entidades Persistentes JDB Brasil, Natal-RN, 07 de setembro de 2011 Welbson Siqueira Costa www.jdbframework.com Nota de Retificação: em 11/12/2011 a Listagem 3 desse tutorial sofreu uma pequena
ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.
Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 8 ARRAYS Introdução Até agora, utilizamos variáveis individuais. Significa que uma variável objeto
USANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE
USANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE SUMÁRIO usando o izcode... 1 para gerar software rapidamente... 1 introdução... 2 o que é o izcode?... 2 Como funciona o izcode?... 2 os tipos diferentes
Profº Aldo Rocha. Banco de Dados
Profº Aldo Rocha Banco de Dados HOJE! CREATE TABLE com uma Chave primária Primeiramente façam um SELECT na tabela pessoa. Percebam que não há NENHUMA CHAVE PRIMÁRIA. utilizem o comando SHOW CREATE TABLE
CONVENÇÃO DE CÓDIGO JAVA
CONVENÇÃO DE CÓDIGO JAVA Eligiane Ceron - Abril de 2012 Versão 1.0 Conteúdo Considerações iniciais... 2 Introdução... 2 Extensão de arquivos... 2 Arquivos de código Java... 2 Comentários iniciais... 2
Como incluir artigos:
Como incluir artigos: O WordPress é uma ferramenta muito flexível, com muitas variações e ajustes que podem torná-lo algo muito simples e também muito sofisticado conforme os recursos que são configurados
Java & Bancos de Dados Adaptado de Slides da Universidade Salgado de Oliveira Goiânia
Java & Bancos de Dados Adaptado de Slides da Universidade Salgado de Oliveira Goiânia Sistemas de Informação Ling.Prog.V Prof. Roberto Couto Lima Fonte: Curso Java Prof. Fabricio Leonard Leopoldino (Universo)
HIBERNATE EM APLICAÇÃO JAVA WEB
HIBERNATE EM APLICAÇÃO JAVA WEB Raul Victtor Barbosa Claudino¹, Ricardo Ribeiro Rufino¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil [email protected], [email protected] Resumo: Este
10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO
10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO UMA DAS GRANDES FUNÇÕES DA TECNOLOGIA É A DE FACILITAR A VIDA DO HOMEM, SEJA NA VIDA PESSOAL OU CORPORATIVA. ATRAVÉS DELA, ELE CONSEGUE
