This is a console-based Library Management System implemented in Java using JDBC and MySQL.
- Admin login (stored in
admintable — demo password 'admin123') - Book management: add, search
- Member management: register, search
- Issue/Return with transactions, due-date tracking
- Prevent issuing already-issued books using
SELECT ... FOR UPDATE
- Install MySQL and create a user (or use root). Update credentials in
com.library.db.Databaseif needed. - Run
sql/schema.sqlto create DB and tables. - Build with Maven:
mvn clean package - Run:
java -cp target/library-cli-1.0-SNAPSHOT.jar com.library.App
- Uses DAO pattern, PreparedStatement to avoid SQL injection, transactions for issue/return, and row-locking with
FOR UPDATEto avoid race conditions. - Improvements: BCrypt password hashing, connection pooling, full CRUD, unit tests, REST API + frontend.