Generation of POJOs and DAOs Classes from Metadata Database
Keywords:Plain Old Java Objects, Data Access Objects, Object Relational Mapping, Database, Database Management System, Persistence Layer, ORM frameworks, EBNF, ANTLR, XML, METADATA
Implementing the persistence layer is a task that the Object Relational Mapping (ORMs) tools have standardized through diverse frameworks and Application Programming Interfaces (APIs). However, these ORMs and APIs have some inconveniences related to their configuration process and the time and effort it takes to learn them, amongst others. For example, every time a database is used, a configuration process is realized to map the database to obtain Plain Old Java Objects (POJOs) and Data Access Objects (DAOs). In order to overcome those disadvantages, this work contributes by proposing a reusable and extensible process that supports the automatic generation of POJOs and DAOs from database scheme metadata, through the specification of an Extended Backus–Naur Form (EBNF) grammar. A tool named GenPOJO was developed in order to test the process. Unlike the existing ORMs, the proposed process does not require the configuration steps for each database. In addition, GenPOJO does not require time to learn since the only input it receives is a file in XML (eXtensible Markup Language) format containing the database scheme metadata.
D. Neha, A. Emad, and T. M. Hussein, “Review on JPA BaseORM Data Persistence Framework,” International Journal of Computer Theory and Engineering, vol. 9, no. 5, Oct. 2017.
S. Anuj, and P. N. Barwal, “JOOQ-JAVA OBJECT ORIENTED QUERYING,” International Journal of Research in Engineering and Technology, vol. 3, no. 9, pp. 315–319, 2014.
W. Quinglin, H. Yanzhong, and W. Yang., “Research on Data Persistence Layer Based on Hibernate Framework,” 2010 2nd International Workshop on Intelligent Systems and Applications, 2010, pp. 1-4.
R. M'hamed, M. Samir, “Model-Driven Generation of MVC2 Web Applications: From Models to Code,” International Journal of Engineering and Applied Computer Science (IJEACS), vol. 02, Issue: 07, 2017.
V. Crespín, and L. David, “Aplicación móvil de facturación electrónica para la empresa Bigdata C.A. a través de una arquitectura distribuida interoperable,” I.S. thesis, Dept. Ciencias Comp., Univ. de las Fuerzas Armadas, Ecuador, 2017.
R. Rajesh, “Specification of Data Access Objects and Persistence Layer for Problem-Specific Mobility Information Systems,” M.S. thesis, Tampere Technology Univ., Finland, 2016.
Y. K. Nassima, S. Michal, and M. Rachida, “Generating Database Access Code From Domain Models,” Proceedings of the Federated Conference on Computer Science and Information Systems, 2015, pp. 991–996.
J.C. Meng, C.D. Shi and L.M. Luo, “Performance Optimization of Teaching Web Application Based SSH Framework,” Software Engineering and Information Technology, 2015, pp. 93-98.
P. V. Rubén, C. C. Alejandro, R. S. Adriana, and C. R. Juan Carlos, “Personalized Knowledge Management in Environments of Web-Based Education,” International Journal of Information Technology & Decision Making, vol. 12, no. 02, 2013, pp. 277-307.
C. C. Emilia, E. Eduard, and L. Monica, “The Necessity of Implementation Monitoring Framework Using Open Source Technologies in Romanian Information Systems Market,” World Scientific Proceedings Series on Computer Engineering and Information Science, Decision Making Systems in Business Administration, 2013, pp. 321-328.
E. Redouane, E. Mohammed, E. Fouad, and A. Mohamed, “Model-to-Model Transformation in Approach by Modeling to Generate a RIA Model with GWT,” International Conference on Information Technology and Communication Systems ITCS, 2017, 2017, pp. 82-94.
D. Ponnekanti, P. J. Naga Durga, and V. Surendra, “Sales Management Portal,” Governors State Univ. OPUS Open Portal to University Scholarship, Illinois, 2017.
C. Wei, and Z. Naihai, “Research and Development of Filing Management System of School Personnel Information Based on Web,” Journal of Applied Science and Engineering Innovation, vol.4, no.4, pp. 127-130, 2017.
W. Lin, “Web-based Software Reengineering: A case study on next generation product-selection system,” Kth Royal Institute of Technology School of Information and Communication Technology, Stockholm Sweden, 2017.
H. M. José, “Herramienta para la Monitorización de la Distribución de Documentos,” I.S. thesis, Depto. de Tecnologías de Información, Castilla-La Mancha Univ., Spain, 2017.
A. Saeed, “Remote Health Service System based on Struts2 and Hibernate,” M.S. thesis, Computer Science and Information Technology, St. Cloud State Univ., Minnesota, 2017.
M. Ahmed, “Implementation of Course Scoring System Based on Spring MVC and Hibernate,” M.S. thesis, Computer Science and Information Technology, St. Cloud State Univ., Minnesota, 2016.
R. Lakshmi, “Development of E-Institute Management System Based on Integrated SSH Framework,” International Journal of Emerging Trends & Technology in Computer Science (IJETTCS), vol. 5, Issue 3, 2016.
D. S. L. Carlos, “Full Stack Application Generation for Insurance Sales based on Product Models,” M.S. thesis, Instituto Superior de Engenharia do Porto, 2016.
G. Elene, “Developing a RESTful Web Application for GAL System,” M.S. thesis, School of Technology and Management of Bragança, Portugal, 2016.
V. A. Alfred, and S. Ravi, and U. Jeffrey , “Un Compilador sencillo de una pasada,” in Compiladores: Principios, técnicas y herramientas, pp. 25-40, 1998.
“T. Parr, What is ANTLR?.” [Online]. Available: http://www.antlr.org/, [Accessed: 18-May-2020].
“Oracle, MySQL Workbench 6.2.” [Online]. Available: http://www.mysql.com/products/workbench/.
“FabForce Fabulous Force Databse Tools.” [Online]. Available: http://fabforce.eu/dbdesigner4/, 2003. [Accessed: 12-May-2020].
“Moodle.” [Online]. Available: https://download.moodle.org/, [Accessed: 10-Nov-2019].
“Sanatorio Fatima de Cordoba.” [Online]. Available: https://www.cylex.mx/c%25c3%25b3rdoba- c%25c3%25b3rdoba/sanatorio+fatima+de+córdoba-11228996.html. [Accessed: 25-Nov-2020].
A. E. Danny, and A. I. Fernando, "Hibernate and spring - An analysis of maintainability against performance," Revista Facultad de Ingeniería, Universidad de Antioquia, no. 80, 2016, pp. 97-108.
Y. Cong, C. Alvin, Y. Junwen, and L. Shan, "Understanding Database Performance Inefficiencies in Real-world Web Applications," CIKM'17: Proceedings of the 2017 ACM on Conference on Information and Knowledge Management, 2017, pp. 1299-1308.
C. Tse-Hsun, S. Weiyi, M. J. Zhen, H. Ahmed E., N. Mohamed, and F. Parminder, "Detecting Performance Anti-patterns for Applications Developed using Object-Relational Mapping," ICSE 2014: Proceedings of the 36th International Conference on Software Engineering, 2014.
C. Tse-Hsun, S. Weiyi, Y. Jinqiu, H. Ahmed E., Godfrey. Michael W., N. Mohamed, and F. Parminder, "An Empirical Study on the Practice of Maintaining Object-Relational Mapping Code in Java Systems," IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR), 2016.
P. Kai, F. Robert, M. Shahid, and M. Michael, “Systematic Mapping Studies in Software Engineering”, School of Engineering, Blekinge Institute of Technology, 2008.
NetBeans. [Online]. Available: https://netbeans.org/. [Accessed: 25- Ene-2017].
E. O'Neil, “Object/relational mapping 2008: hibernate and the entity data model (edm),” Proceedings of the 2008 ACM SIGMOD international conference on Management of data, pp. 1351- 1356, 2008.
S. D. Gonzalo, y V. Andreu, Compiladores e intérpretes: un enfoque pragmático, México. 1989.
”E.J. García, J.A. Troyano Guía práctica de ANTLR 2.7.2.” [Online]. Available: http://www.lsi.us.es/~troyano/documentos/guia.pdf, [Accessed: 12-Ene-2019].
G. Erich, H. Richard, J. Ralph, and V. John., Patrones de Diseño, 2002.