This
book is Java/MariaDB version of our previous books which used Java/MySQL and
Java/PostgreSQL. In this book, you will learn how to build from scratch a
criminal records management database system and simple bank database system
using Java/MariaDB. All Java code for digital image processing in this book is
Native Java. Intentionally not to rely on external libraries, so that readers
know in detail the process of extracting digital images from scratch in Java.
There are only three external libraries used in this book: Connector/J to
facilitate Java to MariaDB connections, JCalendar
to display calendar controls, and JFreeChart
to display graphics. Digital image techniques to extract image features used in
this book are grascaling, sharpening, invertering, blurring, dilation, erosion,
closing, opening, vertical prewitt, horizontal prewitt, Laplacian, horizontal
sobel, and vertical sobel. For readers, you can develop it to store other
advanced image features based on descriptors such as SIFT and others for
developing descriptor based matching.
In
the first chapter, you will learn the basics of cryptography using Java. Here,
you will learn how to write a Java program to count Hash, MAC (Message
Authentication Code), store keys in a KeyStore, generate PrivateKey and
PublicKey, encrypt / decrypt data, and generate and verify digital prints.
In
the second chapter, you will learn how to create and store salt passwords and
verify them. You will create a Login
table. In this case, you will see how to create a Java GUI using NetBeans to
implement it. In addition to the Login
table, in this chapter you will also create a Client table. In the case of the Client table, you will learn how to generate and save public and
private keys into a database. You will also learn how to encrypt / decrypt data
and save the results into a database.
In
the third chapter, you will create an Account
table. This account table has the following ten fields: account_id (primary key), client_id
(primarykey), account_number, account_date, account_type, plain_balance,
cipher_balance, decipher_balance, digital_signature,
and signature_verification. In this
case, you will learn how to implement generating and verifying digital prints
and storing the results into a database.
In
the fourth chapter, You create a table with the name of the Account, which has ten columns: account_id (primary key), client_id (primarykey), account_number, account_date, account_type,
plain_balance, cipher_balance, decipher_balance,
digital_signature, and signature_verification.
In
the fifth chapter, you will create a Client_Data
table, which has the following seven fields: client_data_id (primary key), account_id
(primary_key), birth_date, address, mother_name, telephone,
and photo_path.
In
the sixth chapter, you will be taught to create Java GUI to view, edit, insert,
and delete Suspect table data. This
table has eleven columns: suspect_id
(primary key), suspect_name, birth_date, case_date, report_date, suspect_ status, arrest_date, mother_name,
address, telephone, and photo.
In
the seventh chapter, you will be taught how to create Crime database and its tables. In nineth chapter, you will be
taught how to extract image features, utilizing BufferedImage class, in Java GUI.
In
the eighth chapter, you will be taught to create Java GUI to view, edit,
insert, and delete Feature_Extraction
table data. This table has eight columns: feature_id
(primary key), suspect_id (foreign
key), feature1, feature2, feature3, feature4, feature5, and feature6.
All six fields (except keys) will have a BLOB data type, so that the image of
the feature will be directly saved into this table.
In
the nineth chapter, you will add two tables: Police_Station and Investigator.
These two tables will later be joined to Suspect
table through another table, File_Case,
which will be built in the seventh chapter. The Police_Station has six columns: police_station_id (primary key), location, city, province, telephone, and photo.
The Investigator has eight columns: investigator_id (primary key), investigator_name, rank, birth_date, gender, address, telephone, and photo. Here, you will design a Java GUI
to display, edit, fill, and delete data in both tables.
In
the eleventh chapter, you will add two tables: Victim and File_Case.
The File_Case table will connect
four other tables: Suspect, Police_Station, Investigator and Victim.
The Victim table has nine columns: victim_id
(primary key), victim_name, crime_type, birth_date, crime_date, gender, address, telephone, and photo. The File_Case has seven columns: file_case_id
(primary key), suspect_id (foreign
key), police_station_id (foreign
key), investigator_id (foreign key),
victim_id (foreign key), status, and description. Here, you will also design a Java GUI to display,
edit, fill, and delete data in both tables.