...

среда, 18 февраля 2015 г.

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

Добрый день.

Я занимаюсь IT-образованием.

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


По некоторому размышлению выходит, что за 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


Recommended article: Chomsky: We Are All – Fill in the Blank.

This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

Отправить комментарий