Então vamos ao que interessa. 1. Introdução

Tamanho: px
Começar a partir da página:

Download "Então vamos ao que interessa. 1. Introdução"

Transcrição

1 Tentarei ser o mais genérico possível. Nos exemplos irei utilizar ASP.Net 2.0 e acesso a dados através do ADO.NET, mas pode ter certeza que para outros casos a idéia não irá mudar muito, seja com LINQ, DAAB, NHIBERNATE, MVC ou qualquer outra tecnologia para acesso a dados. Então vamos ao que interessa. 1. Introdução Antes de começar, quero dizer que a arquitetura de um sistema vária de projeto para projeto, de necessidade para necessidade. Mas em sua maioria para projetos de médio e grande porte, utilizo as boas práticas de projetos de n-camadas (n-tier). Já para projetos pequenos, utilizo uma arquitetura minimizada (a qual não irei abordar aqui). É importante ter em mente que a organização demanda tempo. É bem mais rápido desenvolver um projeto de maneira desorganizada do que de maneira organizada. Mas as desvantagens de criar algo não pensado são inúmeras, como: dificuldade de manutenção, difícil refatoração, código não expressivo, entre outras. Então é bom pensar em tudo que for fazer, pensar em cada classe, método, propriedade, que for criar. Parece ser besteira, mas é sempre bom tomar cuidado com nomes e padrões que serão utilizados no projeto. Mas, sem maiores delongas: "Zelar pelo código que se faz". Em meus projetos costumo utilizar a seguinte arquitetura em camadas:

2 Parece ser bem simples não é? E é mesmo. Se tivermos cuidado na hora de arquitetar o sistema e se pensarmos em todos (maioria) dos detalhes do projeto como um todo, iremos ter um sistema fácil de dar manutenção, legível e modular. Alguns detalhes da arquitetura: - Devemos entender que as camadas de baixo referenciam as de cima. NUNCA devemos fazer o processo inverso. A única camada que não referência ninguém e todos conseguem enxerga-lá são as entidades. - Existem objetos próprios de cada camada, por exemplo, não iremos ter objeto da Namespace System.Data na camada da UI (Interface com o usuário). - Devemos lembrar que objetos que facilitam nossa vida como o SqlDataSource não estão de acordo com padrões de projetos de muitas empresas. Pelo simples fato que ao utilizá-lo estamos indo em contra mão ao ponto que diz (que uma camada se comunica, apenas, com a imediatamente acima). Ao adotarmos o SqlDataSource como controle para manipular dados em nossas aplicações, estamos fazendo com que a GUI acesse diretamente o banco de dados, e na prática apenas a DAL pode acessar nossos meios de persistência a dados. - As camadas podem estar distribuídas em máquinas/pastas diferentes, deste que cada camada seja uma DLL. Em outros casos as camadas podem estar dentro de nossas aplicações ASP.NET, sendo pastas na mesma.

3 - Os dados devem ser passados para as classes de cima sempre como entidade, ao invés de passar n parâmetros para as camadas de cima, criando assim uma dependência entre camadas. Caso eu adicione um atributo a mais em uma entidade, vou ter que adicionar um parâmetro a mais em meu método. Por exemplo: Não utilize esse tipo de método em seu código: public void InserirPessoaJuridica(string nome, string CPF, int idade); Bem mais simples passar apenas um objeto do que passar de parâmetros. public void InserirPessoaJuridica(PessoaJuridica pessoajuridica); OBS: O problema de se colocar todas as camadas em um único projeto é se um dia desejarmos criar aquela mesma aplicação para outro tipo de dispositivo. Por exemplo: Temos uma aplicação ASP.NET e desejamos agora criar uma opção para o usuário acessá-la via dispositivo móvel. Caso as camadas estejam em um único projeto, será bem trabalhoso de fazer isto. Já no caso de cada camada ser um projeto diferente, teremos apenas, que criar uma nova camada de UI e fazer com que esta referencie as outras camadas. Outros detalhes serão discutidos no decorrer deste artigo. Agora vamos falar sobre cada camada em particular. 1.1 GUI É a camada de interface com o usuário. No nosso caso é nossa aplicação ASP.NET. Poderia ser um projeto para dispositivo móvel, Windows Form, WPF, Silverlight. O ideal é que nessa camada encontremos apenas código que estejam diretamente relacionados com nossas páginas aspx. Já vi desenvolvedores de empresas grandes que faziam coisas esdrúxulas como acessar o bando direto da GUI. Além de deixar o código seboso, o trabalho de refazer o mesmo código inúmeras vezes será enorme. Então vamos seguir a regra, cada camada só enxerga a imediatamente acima. 1.2 Entidade

4 É a única camada que todos enxergam. Esta entidade contém nossas classes básicas (Ex: Pessoa, Médico, Casa, Cachorro, PessoaJuridica, PessoaFisica...). Classes que representam coisas do nosso mundo real. 1.3 Façade É um padrão faz com que tenhamos todas as funções do sistema em uma única classe. Uma possível implementação para este padrão é utilizar a palavra chave partial para ter vários arquivos físicos, mas que no final das contas será uma única classe. A finalidade disto é evitar ter um único arquivo enorme. OBS: Esta camada é optativa. Você pode acessar diretamente a camada de negócio. Costumo utilizar este padrão em casos onde preciso executar chamadas consecutivas ao banco em uma única operação. Por exemplo, no caso de uma transferência de conta bancária. Preciso retirar de uma pessoa e colocar na conta de outra. Então a façade serviria para fazer a chamada ao devidas funções. Teria o método Transferência na classe Façade, que este por sua vez iria ter o seguinte trecho de código: PessoaBus.Depositar(x); PessoaBus.Sacar(x); Ou seja utilizo essa classe apenas quando dou preferência a ter um local de fácil acesso que faça as operações na ordem de execução. 1.4 Business Tier Essa camada contém tudo que for lógica de negócio. Ela que irá fazer verificações e validações dos dados vindos e que ainda vão para o banco. É importante saber a diferencia entre regras de negócio e validações básicas. Pois existem validações que não precisam ser feitas necessariamente nesta classe. Como por exemplo, se o CPF é válido, pois essa é uma regra geral, e não de um específico sistema. A validação do CPF pode ser feita tanto do lado do cliente (javascript) como na camada de entidades. 1.5 DAL Única camada que acessa a dados. Esta camada é especifica para isso e nada mais. Então é uma boa prática evitar colocar validações nesta classe ou qualquer trecho de código que não esteja diretamente relacionado com acesso a dados.

5 Em muitos projetos tento criar camadas de acessos a dados genéricos. Mas isso não é obrigatório (dependendo do projeto, lógico). Se você sabe que aquele projeto sempre vai acessar apenas a um banco de dados (Sql Server, Oracle, Mysql, Postgres ou qualquer outro) e não tem a menor chance de mudar, então não existe a necessidade de criar uma camada genérica. OBS: Criar os repositórios para cada entidade e mapear cada tabela do banco em uma entidade dá muito trabalho. Então existem várias ferramentas que fazem esse trabalho para nós. São as ferramentas de mapeamento objeto relacionais. Temos em.net como exemplo: Nhibernate, SubSonic, LINQ. Temos um projeto da Microsoft que abstrai o acesso a banco de dados de nossa aplicação. É um projeto grande, que nos fornece muitas utilidades, que é a Microsoft Data Access Application Block. Caso você opte por utilizar alguma dessas ferramentas tudo bem. Mas muito cuidado ao escolher alguma delas. Pois alguns códigos gerados podem ir contra os padrões adotados em seu projeto, o que pode dar muita dor de cabeça ao tentar modificar o código gerado pela mesma. Quanto a conceitos de camadas, o que posso dizer é isso. Aconselho a estudar coisas relacionadas a design partner. Com bom conhecimento de padrões de projetos e bom conhecimento da regra de negócio da aplicação você será capaz de escrever aplicações bem arquitetadas e modeladas. 2. Codificando Como exemplo, vou mostrar um cadastro de pessoa bem simples. Apenas para dar idéia de como seria um sistema em camadas que costumo utilizar em alguns projetos pessoais. Porém, longe de ser o modelo ideal para suas aplicações. Para chegar a um modelo ideal para A aplicação procuro me sentar com toda a equipe de desenvolvimento (se não apenas os mais experientes) para discutirmos o modelo de nossa aplicação e de algumas classes. Para este exemplo, irei fazer uma aplicação ASP.NET e C# 2.0, acessando os dados com ADO.NET. Fazendo tudo isto na mão, sem o auxílio de ferramenta alguma. Bem, em meus projetos costumo começar de cima para baixo, ou seja, crio as camadas na seguinte sequência: Entidade -> DAL -> Business -> Façade -> GUI. Pois me faz pensar primeiramente no problema como um todo, e me faz refletir sobre as possíveis operações e necessidade do sistema. 2.1 Modelando o banco. O banco será bem simples, terá apenas a tabela pessoa.

6 O script para a tabela é: CREATE TABLE [dbo].[pessoa]( [id] [int] IDENTITY(1,1) NOT NULL, [nome] [nvarchar](100) NULL, [datanascimento] [smalldatetime] NULL, [sexo] [nchar](1) NULL, [ ] [nvarchar](50) NULL, [cpf] [nvarchar](15) NULL, CONSTRAINT [PK_Pessoa] PRIMARY KEY CLUSTERED ) 2.2. Entidade A camada de entidade é básica de se fazer, é basicamente um mapeamento das tabelas do banco. Para cada tabela do banco, teremos uma classe na camada de entidades. 1: public class Pessoa 2: { 3: #region Atributos 4: 5: private DateTime _datenascimento; 6: 7: #endregion 8: 9: #region Construtores 10: 11: public Pessoa() 12: { 13: 14: } 15: 16: public Pessoa(int id) 17: { 18: this.id = id; 19: }

7 20: 21: public Pessoa(string nome, DateTime datanascimento, char sexo, string , string cpf) 22: { 23: this.nome = nome; 24: this.datanascimento = datanascimento; 25: this.sexo = sexo; 26: this. = ; 27: this.cpf = cpf; 28: } 29: 30: public Pessoa(int id, string nome, DateTime datanascimento, char sexo, string , string cpf) 31: : this(nome, datanascimento, sexo, , cpf) 32: { 33: this.id = id; 34: } 35: 36: #endregion 37: 38: #region Propriedades 39: 40: public int ID { get; set; } 41: 42: public string Nome { get; set; } 43: 44: public DateTime DataNascimento 45: { 46: get 47: { 48: return this._datenascimento; 49: } 50: set 51: { 52: if (value > DateTime.Now) 53: { 54: throw new DataInvalidaException(); 55: } 56: else 57: { 58: this._datenascimento = value; 59: } 60: } 61: } 62: 63: public char Sexo { get; set; } 64: 65: public string { get; set; } 66: 67: public string Cpf { get; set; } 68: 69: #endregion 70: }

8 Dá para notar que na propriedade DataNascimento é feita uma validação. Essa validação pode ser feita nesta camada, pelo fato de ser uma validação básica, onde não muda de sistema para sistema. Ou seja, em todo local do mundo a data de nascimento de uma pessoa vai ser menos que a data atual Camada de acesso a dados Para criar as camadas de acesso a dados, costumo criar uma (ou mais) interfaces ou classes abstratas que servirão como base criar as classes de acesso a dados de cada entidade. Esta classe ou interface contém definições de métodos básicos, que sei que todas as classes vão conter, como por exemplo: Inserir, Atualizar, Recuperar por ID, Deletar. Para o exemplo, irei utilizar a seguinte interface: 1: /// <summary> 2: /// Interface com todos os métodos necessários para uma classe de DAO 3: /// </summary> 4: /// <typeparam name="t">tipo do objeto que será manipulador pela DAO</typeparam> 5: public interface IDataAccessObject<T> where T : new() 6: { 7: T Get<K>(K id); 8: 9: void Insert(T obj); 10: 11: void Update<K>(K id, T obj); 12: 13: void Delete<K>(K id); 14: } Esta é uma interface genérica que contém métodos básicos para outras classes. Alguns métodos são genéricos por recebem o tipo da chave primária da entidade (int, long, short). Outra classe da DAL que costumo utilizar é uma classe para auxiliar coisas como: criação de parâmetros, criação de comandos, entre outras operações. Como falei anteriormente, você pode utilizar a Microsoft Data Access Application Block para ajudar com esse tipo de coisas. Essa biblioteca contém inúmeros métodos. Para a aplicação de demonstração, irei utilizar uma classe bem simples que fiz apenas para esse exemplo. Detalhe que não estou abstraindo o banco da aplicação, mas aconselho você a criar uma classe que abstraia o banco que esta se utilizando. Outra observação é que está classe está incompleta,

9 fiz apenas para exemplo mesmo. Esta é uma classe que tem que ser bem pensada e bem trabalhada com a finalidade de obter melhor desempenho do banco de dados que está usando. Garanto que não será difícil modificar esta classe para ser genérica. Segue o código da mesma: 1: public class DatabaseHelper 2: { 3: #region Propriedades 4: 5: public SqlConnection MyBdConnection { get; set; } 6: public string NomeStringConexao { get; set; } 7: 8: #endregion 9: 10: #region Construtores 11: 12: public DatabaseHelper() 13: { 14: this.nomestringconexao = "DefaultStringConexao"; 15: this.mybdconnection = new SqlConnection(this.NomeStringConexao); 16: } 17: 18: public DatabaseHelper(string nomestringconexao) 19: { 20: 21: this.nomestringconexao = nomestringconexao; 22: this.mybdconnection = new SqlConnection(this.NomeStringConexao); 23: } 24: 25: #endregion 26: 27: #region Métodos Privados 28: 29: private string GetCorrectParameterName(string parametername) 30: { 31: if (parametername[0]!= '@') 32: { 33: parametername = "@" + parametername; 34: } 35: return parametername; 36: } 37: 38: #endregion 39: 40: #region Métodos Públicos 41: 42: public static DatabaseHelper Create() 43: { 44: return new DatabaseHelper(); 45: } 46: 47: public static DatabaseHelper Create(string nomestringconexao) 48: { 49: return new DatabaseHelper(nomeStringConexao);

10 50: } 51: 52: public void OpenConnection() 53: { 54: if (this.mybdconnection.state == System.Data.ConnectionState.Closed) 55: { 56: this.mybdconnection.open(); 57: } 58: } 59: 60: public void CloseConection() 61: { 62: this.mybdconnection.close(); 63: } 64: 65: public SqlParameter BuildParameter(string nome, object valor, DbType tipo, int size) 66: { 67: SqlParameter parametro = new SqlParameter(this.GetCorrectParameterName(nome), valor); 68: parametro.dbtype = tipo; 69: parametro.size = size; 70: return parametro; 71: } 72: 73: public void BuildParameter(string nome, object valor, DbType tipo, int size, List<SqlParameter> listparametros) 74: { 75: SqlParameter parametro = this.buildparameter(nome, valor, tipo, size); 76: listparametros.add(parametro); 77: } 78: 79: public SqlParameter BuildOutPutParameter(string nome, DbType tipo, int size) 80: { 81: SqlParameter parametro = new SqlParameter(); 82: parametro.parametername = this.getcorrectparametername(nome); 83: parametro.dbtype = tipo; 84: parametro.size = size; 85: parametro.direction = ParameterDirection.Output; 86: return parametro; 87: } 88: 89: public void BuildOutPutParameter(string nome, DbType tipo, int size, List<SqlParameter> listparametros) 90: { 91: SqlParameter parametro = this.buildoutputparameter(nome, tipo, size); 92: listparametros.add(parametro); 93: } 94: 95: public void ExecuteNonQuery(SqlCommand command) 96: { 97: command.executenonquery(); 98: } 99: 100: public void ExecuteNonQuery(SqlCommand command, bool openconnection) 101: {

11 102: if (openconnection) 103: { 104: this.openconnection(); 105: } 106: this.executenonquery(command); 107: if (openconnection) 108: { 109: this.closeconection(); 110: } 111: } 112: 113: public void ExecuteNonQuery(string query, params SqlParameter[] parameters) 114: { 115: Exception erro = null; 116: try 117: { 118: this.openconnection(); 119: SqlCommand command = this.mybdconnection.createcommand(); 120: command.commandtext = query; 121: command.parameters.addrange(parameters); 122: this.executenonquery(command); 123: this.closeconection(); 124: } 125: catch (Exception ex) 126: { 127: erro = ex; 128: } 129: finally 130: { 131: this.closeconection(); 132: } 133: 134: if (erro!= null) 135: { 136: throw erro; 137: } 138: } 139: 140: public void ExecuteCommands(params SqlCommand[] commands) 141: { 142: Exception erro = null; 143: SqlTransaction trans = null; 144: try 145: { 146: this.mybdconnection.open(); 147: trans = this.mybdconnection.begintransaction(); 148: for (int i = 0; i < commands.length; i++) 149: { 150: commands[i].transaction = trans; 151: this.executenonquery(commands[i]); 152: } 153: trans.commit(); 154: this.mybdconnection.close(); 155: }

12 156: catch(exception ex) 157: { 158: trans.rollback(); 159: erro = ex; 160: } 161: finally 162: { 163: this.mybdconnection.close(); 164: } 165: 166: if (erro!= null) 167: { 168: throw erro; 169: } 170: } 171: 172: #endregion 173: } Para criar essa classe auxiliar deve se considerar muitas coisas: - Abrangência; -Desempenho; - Utilização de cachê ou não; - Objetos que serão utilizados para manipular os dados (DataDet, DataTable, SqlDataReader); - Se será utilizado apenas stored procedure ou se todas as querys vão estar na aplicação. -...; Já temos uma interface para nossa camada de acesso a dados e uma classe que irá nos auxiliar com a mesma. Agora nos resta criar as classe de acesso para cada entidade presente em nosso projeto. O código da nossa classe Pessoa será o seguinte: 1: public class PessoaDAO : IDataAccessObject<Pessoa> 2: { 3: #region Atributos 4: 5: private DatabaseHelper databasehelper; 6: 7: #endregion 8: 9: #region Construtores 10: 11: public PessoaDAO() 12: {

13 13: databasehelper = DatabaseHelper.Create(); 14: } 15: 16: #endregion 17: 18: #region IDataAccessObject<Pessoa> Members 19: 20: public Pessoa Get<K>(K id) 21: { 22: Pessoa pessoa = new Pessoa(); 23: SqlDataReader reader = null; 24: try 25: { 26: string query = "SELECT * FROM Pessoa WHERE id 27: databasehelper.openconnection(); 28: reader = databasehelper.executedatareader(query, 29: new SqlParameter("id", id)); 30: while (reader.read()) 31: { 32: pessoa.nome = reader["nome"].tostring(); 33: pessoa.cpf = reader["cpf"].tostring(); 34: pessoa.datanascimento = Convert.ToDateTime(reader["dataNascimento"]); 35: pessoa. = reader[" "].tostring(); 36: pessoa.id = Convert.ToInt32(reader["nome"]); 37: } 38: reader.close(); 39: this.databasehelper.closeconection(); 40: } 41: finally 42: { 43: if (reader!= null) 44: { 45: reader.close(); 46: } 47: this.databasehelper.closeconection(); 48: } 49: return pessoa; 50: } 51: 52: public void Insert(Pessoa obj) 53: { 54: string query = "INSERT INTO PESSOA (nome, datanacimento, cpf, , sexo) 55: this.databasehelper.executenonquery(query, 56: new SqlParameter("nome", obj.nome), 57: new SqlParameter("dataNascimento", obj.datanascimento), 58: new SqlParameter("cpf", obj.cpf), 59: new SqlParameter(" ", obj. ), 60: new SqlParameter("sexo", obj.sexo)); 61: } 62: 63: public void Update<K>(K id, Pessoa obj) 64: { 65: throw new NotImplementedException();

14 66: } 67: 68: public void Delete<K>(K id) 69: { 70: throw new NotImplementedException(); 71: } 72: 73: #endregion 74: } Simples não é?! A implementação dos métodos de delete e update, eu deixo como exercício para você. :D 2.3. Camada de Negócio A idéia da camada de negócio é bastante simples. Como falei anteriormente, ela tem o papel de acessar a camada de dados e é quem fará validações em cima da mesma. Geralmente, assim como a camada de DAL, costumo criar uma interface nessa camada com os métodos mais utilizados. Mas para exemplo irei mostrar apenas o método insert da classe de negócio de pessoa. 1: public class PessoaBus 2: { 3: private PessoaDAO pessoadao; 4: 5: public PessoaBus() 6: { 7: this.pessoadao = new PessoaDAO(); 8: } 9: 10: public void Inserir(Pessoa pessoa) 11: { 12: //caso haja validação, ela pode ser feita neste método mesmo. 13: this.pessoadao.insert(pessoa); 14: } 15: } Um padrão que costumo utilizar nessa camada são as factories. Que tem o papel de criar instâncias das classes. Ou seja, com esse padrão eu consigo ter acesso a qualquer objeto acessando apenas uma classe. Exemplo de Factory: 1: public static class FactoryDAO 2: { 3: public static ContatoDAO CreateContatoDAO() 4: { 5: return new ContatoDAO();

15 6: } 7: 8: public static ContatoDAO CreatePessoaDAO() 9: { 10: return new PessoaDAO(); 11: } 12: } 2.4. Façade Tier Façade é simples o bastante que dispensa palavras. Então vamos ao exemplo: Arquivo 1: Facade.cs 1: public partial class Facade 2: { 3: private PessoaDAO _pessoadao; 4: private ContatoDAO _contatodao; 5: 6: public Facade() 7: { 8: _contatodao = FactoryDAO.CreateContatoDAO(); 9: _pessoadao = FactoryDAO.CreatePessoaDAO(); 10: } 11: } Arquivo 2: PessoaFacade.cs 1: public partial class Facade 2: { 3: public void InserirPessoa(Pessoa pessoa) 4: { 5: this._pessoadao.insert(pessoa); 6: } 7: 8: public void UpdatePessoa(int id, Pessoa pessoa) 9: { 10: this._pessoadao.update<int>(id, pessoa); 11: } 12: 13: public Pessoa GetPessoa(int id) 14: { 15: return this._pessoadao.get<int>(id); 16: } 17: 18: public void DeletePessoa(int id) 19: {

16 20: 21: } 22: } this._pessoadao.delete<int>(id); OBS: Notar o uso da palavra chave partial UI Tier Não irei mostrar exemplo de código desta camada. Pois este é o nosso projeto ASP.NET que já sabemos. A única coisa que devemos fazer nessa camada é encapsular os dados no objeto Pessoa, por exemplo e em seguida passar o mesmo para algum método da Façade. Bem, espero ter ajudado. O básico de uma boa arquitetura de sistema é isto. Pode ter certeza que lendo esse material, depois de ter entendido o mesmo por completo e depois ler profundamente sobre padrões de projetos você estará totalmente apto para criar uma aplicação bem modelada e arquitetada. Em outra oportunidade escreverei um pouco mais sobre arquitetura em camadas e trarei exemplos de sistemas bem arquitetados. Abraços.

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

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)

Leia mais

Construindo Aplicações com ASP.NET MVC 2.0 Aula 03 Luiz Alberto Ferreira Gomes. Ciência da Computação da PUC Minas

Construindo Aplicações com ASP.NET MVC 2.0 Aula 03 Luiz Alberto Ferreira Gomes. Ciência da Computação da PUC Minas Construindo Aplicações com ASP.NET MVC 2.0 Aula 03 Luiz Alberto Ferreira Gomes Ciência da Computação da PUC Minas 2 Camada responsável por armazenar em um repositório de dados e reconstituir objetos de

Leia mais

Autor: Ricardo Francisco Minzé Júnior - ricardominze@yahoo.com.br Desenvolvendo aplicações em camadas com PHP 5.

Autor: Ricardo Francisco Minzé Júnior - ricardominze@yahoo.com.br 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

Leia mais

AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS

AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS Na grande maioria dos sistemas, faz-se necessário utilizar informações que estão armazenadas em uma determinada

Leia mais

Código do Sistema Ponto de Vendas

Código do Sistema Ponto de Vendas Código do Sistema Ponto de Vendas O sistema ponto de vendas, tem como finalidade implementar um pequeno sistema em WPF, que sirva de exemplo para a turma da disciplina Ambiente de Programação e Banco de

Leia mais

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro (bruno.calegaro@ifsc.edu.br) Maio/ 2015

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro (bruno.calegaro@ifsc.edu.br) Maio/ 2015 Manipulação de Banco de Dados com Java Ms. Bruno Crestani Calegaro (bruno.calegaro@ifsc.edu.br) Maio/ 2015 Acesso a um SGBD Em sistemas mais simples o uso de arquivos pode ser usado mas para aplicações

Leia mais

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 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

Leia mais

C# - Conexão com MySQL

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.

Leia mais

Módulo 5 JPATransaction Camadas Turma Turma TurmaBC .business @BusinessController TurmaBC TurmaBC TurmaBC

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

Leia mais

Persistência 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

Leia mais

Treinamento sobre SQL

Treinamento sobre SQL Treinamento sobre SQL Como Usar o SQL Os dois programas que você mais utilizara no SQL Server são: Enterprise Manager e Query Analyzer. No Enterprise Manager, você pode visualizar e fazer alterações na

Leia mais

1. Domínio dos Atributos

1. Domínio dos Atributos Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br 1. Domínio dos Atributos Por domínio, ou tipo, pode-se entender como a maneira como determinado atributo (ou campo, se tratando

Leia mais

Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser

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

Leia mais

Projeto de Banco de Dados

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

Leia mais

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária

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

Leia mais

using System; using System.Collections.Generic; using System.Text; namespace Estudo { public class PessoaJuridica : Pessoa { private string cnpj;

using System; using System.Collections.Generic; using System.Text; namespace Estudo { public class PessoaJuridica : Pessoa { private string cnpj; using System; using System.Collections.Generic; using System.Text; namespace Estudo public abstract class Pessoa private int idpessoa; private string nome; public int IdPessoa get return this.idpessoa;

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA RESUMO DE AULA CRIAÇÃO E MANIPULAÇÃO DO BANCO DE DADOS

Leia mais

2008.1. A linguagem SQL

2008.1. A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

Prototype, um Design Patterns de Criação

Prototype, um Design Patterns de Criação Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe

Leia mais

Orientação a Objetos

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

Leia mais

2008.1 SQL. Autor: Renata Viegas

2008.1 SQL. Autor: Renata Viegas SQL Autor: Renata Viegas A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua

Leia mais

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 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

Leia mais

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 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

Leia mais

Principais Comandos SQL Usados no MySql

Principais Comandos SQL Usados no MySql Principais Comandos SQL Usados no MySql O que é um SGBD? Um Sistema Gerenciador de Banco de Dados (como no Brasil) ou Sistema Gestor de Base de Dados (SGBD) é o conjunto de programas de computador (softwares)

Leia mais

Persistindo dados com TopLink no NetBeans

Persistindo dados com TopLink no NetBeans Persistindo dados com TopLink no NetBeans O que é TopLink? O TopLink é uma ferramenta de mapeamento objeto/relacional para Java. Ela transforma os dados tabulares de um banco de dados em um grafo de objetos

Leia mais

Profº Aldo Rocha. Banco de Dados

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

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

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.

Leia mais

Persistência de Classes em Tabelas de Banco de Dados

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

Leia mais

Acesso a Banco de Dados usando C# (MySql Provider)

Acesso a Banco de Dados usando C# (MySql Provider) Ambiente de Programação Visual Acesso a Banco de Dados usando C# (MySql Provider) Prof. Mauro Lopes 1-31 22 Objetivos Nesta aula iremos apresentar o ADO.NET. Esta importante parte da tecnologia.net permite

Leia mais

Aula 06 Usando controles em ASP.NET

Aula 06 Usando controles em ASP.NET Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina: Linguagem de Programação Plataforma.NET 2 Aula 06 Usando controles em ASP.NET Nas propriedades do FORM temos a opções EnableViewState. Esta

Leia mais

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

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.

Leia mais

Para criar uma animação precisamos de uma imagem e que ela contenha alguns frames. O número de frames é uma escolha sua.

Para criar uma animação precisamos de uma imagem e que ela contenha alguns frames. O número de frames é uma escolha sua. 7 Animação Animações é um dos quesitos muito importantes em jogos, você não acha? Para isso o JPlay tem uma classe específica para lidar com animações. Essa classe se chama Animation. Bem sugestivo o nome

Leia mais

Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++.

Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++. Data: 14/8 Página 1 de 9 Primeiros passos Introdução Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++. No tutorial anterior, mostramos como

Leia mais

Transações Seguras em Bancos de Dados (MySQL)

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

Leia mais

Padrões de Projeto e Persistência com DAO

Padrões de Projeto e Persistência com DAO Curso de Análise de Sistemas Análise de Sistemas II Padrões de Projeto e Persistência com DAO Prof. Giuliano Prado de Morais Giglio, M.Sc. Introdução a Padrões de Projeto Padrões de Projeto foram inicialmente

Leia mais

JDBC. Prof. Márcio Bueno (poonoite@marciobueno.com)

JDBC. Prof. Márcio Bueno (poonoite@marciobueno.com) JDBC Prof. Márcio Bueno (poonoite@marciobueno.com) JBDC Java Database Connectivity ou JDBC é um conjunto de classes e interfaces (API) escritas em Java que faz o envio de instruções SQL para qualquer banco

Leia mais

Programação SQL. Introdução

Programação SQL. Introdução Introdução Principais estruturas duma Base de Dados: Uma BD relacional é constituída por diversas estruturas (ou objectos ) de informação. Podemos destacar: Database: designa a própria BD; Table/Tabela:

Leia mais

Manipulação de Banco de Dados com Java 1. Objetivos

Manipulação de Banco de Dados com Java 1. Objetivos Manipulação de Banco de Dados com Java 1. Objetivos Demonstrar os fundamentos básicos para a manipulação de banco de dados com Java; Apresentar a sintaxe de comandos SQL usados em Java. 2. Definições A

Leia mais

Guia de Fatores de Qualidade de OO e Java

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.

Leia mais

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Criando Banco de Dados, Tabelas e Campos através do HeidiSQL Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 2 Pedreiros da Informação Criando Banco de Dados, Tabelas e Campos através do HeidiSQL

Leia mais

3.5. Cuidado com o modelo anêmico

3.5. Cuidado com o modelo anêmico 3.5. Cuidado com o modelo anêmico public Periodo adiaumasemana() { Calendar novofim = (Calendar) this.fim.clone(); novofim.add(calendar.day_of_month, 7); return new Periodo(inicio, novofim); E, com uma

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

Leia mais

Bancos de Dados: impossível viver sem eles...

Bancos de Dados: impossível viver sem eles... Bancos de Dados: impossível viver sem eles... Vanessa Braganholo vanessa@ic.uff.br Vocês já sabem programar... Problema: eu preciso calcular a média de uma turma de Estruturas de Dados II public static

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP INTEGRAÇÃO COM MYSQL PARTE 1 INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança

Leia mais

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito) 8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito) Nos itens anteriores vimos transações do tipo explícitas, ou seja, aquelas que iniciam com BEGIN TRANSACTION. As outras

Leia mais

Roteiro do Programa e Entrada/Saída

Roteiro do Programa e Entrada/Saída Roteiro do Programa e Entrada/Saída c Professores de ALPRO I Faculdade de Informática PUCRS 03/2012 ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 1 / 32 Sumário 1 Relembrando 2 Programa Definição de

Leia mais

Consulta de endereço através do Cep

Consulta de endereço através do Cep --------------------------------------------------------------------------------------------- Por: Giancarlo Fim giancarlo.fim@gmail.com Acesse: http://giancarlofim.wordpress.com/ ---------------------------------------------------------------------------------------------

Leia mais

Implementando uma Classe e Criando Objetos a partir dela

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

Leia mais

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda. SQL comando SELECT Uma das tarefas mais requisitadas em qualquer banco de dados é obter uma listagem de registros armazenados. Estas tarefas são executadas pelo comando SELECT Sintaxe: SELECT [DISTINCT]

Leia mais

Leonardo Gresta Paulino Murta leomurta@gmail.com

Leonardo Gresta Paulino Murta leomurta@gmail.com Leonardo Gresta Paulino Murta leomurta@gmail.com 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

Leia mais

MANUAL DE NORMAS PARA DESENVOLVIMENTO DE CÓDIGO DA FÁBRICA VIRTUAL DE SOFTWARE DA FIPP. Curso Superior de Tecnologia em Sistemas para Internet 2/2014

MANUAL DE NORMAS PARA DESENVOLVIMENTO DE CÓDIGO DA FÁBRICA VIRTUAL DE SOFTWARE DA FIPP. Curso Superior de Tecnologia em Sistemas para Internet 2/2014 MANUAL DE NORMAS PARA DESENVOLVIMENTO DE CÓDIGO DA FÁBRICA VIRTUAL DE SOFTWARE DA FIPP Curso Superior de Tecnologia em Sistemas para Internet 2/2014 1. Nomes e localização dos arquivos do projeto: O template

Leia mais

Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 5 SELECT * FROM Minha_memoria Revisando Sintaxes SQL e Criando programa de Pesquisa Ano:

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

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

Leia mais

Tabela e Gráficos Dinâmicos Como estruturar dinamicamente dados no Excel

Tabela e Gráficos Dinâmicos Como estruturar dinamicamente dados no Excel Tabela e Gráficos Dinâmicos Como estruturar! Para que serve a Tabela e o Gráfico Dinâmico?! Como criar uma Tabela Dinâmica?! Como criar um Gráfico Dinâmico?! Como podemos atualizar dos dados da Tabela

Leia mais

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO Antes de criarmos um novo Banco de Dados quero fazer um pequeno parênteses sobre segurança. Você deve ter notado que sempre

Leia mais

Projeto de Banco de Dados: Empresa X

Projeto de Banco de Dados: Empresa X Projeto de Banco de Dados: Empresa X Modelo de negócio: Empresa X Competências: Analisar e aplicar o resultado da modelagem de dados; Habilidades: Implementar as estruturas modeladas usando banco de dados;

Leia mais

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. 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

Leia mais

Desenvolvimento de Aplicações para Internet Aula 8

Desenvolvimento de Aplicações para Internet Aula 8 Desenvolvimento de Aplicações para Internet Aula 8 Celso Olivete Júnior olivete@fct.unesp.br na aula passada Orientação a Objetos Classes Objetos Construtores Destrutores 2 na aula passada Construtores

Leia mais

Introdução a Java. Hélder Nunes

Introdução a Java. Hélder Nunes Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais

Leia mais

Disciplina: Unidade III: Prof.: E-mail: Período:

Disciplina: Unidade III: Prof.: E-mail: Período: Encontro 08 Disciplina: Sistemas de Banco de Dados Unidade III: Modelagem Lógico de Dados Prof.: Mario Filho E-mail: pro@mariofilho.com.br Período: 5º. SIG - ADM Relembrando... Necessidade de Dados Projeto

Leia mais

Tarefa Orientada 15 Manipulação de dados

Tarefa Orientada 15 Manipulação de dados Tarefa Orientada 15 Manipulação de dados Objectivos: Criação de tabelas teste Comando INSERT INTO Inserção de dados Comando INSERT Actualização de dados Comando UPDATE Eliminação de dados Comando DELETE

Leia mais

3 Dicas MATADORAS Para Escrever Emails Que VENDEM Imóveis

3 Dicas MATADORAS Para Escrever Emails Que VENDEM Imóveis 3 Dicas MATADORAS Para Escrever Emails Que VENDEM Imóveis O que é um e- mail bem sucedido? É aquele e- mail que você recebe o contato, envia o e- mail para o cliente e ele te responde. Nós não estamos

Leia mais

Apresentação. Nossa sugestão é que você experimente e não tenha medo de clicar!!!

Apresentação. Nossa sugestão é que você experimente e não tenha medo de clicar!!! Apresentação Este manual é uma orientação para os participantes de cursos no ambiente Moodle do INSTITUTO PRISMA. Tem como objetivo orientar sobre as ações básicas de acesso e utilização do ambiente virtual

Leia mais

Desenvolvendo Aplicações Web com NetBeans

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

Leia mais

Prof. Carlos Majer Aplicações Corporativas UNICID

Prof. Carlos Majer Aplicações Corporativas UNICID Este material pertence a Carlos A. Majer, Professor da Unidade Curricular: Aplicações Corporativas da Universidade Cidade de São Paulo UNICID Licença de Uso Este trabalho está licenciado sob uma Licença

Leia mais

Bases de Dados. Lab 1: Introdução ao ambiente

Bases de Dados. Lab 1: Introdução ao ambiente Departamento de Engenharia Informática 2010/2011 Bases de Dados Lab 1: Introdução ao ambiente 1º semestre O ficheiro bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo

Leia mais

sobre rogério gonçalves gerente de projetos > digitale agência digital rogerio@digitale.com.br h7p://www.digitale.com.br h7p://leveme.

sobre rogério gonçalves gerente de projetos > digitale agência digital rogerio@digitale.com.br h7p://www.digitale.com.br h7p://leveme. sobre rogério gonçalves gerente de projetos > digitale agência digital rogerio@digitale.com.br h7p://www.digitale.com.br h7p://leveme.la/rogerio definição - é uma forma de programar e organizar um sistema

Leia mais

Desenvolvendo Websites com PHP

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.

Leia mais

TechProf Documento de Arquitetura

TechProf Documento de Arquitetura TechProf Projeto SuporteProf Versão 1.0 15 de junho de 2016 Responsáveis: Adelson Santos de Melo Filho, Edvaldo Nicolau da Silva, Moisés Luis da Silva Histórico de Revisões Data Versão Descrição Autor

Leia mais

Repeater no GASweb. Regiões

Repeater no GASweb. Regiões Repeater no GASweb Por: Rodrigo Silva O controle de servidor Repeater é um container básico que permite a você criar uma lista de qualquer informação que deseja em uma página Web. Ele não tem uma aparência

Leia mais

Introdução ao SQL. Aécio Costa

Introdução ao SQL. Aécio Costa Aécio Costa A linguagem SQL é um padrão de linguagem de consulta comercial e possui as seguintes partes: Linguagem de definição de dados (DDL) Linguagem interativa de manipulação de dados (DML) Definição

Leia mais

FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA. Módulo de Programação Prof. Bruno Maciel

FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA. Módulo de Programação Prof. Bruno Maciel FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA Módulo de Programação Prof. Bruno Maciel Competências a serem trabalhadas nessa aula Criação da Base de Dados (MySQL) Criação de Tabelas Tipo de Dados Chave Primária

Leia mais

Validação de formulário : CEP, Email e CPF

Validação de formulário : CEP, Email e CPF Validação de formulário : CEP, Email e CPF Publicado em: 14/09/2003 A ASP.NET veio para facilitar ainda mais o desenvolvimento para WEB, trazendo consigo todo um conjunto inovações que visam facilitar

Leia mais

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 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

Leia mais

Programação Orientada a Objetos no C#.NET usando Padrões de Projeto MARCELO SANTOS DAIBERT E MARCO ANTÔNIO PEREIRA ARAÚJO

Programação Orientada a Objetos no C#.NET usando Padrões de Projeto MARCELO SANTOS DAIBERT E MARCO ANTÔNIO PEREIRA ARAÚJO POO Programação Orientada a Objetos no C#.NET usando Padrões de Projeto MARCELO SANTOS DAIBERT E MARCO ANTÔNIO PEREIRA ARAÚJO Marcelo Santos Daibert (marcelo@daibert.net) é professor do Curso de Bacharelado

Leia mais

AULA 4 Sistemas Operacionais

AULA 4 Sistemas Operacionais AULA 4 Sistemas Operacionais Disciplina: Introdução à Informática Professor: Gustavo Leitão Email: gustavo.leitao@ifrn.edu.br Sistemas Operacionais Conteúdo: Continuação S.O Funções Básicas Sistema de

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS

Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS Coleções Conceitos e Utilização Básica c Professores de ALPRO I Faculdade de Informática PUCRS 05/2012 ALPRO I (FACIN) Coleções: Básico 05/2012 1 / 41 Nota Este material não pode ser reproduzido ou utilizado

Leia mais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais 1 LINGUAGEM SQL SQL Server 2008 Comandos iniciais SQL - STRUCTURED QUERY LANGUAGE Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas à sua manipulação.

Leia mais

AJAX no GASweb. Mas e afinal, para que usamos o AJAX?

AJAX no GASweb. Mas e afinal, para que usamos o AJAX? Nível - Avançado AJAX no GASweb Por: Pablo Hadler AJAX (Asynchronous Javascript and XML) foi criado com o princípio de ser uma maneira rápida e otimizada de podermos fazer requisições Web, sendo esta totalmente

Leia mais

Demoiselle Report Guide. Demoiselle Report. Marlon Carvalho. <marlon.carvalho@gmail.com> Rodrigo Hjort. <rodrigo.hjort@gmail.com> Robson Ximenes

Demoiselle Report Guide. Demoiselle Report. Marlon Carvalho. <marlon.carvalho@gmail.com> Rodrigo Hjort. <rodrigo.hjort@gmail.com> Robson Ximenes Demoiselle Report Guide Demoiselle Report Marlon Carvalho Rodrigo Hjort Robson Ximenes Demoiselle Report... v 1. Configuração

Leia mais

GANHAR DINHEIRO COM SEU SITE OU BLOG

GANHAR DINHEIRO COM SEU SITE OU BLOG GANHAR DINHEIRO COM SEU SITE OU BLOG Ganhe dinheiro com seu blog.... Aposto que você já viu isso escrito em centenas de sites ou blogs e nunca conseguir atingir esse objetivo, aqui nesse ebook iremos abordar

Leia mais

Solução do segundo exercício proposto REDE DE HOTÉIS

Solução do segundo exercício proposto REDE DE HOTÉIS Solução do segundo exercício proposto REDE DE HOTÉIS Este exemplo já tem um pouco mais de complexidade devido à quantidade de entidades envolvidas no cenário. Em um primeiro momento a solução poderia ficar

Leia mais

Lógica de Programação

Lógica de Programação Lógica de Programação Unidade 20 ArrayList: Operações de Busca Curso Técnico em Informática SUMÁRIO INTRODUÇÃO... 3 TIPOS DE BUSCAS... 3 BUSCA ESPECÍFICA... 3 BUSCA ABRANGENTE... 3 PROCEDIMENTO DE BUSCA...

Leia mais

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Introdução à Engenharia da Computação. Banco de Dados Professor Machado Introdução à Engenharia da Computação Banco de Dados Professor Machado 1 Sistemas isolados Produção Vendas Compras Banco de Dados Produtos... Banco de Dados Produtos... Banco de Dados Produtos... Desvantagens:

Leia mais

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Introdução à Banco de Dados. Nathalia Sautchuk Patrício Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem

Leia mais

Sensor de temperatura Parte 5 Cleiton Bueno www.cleitonbueno.wordpress.com. Preparando o ambiente do Banco de dados Mysql

Sensor de temperatura Parte 5 Cleiton Bueno www.cleitonbueno.wordpress.com. Preparando o ambiente do Banco de dados Mysql Criar database: Sensor de temperatura Parte 5 Cleiton Bueno www.cleitonbueno.wordpress.com Preparando o ambiente do Banco de dados Mysql CREATE DATABASE `tempuino` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin

Leia mais

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados. 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 alexandre.matos@udesc.br INTRODUÇÃO Hoje é

Leia mais

Drive MySql de conexão para Eclipse

Drive MySql de conexão para Eclipse Drive MySql de conexão para Eclipse de Setembro de 0 Olá, neste artigo iremos focar em como utilizar o drive de conexão do Mysql na IDE eclipse. Veremos passo-a-passo como instalar, o que é uma coisa muito

Leia mais

Android e Bancos de Dados

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

Leia mais

Acessando um Banco de Dados

Acessando um Banco de Dados Acessando um Banco de Dados Introdução Agora que você já está craque em JSP e já instalou seu servidor, vamos direto para a parte prática! Neste tutorial vamos aprender a acessar um banco de dados. Para

Leia mais

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI FORMULÁRIO COM ABAS E BUSCAS DE REGISTROS

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI FORMULÁRIO COM ABAS E BUSCAS DE REGISTROS ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI FORMULÁRIO COM ABAS E BUSCAS DE REGISTROS FORMULÁRIOS COM ABAS Trabalhar com abas (ou guias) é um recurso

Leia mais

FACULDADE DE TECNOLOGIA SENAC GOIÁS. TÓPICOS ESPECIAIS EM BANCO DE DADOS

FACULDADE DE TECNOLOGIA SENAC GOIÁS. TÓPICOS ESPECIAIS EM BANCO DE DADOS FACULDADE DE TECNOLOGIA SENAC GOIÁS. TÓPICOS ESPECIAIS EM BANCO DE DADOS Alunos: Erik de Oliveira, Douglas Ferreira, Raphael Beghelli, João Victor Alves. Introdução: Neste projeto, que faz uso de apenas

Leia mais

JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES

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

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos.

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

Leia mais

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Ao projetar uma aplicação Web, é importante considerála como sendo formada por três componentes lógicos: camada

Leia mais

Trecho retirando do Manual do esocial Versão 1.1

Trecho retirando do Manual do esocial Versão 1.1 Trecho retirando do Manual do esocial Versão 1.1 A rotina de acesso direto ao XML do S-1000, o usuário pode encontrar na opção de cadastro de Empresas do SIP. Sempre que o usuário localizar a figura ao

Leia mais

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 2-1. PRINCÍPIOS DE SOFTWARE DE ENTRADA E SAÍDA (E/S) As metas gerais do software de entrada e saída é organizar o software como uma série de camadas, com as mais baixas preocupadas em esconder as

Leia mais