Дословный ответ - нет - с кодом никогда не бывает ничего «изначально неправильного», вопрос в том, отвечает ли он требованиям - что может включать или не включать в себя возможность сопровождения, безопасность, надежность или быстроту.
Код, который вы выполняете, на самом деле является JET-запросом исключительно в Access - код Java ничего не делает, кроме указания Access выполнить запрос.
С одной стороны, если он не сломан, не чините его. С другой стороны, есть большая вероятность, что он сломается в ближайшем будущем, поэтому вы можете попытаться исправить это заранее.
Две вероятные причины, по которым он может сломаться:
- Риск внедрения SQL. В зависимости от того, откуда берутся csvDirPath и csvFileName (например, csvFileName может исходить от имени файла, загруженного пользователем?), И от того, насколько умным является драйвер Access JDBC, вы можете быть открыты для того, кто сломает или удалит ваши данные, вставив точка с запятой (или несколько скобок для создания подзапроса) и некоторые дополнительные команды SQL в запросе.
- Вы полагаетесь на совместимость столбцов файла CSV со столбцами таблицы Access. Если вы не отметили загрузку CSV, или если генератор CSV имеет особый способ обработки нулей, или если вы однажды получите необычный формат даты или числа, вы можете получить ошибку при вставке в таблицу Access.
Сказав все это, мы все о прагматизме здесь. Если приведенный выше код относится к служебному классу, который вы собираетесь использовать вручную несколько раз в неделю / месяц / год / когда-либо, то это на самом деле не проблема.
Если это класс, который является частью веб-приложения, то «официальным» способом Java для этого будет считывание записей из файла CSV (с использованием синтаксического анализатора CSV или драйвера CSV / text JDBC) получить столбцы из набора записей, выполнить их проверку или проверку работоспособности, а затем использовать новый PreparedStatement, чтобы вставить их в базу данных Access. Гораздо больше проблем, но гораздо надежнее.
Возможно, вы найдете комбинацию инструментов (например, объектно-реляционные слои или другие инструменты доступа к данным), которые сделают для вас многое из этого, но настройка инструментов будет такой же сложной задачей, как и написание кода. Опять же, вы многому научитесь у любого из них.