2015-06-12 6 views
0

Я разбираю данные из базы данных 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 и без использования аннотаций.

Любая помощь будет оценена по достоинству. Если вам нужен другой код, просто спросите.

Благодаря

+0

Какой код вы используете для печати значений? Я не могу найти его там. – mcraen

+0

Это в моей перспективе(). «RealSkeptic» поймал его, как показано ниже. Сейчас работает отлично. – bkane56

ответ

0

Вы используете metroData.setStopDesc() для хранения широты, вместо сеттера для широты.

+0

Спасибо, я знал, что это должно быть что-то простое, но мне трудно увидеть в моем собственном коде. Еще раз спасибо. – bkane56