Я застрял в огромном и старом проекте (j2sdk 1.4.2, Tomcat 4.1.29, MySQL 5.0.51a), что мне нужно установить новую среду разработки для на работе.MySQL TINYINT (1) таинственно сопоставлен с Java-типом Integer
У меня есть база данных MySQL, к которой обращается мой Tomcat, который обрабатывает запрос от моего приложения Java. В этой БД некоторые таблицы содержат логические значения, которые необходимы моему приложению.
Таким образом, в приложении создается подготовленный оператор, параметры добавляются к нему, затем запускается запрос, и результирующий набор этого запроса хранится внутри настраиваемого объекта SQLResult
(который является частью пользовательской структуры сделанный моей компанией, не может ничего сделать, но это похоже на классический объект java.sql.ResultSet
).
Вот проблема: когда запрос Java приложения некоторые данные, которые хранятся в БД, как TINYINT(1)
, эти данные возвращаются в приложение Java, как java.lang.Integer
, не java.lang.Boolean
, как я хотел бы.
Примечание: версия соединителя JDBC, используемая сервером Tomcat, является mysql-connector-java-3.0.11-stable.
Что я испытал до сих пор (без результата):
- обновления/понизить разъем MySQL
- добавил
tinyInt1isBit=<true/1>
в конце моей строки подключения - обновления/понизить БД MySQL, всегда тот же самый дамп данных, который я дал по исходному коду
- Множество других вещей, о которых я даже не мог вспомнить, потому что я испытал так много вещей: -/
Теперь я уверен, что проблема связана с соединителем JDBC MySQL, используемым сервером Tomcat. Таким образом, когда я изменил версию соединителя, больше ничего не работало (что не могло даже подключить пользователя).
Любые идеи?
EDIT: Я забыл точное, что в другой части приложения Java, запрос данных хранится в виде DECIMAL
возвращаются как java.lang.String
! Это также основная проблема, которую я должен решить, но я думаю, что эти два связаны с одной и той же причиной.
Вы говорите «вернулись в приложение Java», но если вы не используете стандартный «ResultSet», это звучит как ваш собственный код точно идентифицирует столбец TINYINT и обрабатывает его как числовой тип. – chrylis
звуков вам нужно будет создать вспомогательный класс для этих случаев ... –
@Jordi Castilla: к сожалению, я еще не могу добавить код, так как этот код должен работать правильно (как он уже работает в производстве окружающей среды в течение нескольких лет). На данный момент моя цель - создать стабильную среду разработки, причем все работает как можно плавно и без изменения какого-либо кода. Вот почему я думаю, что причиной этого может быть и коннектор. Но я не могу понять, почему: -/ – TheFrenchieCake