Comments 13
2. Exception дорогое удовольствие по производительности, почему не использовать getObject(int columnIndex), а потом уже в рантайме не определять какой тип вы получили? Зачем обязательно все делать через игнорирование SQLException?
Unit тесты — это святое, но они не могут обеспечить проверку при упавшем подключении к БД. И unit тесты не должны проверять работу с базой данных. Ну в нашем случае у нас не было возможности подымать тестовые бд. Кровавый энтерпрайз он бывает разный.
- Встает вопрос как часто может выскочить SqlException. И было желание использовать рефлексию для определения колонки откуда брать данные. Но как предложили в [комментарии] (https://habrahabr.ru/post/318740/?mobile=no#comment_9989940) велосипед уже давно придумано и есть смысл посмотреть это решение.
Ну если модуль работы с БД, то можно проверять строку подключения, и то если оно не получается из пула соединений.
Классический вариант юнит теста — это проверка работы всех методов класса, без работы с другими классами, а где надо обращение к другому классу, пишутся mock.
Но после реакции на эту статью, я уже ни в чем не уверен.
id = ex.getInt(«id»); с ID вообще зло, ибо последвстия мержа положат систему.
Из всех комментариев вижу лишь одно, нет какого-то одного общеизвестного решения. Поэтому и появляются такие велосипеды.
Эх… и у в нашей Греции есть все… прочитай я Вашу статью раньше, может и не писал бы статью, и не делал велосипеда.
Но проблема кровавого энтерпрайза фирм не занимающихся профильной разработкой ПО в том, что не всегда есть человек, который может направить на путь истинный. Порой простое решение кажется не подходящим из-за своей простоты. Закрадываются мысли, что только на таком велосипеде можно выехать из сложившейся ситуации.
Lightweight JDBC helper library
Маппинг объектов в базы данных
Велосипед для извлечения данных