Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.FileNotFoundException;
- import java.sql.*;
- import java.util.HashMap;
- import java.util.Vector;
- public class DatabaseInserter {
- private Connection conn;
- private Statement stm;
- HashMap<String,String> paragens = new HashMap<String,String>();
- BusStopsGetter stopsGetter = new BusStopsGetter();
- ParserHorariosCSV horariosGetter = new ParserHorariosCSV();
- public DatabaseInserter(String arquivo) throws SQLException, ClassNotFoundException {
- Class.forName("org.sqlite.JDBC");
- this.conn = DriverManager.getConnection("jdbc:sqlite:" + arquivo);
- this.stm = this.conn.createStatement();
- stopsGetter.init();
- }
- public static void main(String []args) throws FileNotFoundException{
- DatabaseInserter dbI = null;
- try {
- dbI = new DatabaseInserter("smtuc.sqlite");
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (ClassNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- dbI.insertStops();
- dbI.insertLines();
- }
- public void initDB() {
- try {
- //Remove e cria a tabela a cada execução. Mero exemplo
- this.stm.executeUpdate("DROP TABLE IF EXISTS pessoas");
- this.stm.executeUpdate("CREATE TABLE pessoas ("
- + "nome varchar(70) PRIMARY KEY NOT NULL,"
- + "idade integer);");
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- public void insertStops() {
- String[] stopSplit, stopName, stopLocation;
- String name, latit, longit;
- for(String stopInfo : stopsGetter.getStops()){
- stopSplit = stopInfo.split(">");
- stopName = stopSplit[0].split(",");
- stopLocation = stopSplit[1].split(":");
- name = stopName[0];
- latit = stopLocation[0];
- longit = stopLocation[0];
- try {
- this.stm = this.conn.createStatement();
- this.stm.executeUpdate("INSERT INTO paragens (nome,latitude,longitude) VALUES (\""
- + name + "\",\""
- + latit + "\",\""
- + longit + "\")");
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- void insertLines() throws FileNotFoundException{
- for(int i = 0;i<horariosGetter.BUSES.length;i++){
- Linha l= horariosGetter.obterHorarioCSV(horariosGetter.BUSES[i]);
- insertLineInfo(l);
- }
- }
- public void insertLine(String id,String paragem1, String paragem2){
- try {
- this.stm = this.conn.createStatement();
- this.stm.executeUpdate("INSERT INTO paragens (id,paragem1_id,paragem2_id) VALUES (\""
- + id + "\",\""
- + paragem1 + "\",\""
- + paragem2 + "\")");
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- public void insertLineStopSchedule(String line_id,String paragem_id, int order,String time,int idaVoltaFlag,int tipoDiaFlag){
- try {
- this.stm = this.conn.createStatement();
- this.stm.executeUpdate("INSERT INTO linhas_paragens VALUES (\""
- + line_id + "\","
- + paragem_id + ","
- + order + ",\""
- + time + "\","
- + idaVoltaFlag+","
- + tipoDiaFlag+")");
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- public void insertLineInfo(Linha line){
- insertLine(line.id,line.paragem1,line.paragem2);
- //inserir horas de ida em dias úteis
- for(int i = 0;i<line.scheduleWorkDaysGoing.length;i++){
- for(int j=0;j<line.scheduleWorkDaysGoing[0].length;j++){
- if(line.scheduleWorkDaysGoing[i][j]!=null){
- String time = (line.startHour + j)+":"+line.scheduleWorkDaysGoing[i][j];;
- insertLineStopSchedule(line.id,getParagemId(line.paragem1),1,time,0,0);
- }
- }
- }
- //inserir horas de returno em dias úteis
- for(int i = 0;i<line.scheduleWorkDaysComing.length;i++){
- for(int j=0;j<line.scheduleWorkDaysComing[0].length;j++){
- if(line.scheduleWorkDaysComing[i][j]!=null){
- String time = (line.startHour + j)+":"+line.scheduleWorkDaysComing[i][j];;
- // line_id,String paragem_id, int order,String time,int idaVoltaFlag,int tipoDiaFlag
- insertLineStopSchedule(line.id,getParagemId(line.paragem2),getOrdemParagem(line,line.paragem2),time,1,0);
- }
- }
- }
- //inserir horas de ida aos sábados
- for(int i = 0;i<line.saturdaysGoing.length;i++){
- for(int j=0;j<line.saturdaysGoing[0].length;j++){
- if(line.saturdaysGoing[i][j]!=null){
- String time = (line.startHour + j)+":"+line.saturdaysGoing[i][j];;
- insertLineStopSchedule(line.id,getParagemId(line.paragem1),1,time,0,1);
- }
- }
- }
- //inserir horas de retorno aos sábados
- for(int i = 0;i<line.saturdaysComing.length;i++){
- for(int j=0;j<line.saturdaysComing[0].length;j++){
- if(line.saturdaysComing[i][j]!=null){
- String time = (line.startHour + j)+":"+line.saturdaysComing[i][j];;
- // line_id,String paragem_id, int order,String time,int idaVoltaFlag,int tipoDiaFlag
- insertLineStopSchedule(line.id,getParagemId(line.paragem2),getOrdemParagem(line,line.paragem2),time,1,1);
- }
- }
- }
- //inserir horas de ida aos domingos e feriados
- for(int i = 0;i<line.holidaysGoing.length;i++){
- for(int j=0;j<line.holidaysGoing[0].length;j++){
- if(line.holidaysGoing[i][j]!=null){
- String time = (line.startHour + j)+":"+line.holidaysGoing[i][j];;
- insertLineStopSchedule(line.id,getParagemId(line.paragem1),1,time,0,2);
- }
- }
- }
- //inserir horas de retorno aos sábados
- for(int i = 0;i<line.holidaysComing.length;i++){
- for(int j=0;j<line.holidaysComing[0].length;j++){
- if(line.holidaysComing[i][j]!=null){
- String time = (line.startHour + j)+":"+line.holidaysComing[i][j];;
- // line_id,String paragem_id, int order,String time,int idaVoltaFlag,int tipoDiaFlag
- insertLineStopSchedule(line.id,getParagemId(line.paragem2),getOrdemParagem(line,line.paragem2),time,1,2);
- }
- }
- }
- }
- private int getOrdemParagem(Linha line, String paragem) {
- // TODO Auto-generated method stub
- for(int i = 0;i<line.paragensOrdem.size();i++){
- if(paragem.equals(line.paragensOrdem.get(i))){
- return i;
- }
- }
- return -1;
- }
- private String getParagemId(String paragem1) {
- String id = null;
- ResultSet rs;
- try {
- rs = this.stm.executeQuery("SELECT id FROM paragens WHERE nome = \""+paragem1+"\"");
- if(rs.first()){
- id = rs.getString("id");
- }
- rs.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return id;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement