Pull to refresh

Учебный план по JDBC

Reading time2 min
Views20K
Добрый день.

Я занимаюсь IT-образованием.
В данный момент готовлю курс «JDBC for Java Developer» для одной западной MOOC-платформы. Думаю этот детальный план может быть полезен кому-то для подготовки к собеседованию.

Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

По некоторому размышлению выходит, что за 4-5 часов видео (стандартный формат на платформе) максимум полезного, что можно рассказать в 5-10 минутных кусочках, попадает в Первую часть (6 тем: «Intro», «Connect to database», «Query database», «ResultSet», «Optimizations», «Transactions» + 35 вложенных подтем).

Ценное, но не помещающееся, пошло во Вторую часть (3 темы: «ThreadLocal Tx-Manager», «Distributed Transactions», «Query Meta-Information» + 10 вложенных подтем).

Ожидается, что слушатель после курса будет готов приступить к технологиям «следующего уровня» после JDBC — Spring JDBC Template, JavaEE transactions, ORM.

Знаю, что разумное замечание состоит в том, что можно «просто почитать JDBC 4.2 Specification». Да, можно. Этот план и строится как анализ спецификации + предлагаемые целевые варианты использования (Dao Patter, TxManager, Connection pooling, ...).


Первая часть

  • Intro
    • Install MySQL RDBMS + MySQL Workbench
    • RDBMS vs DB, create database
    • JDBC architecture: JDBC API + JDBC Driver
    • JDBC Driver types, transport types
    • Connector/J: JDBC Driver to MySQL
    • JDBC / SQL versions, SQL dialects
  • Connect to database
    • Driver, DriverManager, DataSource
    • Connection
    • JDBC URL
    • Connector/J properties
  • Query database
    • DDL and DML (TEXT)
    • Statement
    • Statement.executeUpdate: INSERT, UPDATE, DELETE
    • Get auto-generated keys
    • Statement.executeQuery: SELECT, ResultSet
    • Statement.execute
    • SQLException: errorCode and errorState
    • DAO Pattern
    • Альтернатива DAO: Transaction Script, Active Record, ORM
  • ResultSet
    • ResultSet: positioning and transition
    • ResultSet: type
    • ResultSet: concurrency
    • ResultSet: holdability
  • Optimizations
    • PreparedStatement = + precompilation — SQL injection
    • Batch update = vectorization
    • Connection pooling
  • Transactions
    • ACID properties
    • Transaction boundaries
    • Savepoints
    • Transaction isolation levels
    • MySQL transactions: MyISAM vs InnoDB
    • READ UNCOMMITED, Dirty Read “phenomena”
    • READ COMMITED, NonRepeatable Read “phenomena”
    • REPEATABLE READ, Phantom Read “phenomena”
    • SERIALIZABLE


Вторая часть

  • Local Tx-Manager: by-hands
    • Base realization: ThreadLocal Tx-context
    • @Transactional annotation
    • AOP realization of @Transactional
    • Application server = Tx-context + Auth-context + Thread management
  • Distributed Transactions
    • 2PC-protocol
    • javax.jdbc.xa.* — XA-standart realization of 2PC-client
    • Distribured-Tx Manager Architecture
  • Query Meta-Information
    • Database meta-info
    • Table meta-info
    • Row meta-info


P.S. Кроме подготовки этого курса для сторонней платформы (готовится переводной вариант на английском, оригинал на русском пока негде выложить) автор с 27 февраля стартует курс из 16 вебинаров «Scala for Java Developers» (3 месяца).
Контакты:
skype: GolovachCourses
email: GolovachCourses@gmail.com
Tags:
Hubs:
Total votes 16: ↑11 and ↓5+6
Comments10

Articles

Information

Website
www.golovachcourses.com
Registered
Founded
Employees
2–10 employees
Location
Украина