JDBC provides access to relational databases through Java programs. It uses drivers specific to each database to mediate between JDBC and the database. The key classes are Connection for establishing a connection, Statement for executing SQL statements, PreparedStatement for parameterized queries, and ResultSet for retrieving result sets. Programs use these classes to load a driver, connect to a database, execute statements, and process result sets within the program.