
Explore how the Java Persistence API architecture maps Java objects to relational database tables using entities, entity managers, and queries with vendors such as Hibernate.
Learn object-relational mapping (orm) with the Java Persistence API to map Java objects to database tables using annotations or xml, including entity, table, id, transient properties, and relationships.
Attach named queries to the person entity class and reuse them to separate Java code from database logic. Use typed queries, set parameters, and fetch by id or by name.
Learn how the Java Persistence API handles inheritance with a single table strategy, using a shared vehicle table, a discriminator column, and concrete car and bus subclasses.
Explore the joined table inheritance strategy in JPA, creating separate tables for each entity and joining by primary key, with vehicle, car, and boss tables, noting memory efficiency and complexity.
Compare optimistic and pessimistic locking in JPA, using an inventory example to show how version checks prevent conflicts. Understand how locking modes differ and how the version field works automatically.
Learn to build a Swing menu bar with a file menu, including open and exit items, using a dedicated menu bar construction method, string constants, and look-and-feel customization.
Learn to handle menu bar click events in Java Swing by wiring action listeners, displaying exit confirmation dialogs, and using option panes for different message types.
Save a student using a singleton database handler via an enum, a mainframe query, and a service layer that inserts into an array list database, then close the popup.
Instantiate and display the remove student form in the main frame, load data from database into the student combo box, and wire action listeners for the remove and cancel buttons.
Implement a singleton entity manager pattern using the Java Persistence API with Hibernate, configuring persistence.xml and a single entity manager factory for consistent database access.
Set the operating system related look and feel with UIManager, handle the related exceptions, and launch the application on the event dispatch thread using EventQueue.invokeLater or SwingUtilities.invokeLater.
Define a constants class with a private constructor to prevent instantiation, declare public static final integers for board width 420 and height 746, and store image and game title constants.
Update object positions and repaint the canvas to drive animation, then use the paint component method to draw a rectangle on the canvas.
Learn to implement a spaceship sprite in Java Swing, animate with four image frames, update every 100 ms, and move the ship along the x axis on a game panel.
develop a key listener that extends key adapter to handle left and right arrow presses, moving the spaceship by updating its x position and stopping on key release.
Continue the meteor animation by implementing a random generator to spawn meteors with random x positions and top y, using nextDouble and nextInt with game constants; collision detection follows.
Explore collision detection using bounding boxes and rectangle intersections to determine hits or game over, starting with a brute-force check and noting simple optimizations like sweep and prune.
Define and manage game variables with a private constructor, public static Boolean in game, shields, and totalScore; decrement shields on collisions and trigger game over when shields drop below zero.
Explore type casting in Java, transforming data types such as short, int, float, and double, and learn when explicit casting avoids information loss in larger-to-smaller conversions.
Transform for loops into while loops and vice versa in Java, choosing form. See 0 to 4 counter and learn how missing increments cause infinite loops, like a game loop.
Learn to create one dimensional arrays of integers and strings, initialize them with values, and iterate using classic for loops and the for-each loop to print each element.
Explore Java exceptions and errors, distinguishing compile-time and runtime (unchecked) exceptions, and learn to handle them with try-catch blocks, including array index out of bounds and file writer scenarios.
When I started software engineering, I always wanted to code without any configurations, version control or build server configurations. Later, I realized that coding is just one part of software engineering: architectural designs, design patterns and the ability to write reusable and loosely coupled software components are much more important parts of programming.
At the beginning it was quite hard for me to comprehend the role of these technologies, now I know for certain that they are very important as well as useful and can be used on daily basis. So in this course I would like to show you how to separate modules with the help of Maven as well as to use the Java Persistence API for database related operations.
We will learn how to create fancy user interfaces with the Swing framework. At the last section of the course we will wire everything together. In the last chapters you can learn about Java Game Development.
Section 1 - Installations
setting up the environment
installing Java, Eclipse, Maven and MySQL
Section 2 - Maven
what is Maven
build lifecycles and phases
clean, site and default
handling dependencies
POM files
Section 3 - Java Persistence API (JPA)
why to use databases?
JDBC and the old way
what is Java Persistence API (JPA)
object relation mapping with JPA
how to deal with inheritance with JPA
how to deal with composition with JPA
basic CRUD operations with EntityManager
using Hibernate
Section 4 - Swing Framework and Desktop Application:
developing a desktop application from scratch
using Maven
using Swing framework for GUI
using JPA and MySQL
Section 5 - Java Game Development Fundamentals
developing a game from scratch in Java Swing
Java Game Development from scratch
understanding the basics of animations
what are sprites?
game loop (the core of game engines)
user interface components with Swing
Section 6 - Java Basics (Appendix)
Java basics
data types, loops and decision making
memory management (stack memory and heap memory)
basic data structures
arrays, lists and maps
Thanks for joining the course, let's get started!