From 205f059ec5df1a24daa87f8563d2bbb99344ecf9 Mon Sep 17 00:00:00 2001 From: tspitzer Date: Tue, 17 Sep 2013 15:38:08 +0200 Subject: g --- Dozentenmodul/src/sql/sql.java | 179 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 179 insertions(+) create mode 100644 Dozentenmodul/src/sql/sql.java (limited to 'Dozentenmodul/src/sql/sql.java') diff --git a/Dozentenmodul/src/sql/sql.java b/Dozentenmodul/src/sql/sql.java new file mode 100644 index 00000000..dade6b1e --- /dev/null +++ b/Dozentenmodul/src/sql/sql.java @@ -0,0 +1,179 @@ +package sql; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + + +public class sql { + + //Erstellt eine Verbindung zu einer Datenbank + public Connection getConnection() + { + try { + Class.forName("com.mysql.jdbc.Driver").newInstance(); + } catch (InstantiationException | IllegalAccessException + | ClassNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + try { + Connection con=DriverManager.getConnection("jdbc:mysql://127.0.0.1/bwLehrpool?user=root&password=root"); + return con; + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + //Liefert alle vorhandenen Betriebssysteme zurück + public ResultSet getAllOS(Connection con) + { + Statement stm; + try { + stm = con.createStatement(); + return stm.executeQuery("SELECT distinct Produktname, Version, Architektur FROM bwlehrpool.betriebssystem order by Produktname asc;"); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + //Fügt ein Betriebssystem in die Datenbank ein + public int AddOS(Connection con, String name, String Version, String Architektur,int Kosten, String Hersteller) + { + Statement stm; + try { + stm=con.createStatement(); + + int pk_Hersteller=HerstellerExists(con, Hersteller); + + if(pk_Hersteller==-1) + { + addHersteller(con, Hersteller); + } + int ret=stm.executeUpdate("INSERT INTO `bwlehrpool`.`betriebssystem`(`Produktname`,`Version`,`Architektur`,`IstKostenlos`,`SWHersteller_pk`)VALUES('"+name+"','"+Version+"','"+Architektur+"',"+Kosten+","+pk_Hersteller+");"); + return ret; + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return -1; + + } + + //Überprüft ob der angegebene Hersteller bereits exisitert + public int HerstellerExists(Connection con, String Hersteller) + { + int pk_Hersteller=-1; + try { + ResultSet rs=getAllHersteller(con); + while(rs.next()) + { + if(rs.getString("Name").equals(Hersteller)) + { + pk_Hersteller=Integer.parseInt(rs.getString("pk")); + } + } + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return pk_Hersteller; + } + + //Liefert alle vorhandenen Hersteller zurück + public ResultSet getAllHersteller(Connection con) + { + try { + Statement stm=con.createStatement(); + return stm.executeQuery("SELECT pk,Name FROM bwLehrpool.SWHersteller order by Name asc;"); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + //Fügt einen Hersteller in die Datenbank ein + public int addHersteller(Connection con, String Name){ + Statement stm; + int ret=-1; + try { + stm=con.createStatement(); + ret=stm.executeUpdate("INSERT INTO `bwlehrpool`.`swhersteller`(`Name`)VALUES('"+Name+"');"); + con.commit(); + } catch (SQLException e) { + // TODO Auto-generated catch block + + e.printStackTrace(); + } + return ret; + } + + //Liefert sämtliche in der Datenbank vorhandene Software zurück + public ResultSet getAllSoftware(Connection con, String Hersteller) + { + + try { + Statement stm=con.createStatement(); + + return stm.executeQuery("SELECT s.pk,s.Produktname, s.Version, s.Architektur FROM bwLehrpool.Software s left join bwLehrpool.SWHersteller h on s.SWHersteller_pk=h.pk where Name like '"+Hersteller+"' order by s.Produktname;"); + + + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + + return null; + + } + + //Gibt die Software abhängig vom gesuchten Namen zurück + public ResultSet getSoftwareByName(Connection con, String Name) + { + + try { + Statement stm=con.createStatement(); + + return stm.executeQuery("SELECT concat(h.Name,' ',s.Produktname,' ',s.Version,' ',s.Architektur) as SW FROM bwLehrpool.Software s left join bwLehrpool.SWHersteller h on s.SWHersteller_pk=h.pk where concat(h.Name,' ',s.Produktname,' ',s.Version,' ',s.Architektur) like '%"+Name+"%' order by s.Produktname;"); + + + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + + return null; + + } + + //Fügt eine Software in die Datenbank ein + public int AddSoftware(Connection con, String name, String Version, String Architektur,int Kosten, String Hersteller) + { + Statement stm; + try { + stm=con.createStatement(); + + int pk_Hersteller=HerstellerExists(con, Hersteller); + + if(pk_Hersteller==-1) + { + addHersteller(con, Hersteller); + } + int ret=stm.executeUpdate("INSERT INTO `bwlehrpool`.`software`(`Produktname`,`Version`,`Architektur`,`IstKostenlos`,`SWHersteller_pk`)VALUES('"+name+"','"+Version+"','"+Architektur+"',"+Kosten+","+pk_Hersteller+");"); + return ret; + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return -1; + + } + +} -- cgit v1.2.3-55-g7522