Catalog · How the catalog works
springmodelgenerator
Gerador de código Delphi para criação automática de entidades de modelo e ViewModels baseadas em tabelas de banco de dados, utilizando o framework Spring4D.
- ★ 3 on GitHub
Anyone may press Interesting, signed in or not. It helps others find this project.
README
Spring Model Generator
Gerador de código Delphi para criação automática de entidades de modelo e ViewModels baseadas em tabelas de banco de dados, utilizando o framework Spring4D.
📋 Descrição
O Spring Model Generator é uma aplicação desktop desenvolvida em Delphi que automatiza a geração de classes de modelo (Entities) e ViewModels para projetos que utilizam o framework Spring4D. A ferramenta conecta-se a um banco de dados, analisa as tabelas e gera automaticamente o código Pascal seguindo os padrões do Spring Framework.
✨ Funcionalidades
- Conexão com Banco de Dados: Suporte para Firebird/InterBase e outros bancos via ODBC
- Geração de Entidades de Modelo: Cria classes Delphi com atributos do Spring Persistence
- Geração de ViewModels: Cria ViewModels com suporte a notificação de mudanças de propriedades
- Interface Gráfica Intuitiva: Seleção visual de tabelas com busca e filtros
- Configuração Persistente: Salva configurações de conexão e preferências
- Suporte a Tipos Nullable: Opção para usar tipos nullable do Spring
- Nomenclatura Customizável: Prefixo de unidade configurável
🛠️ Requisitos
- Delphi: Versão compatível com Spring4D
- Spring4D Framework: Biblioteca Spring.Persistence.Mapping.CodeGenerator
- VirtualTrees: Componente para exibição de árvore de tabelas
- JsonDataObjects: Para persistência de configurações
- Banco de Dados: Firebird/InterBase ou qualquer banco com driver ODBC
📁 Estrutura do Projeto
springmodelgenerator/
????????? CodeGenerator.dpr # Projeto principal
????????? CodeGenerator.dproj # Arquivo de projeto
????????? MainView.pas # Interface principal da aplica????o
????????? MainView.dfm # Formul??rio da interface
????????? MainRunner.pas # L??gica de execu????o e gerenciamento
????????? ModelGenerator.pas # Gerador de c??digo para entidades e ViewModels
????????? JsonDataObjects.pas # Biblioteca para manipula????o de JSON
????????? Clean.bat # Script de limpeza🚀 Como Usar
1. Configuração Inicial
- Abra o projeto
CodeGenerator.dprno Delphi - Compile e execute a aplicação
2. Conectar ao Banco de Dados
- Preencha a Connection String (ou use o botão para configurar via ODBC)
- Informe o Nome do Banco de Dados
- Informe o Schema (se aplicável)
- Clique em Conectar
3. Selecionar Tabelas
- Após a conexão, as tabelas serão listadas na árvore
- Use a busca para filtrar tabelas
- Marque as tabelas que deseja gerar código
- Use "Check All" ou "Uncheck All" para selecionar/desselecionar todas
4. Configurar Geração
- Defina o Diretório de Saída onde os arquivos serão gerados
- Configure o Prefix da Unidade (ex:
Eagle.ERP.Vendas) - Marque Use Nullable Types se desejar usar tipos nullable do Spring
5. Gerar Código
- Clique em Gerar Unidades
- Para cada tabela selecionada, informe o Nome da Entidade
- Os arquivos
.passerão gerados no diretório de saída
📝 Tipos de Código Gerado
Entidade de Modelo (Model Entity)
Gera classes com:
- Atributos
[Entity]e[Table]do Spring Persistence - Campos privados com getters e setters
- Propriedades públicas
- Registro automático no container do Spring
- Suporte a tipos nullable (opcional)
ViewModel
Gera classes com:
- Herança de
TPropertyChangedBase(DSharp) - Injeção de dependência com
[Inject] - Propriedades que delegam para a entidade de modelo
- Notificação automática de mudanças de propriedades
- Getters e setters implementados
⚙️ Configurações
As configurações são salvas automaticamente em:
%USERPROFILE%\Marshmallow\runner.jsonConfigurações salvas:
- Connection String
- Database Name
- Default Schema Name
- Output Directory
- Unit Prefix
- Use Nullable Types
🔧 Dependências
- Spring4D: Framework de persistência e injeção de dependência
- VirtualTrees: Componente para exibição de árvores
- JsonDataObjects: Manipulação de JSON
- DSharp: Framework MVVM (para PropertyChangedBase)
📄 Licença
Este projeto é fornecido como está, sem garantias.
🤝 Contribuindo
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou pull requests.
📞 Suporte
Para questões ou problemas, abra uma issue no repositório do projeto.

