Я разбираю данные из базы данных metrolink. Когда я запрашиваю db из командной строки, я получаю следующий вывод:ошибочный запрос SQLite3 в Java
Stop Name Latitude Longitude
---------------------------------------- ---------------
CLAYTON METROLINK STATION 38.645657 -90.339223
SUNNEN METROLINK STATION 38.607509 -90.330296
MAPLEWOOD METROLINK STATION 38.614023 -90.331314
BRENTWOOD METROLINK STATION 38.627851 -90.33815
RICHMOND HEIGHTS METROLINK STATION 38.635401 -90.342582
SHREWSBURY METROLINK STATION 38.592735 -90.31932
EMERSON PARK METROLINK STATION 38.629462 -90.137638
FAIRVIEW HEIGHTS METROLINK STATION 38.594049 -90.048103
WASHINGTON PARK METROLINK STATION 38.613762 -90.09531
GRAND METROLINK STATION 38.629525 -90.235254
CENTRAL WEST END METROLINK STATION 38.635838 -90.261928
FOREST PARK METROLINK STATION 38.647787 -90.284648
DELMAR METROLINK STATION 38.655513 -90.294481
COLLEGE METROLINK STATION 38.515994 -89.919669
MEMORIAL HOSPITAL METROLINK STATION 38.557573 -90.015361
JJK CENTER METROLINK STATION 38.623244 -90.124409
SWANSEA METROLINK STATION 38.536253 -89.987516
BELLEVILLE METROLINK STATION 38.521823 -89.974368
ROCK ROAD METROLINK STATION 38.685447 -90.301332
CIVIC CENTER METROLINK STATION 38.624676 -90.203101
FORSYTH METROLINK STATION 38.648731 -90.328488
STADIUM METROLINK STATION 38.623416 -90.194531
SKINKER METROLINK STATION 38.649364 -90.300813
WELLSTON METROLINK STATION 38.668902 -90.298356
8TH AND PINE METROLINK STATION 38.627979 -90.192665
UNION STA METROLINK STATION 38.626602 -90.206596
EAST RIVERFRONT METROLINK STATION 38.628517 -90.17473
5TH & MISSOURI METROLINK STATION 38.625088 -90.159346
CONVENTION CENTER METROLINK STATION 38.630193 -90.189374
LACLEDES LANDING METROLINK STATION 38.629484 -90.18355
LAMBERT MAIN TRML METROLINK STATION 38.74092 -90.364451
LAMBERT EAST TRML METROLINK STATION 38.736397 -90.356341
NORTH HANLEY METROLINK STATION 38.719915 -90.315712
UMSL NORTH METROLINK STATION 38.712889 -90.306081
SHILOH-SCOTT METROLINK STATION 38.539125 -89.879143
UMSL SOUTH METROLINK STATION 38.705072 -90.304974
Вы получаете Идея. Когда я запускаю эту часть своего кода Java:
package com.bkane56.metrolink.sqlitedao;
import com.bkane56.metrolink.MetroData;
import com.bkane56.metrolink.MetroLinkDao;
import com.bkane56.metrolink.OutputInterface;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class SQLiteMetroDAO implements MetroLinkDao {
public static final String METROLINK_DB = "jdbc:sqlite:metrolink.db";
public static final String ORG_SQLITE_JDBC = "org.sqlite.JDBC";
public static final String ALL_METROLINK_STOPS =
"SELECT stop_name " +
"FROM stops " +
"WHERE stop_name " +
"LIKE \"%metrolink Station\" " +
"ORDER BY stop_lon;";
public static final String METRO_LINK_STOPS_WITH_LAT_AND_LONG =
"SELECT stop_name, stop_lat, stop_lon " +
"FROM stops " +
"WHERE stop_name " +
"LIKE \"%metrolink Station\" " +
"ORDER BY stop_lon;";
public List<MetroData> metroDataOutput() {
outputInterface.output("\n\nLooking up all MetroLink Stations\n\n");
try (Connection connection = getConnection();) {
// PreparedStatement preparedStatement = connection.prepareStatement(ALL_METROLINK_STOPS);
PreparedStatement preparedStatement = connection.prepareStatement(METRO_LINK_STOPS_WITH_LAT_AND_LONG);
ResultSet resultSet = preparedStatement.executeQuery();
List<MetroData> metroDataList = new ArrayList<>();
while (resultSet.next()) {
MetroData metroData = new MetroData();
metroData.setStopName(resultSet.getString("stop_name"));
metroData.setStopDesc(resultSet.getString("stop_lat"));
metroData.setStopLong(resultSet.getString("stop_lon"));
metroDataList.add(metroData);
}
return metroDataList;
} catch (SQLException e) {
throw new RuntimeException("Error retrieving MetroLink data " + e);
}
}
private static Connection getConnection() throws SQLException {
try {
Class.forName(ORG_SQLITE_JDBC);
} catch (ClassNotFoundException e) {
throw new RuntimeException("Unable to find class for loading the database", e);
}
return DriverManager.getConnection(METROLINK_DB);
}
private OutputInterface outputInterface;
public void setOutputInterface(OutputInterface outputInterface) {
this.outputInterface = outputInterface;
}
}
Я получаю следующий вывод.
2015-06-12 14:17:40 INFO ClassPathXmlApplicationContext:513 - Refreshing org[email protected]8102c8: startup date [Fri Jun 12 14:17:40 CDT 2015]; root of context hierarchy
2015-06-12 14:17:41 INFO XmlBeanDefinitionReader:316 - Loading XML bean definitions from class path resource [App_Context.xml]
Looking up all MetroLink Stations
--1 -. LAMBERT MAIN TRML METROLINK STATION null -90.364451
--2 -. LAMBERT EAST TRML METROLINK STATION null -90.356341
--3 -. RICHMOND HEIGHTS METROLINK STATION null -90.342582
--4 -. CLAYTON METROLINK STATION null -90.339223
--5 -. BRENTWOOD METROLINK STATION null -90.33815
--6 -. MAPLEWOOD METROLINK STATION null -90.331314
--7 -. SUNNEN METROLINK STATION null -90.330296
--8 -. FORSYTH METROLINK STATION null -90.328488
--9 -. SHREWSBURY METROLINK STATION null -90.31932
--10-. NORTH HANLEY METROLINK STATION null -90.315712
--11-. UMSL NORTH METROLINK STATION null -90.306081
--12-. UMSL SOUTH METROLINK STATION null -90.304974
--13-. ROCK ROAD METROLINK STATION null -90.301332
--14-. SKINKER METROLINK STATION null -90.300813
--15-. WELLSTON METROLINK STATION null -90.298356
--16-. DELMAR METROLINK STATION null -90.294481
--17-. FOREST PARK METROLINK STATION null -90.284648
--18-. CENTRAL WEST END METROLINK STATION null -90.261928
--19-. GRAND METROLINK STATION null -90.235254
--20-. UNION STA METROLINK STATION null -90.206596
--21-. CIVIC CENTER METROLINK STATION null -90.203101
--22-. STADIUM METROLINK STATION null -90.194531
--23-. 8TH AND PINE METROLINK STATION null -90.192665
--24-. CONVENTION CENTER METROLINK STATION null -90.189374
--25-. LACLEDES LANDING METROLINK STATION null -90.18355
--26-. EAST RIVERFRONT METROLINK STATION null -90.17473
--27-. 5TH & MISSOURI METROLINK STATION null -90.159346
--28-. EMERSON PARK METROLINK STATION null -90.137638
--29-. JJK CENTER METROLINK STATION null -90.124409
--30-. WASHINGTON PARK METROLINK STATION null -90.09531
--31-. FAIRVIEW HEIGHTS METROLINK STATION null -90.048103
--32-. MEMORIAL HOSPITAL METROLINK STATION null -90.015361
--33-. SWANSEA METROLINK STATION null -89.987516
--34-. BELLEVILLE METROLINK STATION null -89.974368
--35-. COLLEGE METROLINK STATION null -89.919669
--36-. SHILOH-SCOTT METROLINK STATION null -89.879143
Process finished with exit code 0
Вот схема для таблицы:
create table stops (
stop_lat Decimal(9,6),
zone_id char(30),
stop_lon Decimal(9,6),
stop_id char(30) PRIMARY KEY,
stop_desc char(30),
stop_name char(30),
location_type char(30),
stop_code char(30)
);
Я не получаю нулевые значения.
Да, я перенесу его в Hibernate, чтобы сделать кодирование более кратким, но я попросил его сначала написать JDBC и без использования аннотаций.
Любая помощь будет оценена по достоинству. Если вам нужен другой код, просто спросите.
Благодаря
Какой код вы используете для печати значений? Я не могу найти его там. – mcraen
Это в моей перспективе(). «RealSkeptic» поймал его, как показано ниже. Сейчас работает отлично. – bkane56