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; } }