/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package jena; import import import import import import import import import com.hp.hpl.jena.rdf.model.Model; com.hp.hpl.jena.rdf.model.ModelFactory; com.hp.hpl.jena.rdf.model.Property; com.hp.hpl.jena.rdf.model.Resource; java.io.File; java.io.FileWriter; java.io.IOException; java.io.StringWriter; java.sql.*; /** * * @author cbfranca */ public class EtlParkUneb { private static final String uriParkUneb = "http://parkuneb.com.br/"; private static final String uriEstacionamento = uriParkUneb + "Estacionamento/#"; private static final String uriVaga = uriParkUneb + "Vaga/#"; private static final String SqlServerConnectionString = "jdbc:sqlserver://localhost;DatabaseName=ParkUneb;user=sa;password=Db@SQL S3rver;"; public static void main(String[] args) { try { EtlParkUneb etl = new EtlParkUneb(); etl.doEtl(); } catch(Exception ex) { ex.printStackTrace(); } } private void doEtl() throws SQLException, IOException, ClassNotFoundException { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn = DriverManager.getConnection(SqlServerConnectionString); Statement stA = conn.createStatement(); Statement stB = conn.createStatement(); Model model = ModelFactory.createDefaultModel(); model.setNsPrefix("estacionamento", uriEstacionamento); model.setNsPrefix("vaga", uriVaga); //propriedades de estacioamento Property logradouro = model.createProperty(uriEstacionamento + "LOGRADOURO"); Property bairro = model.createProperty(uriEstacionamento + "BAIRRO"); Property cidade = model.createProperty(uriEstacionamento + "CIDADE"); Property estado = model.createProperty(uriEstacionamento + "ESTADO"); Property latitude = model.createProperty(uriEstacionamento + "LATITUDE"); Property longitude = model.createProperty(uriEstacionamento + "LONGITUDE"); //propriedades de vaga Property status = model.createProperty(uriVaga + "STATUS"); Property estacionamento = model.createProperty(uriVaga + "ESTACIONAMENTO"); String queryEstacionamento = "SELECT TOP 5 " + "codigo"+ ",logradouro"+ ",bairro"+ ",cidade"+ ",estado"+ ",latitude"+ ",longitude "+ " FROM estacionamento "; System.out.println(queryEstacionamento); ResultSet resultEstacionamento = stA.executeQuery(queryEstacionamento); while(resultEstacionamento.next()){ Resource estacionamentoResource = model.createResource(uriEstacionamento+ resultEstacionamento.getString("codigo")); model.add(estacionamentoResource,logradouro, resultEstacionamento.getString("logradouro")); model.add(estacionamentoResource,bairro, resultEstacionamento.getString("bairro")); model.add(estacionamentoResource,cidade, resultEstacionamento.getString("cidade")); model.add(estacionamentoResource,estado, resultEstacionamento.getString("estado")); model.add(estacionamentoResource,latitude, resultEstacionamento.getString("latitude")); model.add(estacionamentoResource,longitude, resultEstacionamento.getString("longitude")); String queryaga = "SELECT " + "codigo"+ ",cod_status"+ ",cod_estacionamento"+ " FROM vaga "+ " WHERE cod_estacionamento =" + resultEstacionamento.getString("codigo"); ResultSet resultVaga = stB.executeQuery(queryaga); while(resultVaga.next()){ Resource vaga = model.createResource(uriVaga + resultVaga.getString("codigo")); if("1".equals(resultVaga.getString("cod_status"))) vaga.addProperty(status, "LIVRE"); else if("2".equals(resultVaga.getString("cod_status"))) vaga.addProperty(status, "OCUPADO"); //Adiciona a vaga ao estacionamento model.add(estacionamentoResource,estacionamento,vaga); } } StringWriter sw = new StringWriter(); model.write(sw, "RDF/XML-ABBREV"); String owlCode = sw.toString(); File file = new File("d:/RdfParkUneb.xml"); FileWriter fw = new FileWriter(file); fw.write(owlCode); fw.close(); } }