LINQ Verstehen und Einsetzen
|
|
- Käthe Schmidt
- vor 7 Jahren
- Abrufe
Transkript
1 LINQ Verstehen und Einsetzen Proseminar Objektorientiertes Programmieren mit.net und C# Georg Wagner Institut für Informatik Software & Systems Engineering
2 Agenda LINQ-Einführung (Motivation, Bestandteile) C#-Spracherweiterungen (kleine Kontrollfrage) LINQ-Abfragearten LINQ unter der Lupe (Verzögerte Ausführung) LINQ to SQL LINQ Verstehen und Einsetzen v. Georg Wagner 2
3 1. Einführung zu LINQ LINQ Verstehen und Einsetzen v. Georg Wagner 3
4 LINQ Die universelle Abfragesprache Language INtegrated Queries LINQ Verstehen und Einsetzen v. Georg Wagner 4
5 Motivationstreiber zur Einführung von LINQ Es wird aus verschiedenen Datenquellen ermittelt, wer heute Geburtstag hat: Datenquellen: <Student> <Name> <Birthday> <MatrNr> </Student> Programmiersprache: MS-SQL DB DataSet LINQ Ein einheitlicher Zugriffscode WIEDER ANDERER CODE Ergebnis: Heute haben Geburtstag: Herbert, Anton, Fritz LINQ Verstehen und Einsetzen v. Georg Wagner 5
6 LINQ-Bestandteile Programmiersprachen LINQ-Bausteine Abfrageausdrücke LINQ-Provider C# VB.NET Standard Abfrageoperatoren F# Expression Trees LINQ2Objects LINQ2XML LINQ2SQL LINQ2Datase t Datenquellen <Student> <Vorname> <Nachname> <MatrNr> </Student> MS-SQL DB DataSet LINQ2Entities ADO.NET Entity Framework LINQ Verstehen und Einsetzen v. Georg Wagner 6
7 Agenda LINQ-Einführung (Motivation, Bestandteile) C#-Spracherweiterungen (kleine Kontrollfrage) LINQ-Abfragearten LINQ unter der Lupe (Verzögerte Ausführung) LINQ to SQL LINQ Verstehen und Einsetzen v. Georg Wagner 7
8 2. C#-Spracherweiterungen Spracherweiterungen zum Verstehen von LINQ LINQ Verstehen und Einsetzen v. Georg Wagner 8
9 Implizit typisierte lokale Variable Der Compiler leitet für die var-deklaration implizit den Variablentyp aus der Initialisierung der Variable ab. " var darf nur lokal verwendet werden. Objekt-Initialisierer Objekt-Initialisierer Objekt-Initialisierer nehmen Schreibarbeit ab und initialisieren öffentliche Felder bzw. öffentliche Eigenschaften nach ihrer Instanziierung LINQ Verstehen und Einsetzen v. Georg Wagner 9
10 Anonyme Typen Zweck:Schnelles Gruppieren von Daten in ein Objekt, ohne dass man explizit eine Klasse deklarieren muss: 1. Intern entsteht ein Typ mit den Eigenschaften Platz, Vorname und Nachname, der sog. Anonyme Typ. 2. Dieser Typ wird mit rangliste.platz, rangliste.vorname usw. initialisiert. 3. Am Schluss erhält sprinter die Referenz zum Anonymen Typen. Äquivalent ist auch: (Namen der Eigenschaften werden übernommen) LINQ Verstehen und Einsetzen v. Georg Wagner 10
11 Erweiterungsmethoden Mit Erweiterungsmethoden kann man bereits definierte Typen nachträglich Methoden hinzufügen. Kennzeichnet welcher Typ zu erweitern ist. Wenn man nun mit Instanzen arbeitet die IEnumerable<TSource> implementieren (wie z.b. List<Student>) kann man die Erweiterungsmethode abrufen. IntelliSense zeigt sie mit einem blauen Pfeil an: LINQ Verstehen und Einsetzen v. Georg Wagner 11
12 Lambda-Ausdrücke Mit Lambda-Ausdrücken wird das Einfügen von Code an Stellen erlaubt, wo man eigentlich eine Methoden-Übergabe an ein Delegate erwartet hätte. Eingabe-Parameter (Typ wird selbst abgeleitet) Muss mit den Parametern des Delegates Func (hier: TSource) entsprechen. Lambda-OperatorAusdruck oder Anweisungsblock Rückgabetyp muss mit dem des Delegates (hier: Boolean) übereinstimmen LINQ Verstehen und Einsetzen v. Georg Wagner 12
13 Kontroll-Frage 2 Parameter deklariert nur 1 Parameter übergeben Warum funktioniert der Where-Aufruf obwohl nur der 2. Parameter übergeben wurde? Wenn man auf das, was man zugreift (den Typ bei this), noch als Parameter angeben würde, hätte man immer eine unnötige redundante Information LINQ Verstehen und Einsetzen v. Georg Wagner 13
14 Agenda LINQ-Einführung (Motivation, Bestandteile) C#-Spracherweiterungen (kleine Kontrollfrage) LINQ-Abfragearten LINQ unter der Lupe (Verzögerte Ausführung) LINQ to SQL LINQ Verstehen und Einsetzen v. Georg Wagner 14
15 3. LINQ-Abfragearten LINQ Verstehen und Einsetzen v. Georg Wagner 15
16 LINQ-Abfrageausdrücke Das Datenobjekt studenten wird durch einen LINQ-Abfrageausdruck ausgefiltert: " Suche alle Studenten, die unser Proseminar machen und sortiere sie dem Vornamen nach absteigend geordnet. vom Typ IEnumerable<Student> Jede Abfrage beginnt mit from und endet mit select (oder group). studenten repräsentiert ein Objekt, das vom Typ IEnumerable<Student> ist Jedes Objekt, das IEnumerable<T> implementiert, wird im LINQ-Vokabular Sequenz genannt. studenten kann somit jedes beliebige Objekt sein, dass IEnumerable<T> implementiert (z.b. Array, List, Dictionary, ) LINQ Verstehen und Einsetzen v. Georg Wagner 16
17 LINQ-Abfrageausdrücke implizit typisierte lokale Variable Iterator vom Typ IEnumerable<Student> Um alle gefundene Studenten auszugeben nutzen wir: LINQ Verstehen und Einsetzen v. Georg Wagner 17
18 LINQ-Abfrageoperatoren Lambda-Ausdruck Allgemein gilt: Erweiterungsmethoden IEnumerable<T>-Erweiterungsmethoden geben IEnumerable<T> Typen zurück -> Möglichkeit der Verkettung -> Pipeline Pattern In unserem speziellen Fall ist der Typ jeweils: List<Student> LINQ Verstehen und Einsetzen v. Georg Wagner 18
19 Abfrageausdrücke vs. Abfrageoperatoren Man muss sich gar nicht für eine Art entscheiden, beide sind kombinierbar! - Abfrageausdrücke sind durch Ihre Kompaktheit meistens lesbarer - Aber: Unterstützen nur die Operatoren: Select SelectMany Join GroupJoin GroupBy Let Cast OrderBy/ThenBy LINQ Verstehen und Einsetzen v. Georg Wagner 19
20 Agenda LINQ-Einführung (Motivation, Bestandteile) C#-Spracherweiterungen (kleine Kontrollfrage) LINQ-Abfragearten LINQ unter der Lupe (Verzögerte Ausführung) LINQ to SQL LINQ Verstehen und Einsetzen v. Georg Wagner 20
21 4. LINQ-Abfragen unter der Lupe LINQ Verstehen und Einsetzen v. Georg Wagner 21
22 LINQ-Abfragen unter der Lupe Schauen wir uns ein einfacheres Beispiel genauer an: Um die Ergebnisse auszugeben haben wir verwendet: Da teilnehmer mit person durchiteriert wird, enthält teilnehmer bereits alle ausgefilterten Ergebnisse. FALSCH: teilnehmer enthält im Vorhinein noch keine Ergebnisse LINQ Verstehen und Einsetzen v. Georg Wagner 22
23 LINQ-Abfragen unter der Lupe Bei der Kompilierung wird die Abfrage so repräsentiert: = Verzögerte " Ausführung Jedes mal, wenn der Iterator person von teilnehmer ein Element verlangt, wird der obige Code ausgeführt LINQ Verstehen und Einsetzen v. Georg Wagner 23
24 Technische Universität München Verzögerte Ausführung von Abfragen Verzögerte Ausführung erreicht man durch sog. Co-Routinen. Where und Select gehören zu solchen. Where-Methode (Co-Routine): Aufrufer der Co-Routine: 1. Co-Routinen werden mit yield return gekennzeichnet. 2. yield return gibt nicht IEnumerable<TSource> sondern ein Element von TSource zurück 3. Nach jedem yield return wird die Kontrolle dem Aufrufer zurückgegeben 4. Bei weiteren Aufrufe mit demselben Iterator person wird die Co-Routine am letzten yield return fortgesetzt. Dies geschieht hier so lange, bis in source kein element mehr existiert LINQ Verstehen und Einsetzen v. Georg Wagner 24
25 Technische Universität München Verzögerte Ausführung von Abfragen Select() iteriert in einer foreach-schleife Ergebnisse von Where(). Gibt Where() mit yield return ein Element zurück, gibt Select() dieses Element ebenso mit yield return ein Element zurück Durch Verzögerte Ausführung bei großen Datensatzmengen muss bei der ersten Iteration nicht lange gewartet werden und erfolgt keine große Zwischenspeicherung Dieser Effekt geht durch Sortier, Gruppier oder Aggregier-Erweiterungsmethoden verloren LINQ Verstehen und Einsetzen v. Georg Wagner 25
26 Agenda LINQ-Einführung (Motivation, Bestandteile) C#-Spracherweiterungen (kleine Kontrollfrage) LINQ-Abfragearten LINQ unter der Lupe (Verzögerte Ausführung) LINQ to SQL LINQ Verstehen und Einsetzen v. Georg Wagner 26
27 5. LINQ To SQL Mappen, Abfragen, Verändern LINQ Verstehen und Einsetzen v. Georg Wagner 27
28 Beispiel vom vorigen Vortrag in LINQ SELECT DISTINCT c.[customerid],c.[companyname] FROM [Northwind].[dbo].[Customers] c JOIN [Northwind].[dbo].[Orders] o on c.customerid = o.customerid JOIN [Northwind].[dbo].[Employees] e on o.employeeid = e.employeeid WHERE e.employeeid = 1 ODER BY c.[customerid] Ermittle alle verschiedene Firmenkunden mit Ihren Kunden-IDs, die Aufträge bei uns haben die unser Mitarbeiter mit der Firmen-ID 9 bearbeitet, und ordne sie nach deren Kunden-IDs. Zur Realisation dieser Anfrage in LINQ brauchen wir: Eine Klasse, die LINQ- Abfragen in äquivalente SQL-Abfragen des Ziel-Dialektes übersetzt. Lösung: Verwendung der DataContext Klasse aus System.Data.Linq LINQ Verstehen und Einsetzen v. Georg Wagner 28
29 ADO.NET Beispiel vom vorigen Vortrag in LINQ Bevor wir mittels DataContext Daten aus SQL-Tabellen lesen können, müssen wir das relationale Modell auf das Objektmodell mappen. D.h. wir müssen in unserem Fall folgende Zuordnungen machen: Tabelle Klasse Attribut Eigenschaft Mapping-Möglichkeiten: Attribute innerhalb " Klassen XML- Dateien LINQ to SQL Designer LINQ Verstehen und Einsetzen v. Georg Wagner 29
30 Objektrelationales Mapping via Klassen-Attributen Zum Mappen werden die Klassen in System.Data.Linq.Mapping verwendet Klasse Customer wird der SQL-Tabelle Customer zugeordnet Namen müssen übereinstimmen! Klassen-Eigenschaften werden zu den Attributen der SQL-Tabelle Customer zugeordnet Namen müssen übereinstimmen! LINQ Verstehen und Einsetzen v. Georg Wagner 30
31 Der Code um der eigentlichen LINQ Abfrage Eine Verbindung zu einem SQL-Server wird hergestellt Ab der ersten Iteration wird eine Anfrage in SQL-Syntax zum SQL- Server geschickt Tabellen werden noch " nicht eingelesen (Verzögert Ausführung) LINQ Verstehen und Einsetzen v. Georg Wagner 31
32 Die LINQ-Abfrage Anfrage, die wir in LINQ realisieren sollten: SELECT DISTINCT c.[customerid],c.[companyname] FROM [Northwind].[dbo].[Customers] c JOIN [Northwind].[dbo].[Orders] o on c.customerid = o.customerid JOIN [Northwind].[dbo].[Employees] e on o.employeeid = e.employeeid WHERE e.employeeid = 1' ODER BY c.[customerid] Die LINQ-Anfrage: Objekt-Initialisierer da nur ein Objekt zurückgegeben werden kann, wird ein anonymer Typ definiert. Da das Distinct-Schlüsselwort in Abfrageausdrücken nicht vorhanden ist, wird auf LINQ-Abfrageoperatoren zurückgegriffen LINQ Verstehen und Einsetzen v. Georg Wagner 32
33 Die LINQ-Abfrage Die LINQ-Anfrage: Zum SQL-Server wird gesendet (ab ersten foreach-iteration): SELECT DISTINCT [t0].[customerid], [t0].[companyname] FROM [dbo].[customers] AS [t0] INNER JOIN [dbo].[orders] AS [t1] ON [t0].[customerid] = [t1].[customerid] INNER JOIN [dbo].[employees] AS [t2] ON [t1].[employeeid] = [t2].[employeeid] WHERE [t2].[employeeid] = 1 Bemerkenswert ist, dass LINQ durch die Angabe des anonymen Typen und des anschließenden Distinct-Operators die Anfrage entsprechend minimiert hat LINQ Verstehen und Einsetzen v. Georg Wagner 33
34 Aktualisieren von Daten Die Auftrags-Nummern 1 bis 10 wurden in Auftrags-Nr. 123 zusammengeführt. Eine Aktualisierung der Daten ist also nötig. Da die nötige Tabellen schon gemappt sind gestaltet sich eine Daten-Aktualisierung sehr einfach: LINQ Verstehen und Einsetzen v. Georg Wagner 34
35 Quellen LINQ Im Einsatz Manning ISBN: Datenbank-Programmierung mit Microsoft LINQ Microsoft Press ISBN: MSDN LINQ Verstehen und Einsetzen v. Georg Wagner 35
36 Danke für s Zuhören! LINQ Verstehen und Einsetzen v. Georg Wagner 36
37 Anhang: Aktualisierungs-Anfrage UPDATE [dbo].[employees] SET [OrderID] WHERE ([EmployeeID] AND ([FirstName] AND ([LastName] AND ([OrderID] LINQ Verstehen und Einsetzen v. Georg Wagner 37
LINQ to SQL. Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel. Institut für Informatik Software & Systems Engineering
LINQ to SQL Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel Institut für Informatik Software & Systems Engineering Agenda 1. LINQ allgemein Vorteile Bausteine und Varianten
MehrLeseprobe. Thorsten Kansy. Datenbankprogrammierung mit.net 3.5. Mehrschichtige Applikationen mit Visual Studio 2008 und MS SQL Server 2008
Leseprobe Thorsten Kansy Datenbankprogrammierung mit.net 3.5 Mehrschichtige Applikationen mit Visual Studio 2008 und MS SQL Server 2008 Herausgegeben von Holger Schwichtenberg ISBN: 978-3-446-41450-1 Weitere
MehrGrundlagen in C# und.net
Grundlagen in C# und.net Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 FB Automatisierung und Informatik:
MehrGrundlagen in C# und.net
Grundlagen in C# und.net Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 FB Automatisierung und Informatik:
MehrObjektorientiertes Programmieren mit.net und C# Proseminar im Wintersemester 2010/2011 LINQ Verstehen und Einsetzen
Objektorientiertes Programmieren mit.net und C# Proseminar im Wintersemester 2010/2011 LINQ Verstehen und Einsetzen Georg Wagner Technische Universität München Abstract: LINQ ist eine Sammlung von Spracherweiterungen
MehrLINQ im Einsatz HANSER. Fabrice Marguerie Steve Eichert Jim Wooley. щвщящ\ Mit einem Geleitwort on Watt Warren
Fabrice Marguerie Steve Eichert Jim Wooley щвщящ\ LINQ im Einsatz Mit einem Geleitwort on Watt Warren Deutsche Übersetzung von Walter Doberenz HANSER Inhaltsverzeichnis Geleitwort 15 Vorwort 17 Danksagung
MehrLINQ im Einsatz. von Walter Doberenz, Steve Eichert, Jim Wooley, Fabrice Marguerie. 1. Auflage. Hanser München 2008
LINQ im Einsatz von Walter Doberenz, Steve Eichert, Jim Wooley, Fabrice Marguerie 1. Auflage Hanser München 2008 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 41429 7 Zu Leseprobe schnell und
MehrLINQ. LANGUAGE INTEGREATED QUERY.net 3.5. Bernhard Grojer BernhardG@ppedv.de
LINQ LANGUAGE INTEGREATED QUERY.net 3.5 Bernhard Grojer BernhardG@ppedv.de Agenda Übersicht LINQ Basistechnologien Verschiedene Arten von LINQ LINQ (to Objects) LINQ TO SQL Übersicht LINQ Aggregationen
MehrÜbung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
Mehr.NET und Language Integrated Query (LINQ) W3L AG info@w3l.de
1.NET und Language Integrated Query (LINQ) W3L AG info@w3l.de 2012 2 Inhaltsverzeichnis LINQ to Objects Vergleich mit Schleifen Abfrage-Syntax Erweiterungsmethoden-Syntax LINQ Abfrage Bestandteile Spracherweiterungen
MehrIch liebe Java && Ich liebe C# Rolf Borst
Ich liebe Java && Ich liebe C# Rolf Borst Java oder C#? Einführung public class Einfuehrung { private int gesamtzahl = 0; /* Ermittelt die Anzahl der geraden und durch drei teilbaren Zahlen */ public String
MehrInhalt. 1 LINQ Warum benötigen wir LINQ? WasistLINQ? Voraussetzungen für LINQ Wie ist das Buch aufgebaut?
Danksagung 11 1 LINQ 13 1.1 Warum benötigen wir LINQ? 14 1.2 WasistLINQ? 15 1.3 Voraussetzungen für LINQ 18 1.4 Wie ist das Buch aufgebaut? 19 2 UNOtoSOL 21 2.1 Entity-Klassen 22 2.1.1 Wichtige Attribute
MehrObjektorientierte Programmierung II
Objektorientierte Programmierung II OOP I Erlaubt Entwicklers, im Problemraum zu denken und zu arbeiten. Das Problem wird in eine Menge von Objekten zerlegt. Objekte wirken aufeinander, um das Problem
MehrProgrammiertechnik Klassenvariablen & Instantiierung
Programmiertechnik Klassenvariablen & Instantiierung Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Klassenvariablen Zur Erinnerung: Klassen bestehen aus Variablen und Methoden; beide zusammen
MehrValidation und Quick Fixing mit Xtend. 3. Dezember 2014
Validation und Quick Fixing mit Xtend 3. Dezember 2014 175 Überblick Tuning der Xtext-generierten Editoren Validierung mit OCL auf der abstrakten Syntax mit Xtend auf der konkreten Syntax Quick Fixes mit
MehrSQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)
SQL DDL (Data Definition Language) Befehle und DML(Data Manipulation Language) DML(Data Manipulation Language) SQL Abfragen Studenten MatrNr Name Vorname Email Age Gruppe 1234 Schmidt Hans schmidt@cs.ro
MehrDatenbanken Grundlagen und Design
Frank Geisler Datenbanken Grundlagen und Design 3., aktualisierte und erweiterte Auflage mitp Vorwort 15 Teil I Grundlagen 19 i Einführung in das Thema Datenbanken 21 i.i Warum ist Datenbankdesign wichtig?
MehrGeschrieben von: Anson Horton Samstag, den 17. November 2007 um 17:35 Uhr - Aktualisiert Samstag, den 12. Januar 2008 um 05:47 Uhr
Dieser Artikel basiert auf einer Vorabversion von Visual Studio mit dem Codenamen Orcas. Er beschreibt das Feature LINQ das mit der kommenden Sprachversion C# 3.0 erscheinen wird. Der Artikel stammt teilweise
MehrLINQ & Streams. Arthur Zaczek
LINQ & Streams Arthur Zaczek Apr 2015 1 C# LINQ 1.1 LINQ Language Integrated Query Abfragen gegen beliebige Datenquellen möglich Listen von Objekten Datenbanken (Linq2SQL, Entity Framework, nhibernate)
MehrSeminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.
Seminar 2 SQL - DML(Data Manipulation Language) und DDL(Data Definition Language) Befehle. DML Befehle Aggregatfunktionen - werden auf eine Menge von Tupeln angewendet - Verdichtung einzelner Tupeln yu
Mehrpue13 January 28, 2017
pue13 January 28, 2017 1 Aufgabe 1 (Klammern und Anweisungsblöcke) Wie Sie in der Vorlesung gelernt haben, werden Anweisungsblöcke in Java nicht durch Einrückung, sondern mithilfe von geschweiften Klammern
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
MehrO/R Mapper. O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010
O/R Mapper O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010 Agenda Object-relational impedance mismatch Mapping Session Abfragen No. 2 Object-relational impedance mismatch Object-relational
MehrJava Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017
Informatik 1 für Nebenfachstudierende Grundmodul Java Methoden Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht Kapitel 3 - Java
MehrEinstieg in die Programmierung mit Visual Basic.NET
Einstieg in die Programmierung mit Visual Basic.NET Agenda - Methoden mit Argumenten - Überladen von Methoden - Eigenschaftenprozeduren - Eigenschaftenprozeduren automatisch generieren - Konstruktoren
Mehr4. Objektrelationales Typsystem Kollektionstypen. Nested Table
Nested Table Bei einer Nested Table handelt es sich um eine Tabelle als Attributwert. Im Gegensatz zu Varray gibt es keine Beschränkung bei der Größe. Definition erfolgt auf einem Basistyp, als Basistypen
MehrTag 8 Repetitorium Informatik (Java)
Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium
MehrDelegaten. d. h. eine Tätigkeitsanforderung wird weitergeleitet
Einführung Delegaten delegate ist ein Objekt, das delegiert == weiterleitet d. h. eine Tätigkeitsanforderung wird weitergeleitet - Weiterleitung erfolgt an eine Funktion - diese Funktion(en) wurde dem
MehrTypsystem Plattform- und Sprachenunabhängigkeit in.net
Typsystem Plattform- und Sprachenunabhängigkeit in.net C# J# VB.NET Zwischencode CIL Windows Unix Auf welchen Grundlagen basiert dies? Komponenten & Frameworks Seite 1 Typsystem Grundlagen - CLR Common
MehrTag 7 Repetitorium Informatik (Java)
Tag 7 Repetitorium Informatik (Java) Dozent: Patrick Kreutzer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium
MehrVerkettete Datenstrukturen: Listen
Verkettete Datenstrukturen: Listen 2 Listen Formal: Liste = endliche Folge von Elementen [a 1, a 2,..., a n ]. Spezialfall: leere Liste [ ]. Länge einer Liste = Anzahl der Elemente (bei leerer Liste: 0).
MehrPaolo Pialorsi, Marco Russo. Datenbankprogrammierung. mit Microsoft LINQ. Microsoft
Paolo Pialorsi, Marco Russo Datenbankprogrammierung mit Microsoft LINQ Microsoft Inhaltsverzeichnis Vorwort Einleitung Danksagung XV XVII XVIII Einführung Über dieses Buch Systemanforderungen Die Companion-Website
MehrVisual Basic.NET und ADO.NET
.NETSolutions Visual Basic.NET und ADO.NET Datenbanken programmieren F. SCOTT BARKER Markt+ Übersetzung: Gabriele Broszat Einleitung Zum Autor Zur Begleit-CD-ROM Wer sollte dieses Buch nutzen? Welche Themen
MehrProgrammieren in Java -Eingangstest-
Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit
MehrDatenzugriffskomponente mit JPA 2.1
Datenzugriffskomponente mit JPA 2.1 (Grundlagen der Java Persistence Architecture) Vladislav Faerman Gliederung Einführung Konfiguration Objekt-Relationales Mapping (ORM) mit JPA Das zentrale Konzept der
MehrC++ - Objektorientierte Programmierung Konstruktoren und Destruktoren
C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue
MehrObjektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)
Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
MehrDatenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken
Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken 17. V. 2017 Outline 1 Organisatorisches 2 SQL 3 OLTP, OLAP, SAP, and Data Warehouse OLTP and OLAP SAP 4 Objekt-relationale Datenbanken Beispiel
Mehrinsert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle
Einführung in SQL insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle Quelle Wikipedia, 3.9.2015 SQL zur Kommunikation mit dem DBMS SQL ist
Mehr12 BG EDV Access / Inf-SQL1 Theodor-Heuss-Schule Wetzlar
Abfragen aus einer Tabelle mit Hilfe der Datenbank-Sprache SQL SQL (Structured Query Language) ist eine Computersprache zum Speichern, Bearbeiten und Abfragen von Daten in relationalen Datenbanken. Eine
MehrVariablen und Parameter
D3kjd3Di38lk323nnm Variablen und Parameter Eine Variable repräsentiert einen Speicherbereich, der einen veränderbaren Wert enthält. Eine Variable kann eine lokale Variable, ein Parameter (value, ref oder
MehrDatenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken
Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken 31. V. 2016 Outline 1 Organisatorisches 2 SQL 3 OLTP, OLAP, SAP, and Data Warehouse OLTP and OLAP SAP 4 Objekt-relationale Datenbanken Beispiel
MehrProgrammierkurs. SoSe Markus Geveler Inst. f. Applied Mathematics, TU Dortmund.
Programmierkurs SoSe 2013 Markus Geveler Inst. f. Applied Mathematics, TU Dortmund markus.geveler@math.tu-dortmund.de Lesson 5 Was machen wir heute hier? weiter mit Objektorientierter Programmierung viel
MehrWeb-Techniken Einführung in JavaScript
Web-Techniken Einführung in JavaScript Prof. Dr. Axel Böttcher Winter 2012/13 15. September 2012 Ausführung von JavaScript Variante 1: Ausführung im Browser durch direktes Einbetten: 1 2
MehrPlay Framework, MySQL, JPA, HQL, HTML, jquery,
Play Framework, MySQL, JPA, HQL, HTML, jquery, Wer Mit wem Resultat 1.Kunde Schalter: Bibliothekarin Bestimmt,welcher Archivar die Zeitschrift holen geht 2. Schalter: Bibliothekarin Archivar Kontrollübergabe
MehrJava Referenzdatentypen genauer betrachtet
Informatik 1 für Nebenfachstudierende Grundmodul Java Referenzdatentypen genauer betrachtet Kai-Steffen Hielscher Folienversion: 23. Januar 2018 Informatik 7 Rechnernetze und Kommunikationssysteme Referenzdatentypen
MehrDatenbankprogrammierung mit Microsoft LINQ
Datenbankprogrammierung mit Microsoft LINQ Leistungsfähige Datenmanipulation mit LINQ und Visual Basic und C# von Paolo Pialorsi, Marco Russo 1. Auflage Datenbankprogrammierung mit Microsoft LINQ Pialorsi
MehrLeider gibt es in einigen Fällen keine wirklich einheitlichen Fachbegriffe im Deutschen, obwohl einige als "der Standard" bezeichnet werden.
37 Leider gibt es in einigen Fällen keine wirklich einheitlichen Fachbegriffe im Deutschen, obwohl einige als "der Standard" bezeichnet werden. der Begriff der Klasse ist immer eindeutig. Die verschiedenen
MehrFakultät Angewandte Informatik Programmierung verteilter Systeme Übungen zur Vorlesung Informatik II, Blatt 6 - Musterlösung
WS 2011/12 Fakultät Angewandte Informatik Programmierung verteilter Systeme 05.12.2011 Prof. Dr. Bernhard Bauer Übungen zur Vorlesung Informatik II, Blatt 6 - Musterlösung Aufgabe 21 * (Objektrelationale
MehrOrganisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download
Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches
MehrEinführung in die Programmierung mit BlueJ
Einführung in die Programmierung mit BlueJ Thema 4 Steuerstrukturen - Verzweigungen Dr. Henry Herper Otto-von-Guericke-Universität Magdeburg - WS 2012/13 Daten speichern: Datenfelder Instanzvariablen,
MehrLanguages and Tools for Object-Oriented Development Klausur Wintersemester 2007/2008
Languages and Tools for Object-Oriented Development Klausur Wintersemester 2007/2008 27. Februar 2008 Institut für Softwaresysteme, TUHH Regeln: 1. Zu dieser Klausur sind keinerlei Hilfsmittel zugelassen.
MehrWelche Kunden haben die gleiche Ware bestellt? select distinct a1.name, a2.name from Auftrag a1, Auftrag a2 where a1.ware = a2.ware.
*HVFKDFKWHOWH$QIUDJHQ In einer SQL-Anweisung können in der where-klausel, from-klausel, select-klausel wieder SQL-Anweisungen auftreten. Man spricht dann auch von einer geschachtelten Anfrage oder Unteranfrage.
Mehr11. Funktionale Programmierung Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt
11. Funktionale Programmierung Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Kontrollfragen zu Design Patterns Wozu werden Design Patterns verwendet? Wann
Mehr1 Klassen und Objekte
1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente
MehrÜbungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit
Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Aufgabe : Die allgemeine Object-Liste Gegeben sei folgendes UML-Klassendiagramm: MyObjectList
MehrSQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)
SQL DDL (Data Definition Language) Befehle und DML(Data Manipulation Language) DML(Data Manipulation Language) SQL Abfragen Studenten MatrNr Name Vorname Email Age Gruppe 1234 Schmidt Hans schmidt@cs.ro
MehrAssoziative Container in C++ Christian Poulter
Assoziative Container in C++ Christian Poulter Seminar: Die Sprache C++ Mat-Nr.: 53 03 129 EMail: inf@poulter.de Christian Poulter Assoziative Container in C++ Seite 1/10 Inhalt 1. Einleitung: Container...
MehrHochschule Darmstadt Fachbereich Informatik
Hochschule Darmstadt Fachbereich Informatik WPF Routed Events, Datenbankanbindung 03.05.2010 63 Praktikum Tipp: Beispiellösungen zu P4: http://dotnet.jku.at/csbuch/solutions/ Projektvorschläge: Internet-Timeout
MehrGrundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
MehrObjekte haben eine eigene Notation, also Schreibweise, beim Aufruf:
JavaScript - Inhalt 1. Objekte 2. Arrays 3. Callbacks 1)JavaScript Objekte Objekte haben eine eigene Notation, also Schreibweise, beim Aufruf: Eine Methode wird immer mit dem Namen des Objekts, einem Punkt
MehrInhaltsverzeichnis. Einleitung
vn Inhaltsverzeichnis Einleitung Kapitel 1: Eine Einführung in relationale Datenbanken 7 Was ist eine relationale Datenbank? 9 Verknüpfen der einzelnen Tabellen 10 Die Reihenfolge der Zeilen ist beliebig
MehrIntroduction to Data and Knowledge Engineering. 6. Übung SQL
Introduction to Data and Knowledge Engineering 6. Übung SQL Aufgabe 6.1 Datenbank-Schema Buch PK FK Autor PK FK ISBN Titel Preis x ID Vorname Nachname x BuchAutor ISBN ID PK x x FK Buch.ISBN Autor.ID FB
MehrObjektorientiertes RPG 2-1. Objektorientiertes RPG
Objektorientiertes RPG 2-1 2 Objektorientiertes RPG Das erste Kapitel wies auf die Ähnlichkeiten im Aufbau eines RPG-Programms und einer Java-Klasse hin. Aber wenn diese Strukturen bei der Erstellung von
MehrRO-Tutorien 3 / 6 / 12
RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
MehrRO-Tutorien 15 und 16
Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 2 am 04.05.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft
MehrSeminar 1 SQL Abfragen DML. MatrNr Name Vorname Age Gruppe Schmidt Hans Meisel Amelie
Seminar 1 SQL Abfragen DML Studenten MatrNr Name Vorname Email Age Gruppe 1234 Schmidt Hans schmidt@cs.ro 21 331 1235 Meisel Amelie meisel@cs.ro 22 331 1236 Krause Julia krause@cs.ro 21 332 1237 Rasch
MehrGROUP BY, HAVING und Sichten
GROUP BY, HAVING und Sichten Tutorübungen 09/33 zu Grundlagen: Datenbanken (WS 14/15) Michael Schwarz Technische Universität München 11.11 / 12.11.2014 1/12 GROUP BY HAVING Sichten Eine Tabelle studenten
MehrÜbersicht der wichtigsten MySQL-Befehle
Übersicht der wichtigsten MySQL-Befehle 1. Arbeiten mit Datenbanken 1.1 Datenbank anlegen Eine Datenbank kann man wie folgt erstellen. CREATE DATABASE db_namen; 1.2 Existierende Datenbanken anzeigen Mit
MehrInhaltsverzeichnis. Bernd Müller, Harald Wehr. Java Persistence API 2. Hibernate, EclipseLink, OpenJPA und Erweiterungen ISBN:
Inhaltsverzeichnis Bernd Müller, Harald Wehr Java Persistence API 2 Hibernate, EclipseLink, OpenJPA und Erweiterungen ISBN: 978-3-446-42693-1 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-42693-1
MehrDatenmodelle und Datenbanken 2
Datenmodelle und Datenbanken 2 Prof. N. Fuhr Institut für Informatik und Interaktive Systeme Arbeitsgruppe Informationssysteme 24. Februar 2005 Hinweise zur Bearbeitung Die Zeit läuft erst, wenn Sie alle
MehrIntegrierte deklarative Abfragesprachen in imperativen Programmiersprachen am Beispiel von:
1 Integrierte deklarative Abfragesprachen in imperativen Programmiersprachen am Beispiel von: Language INtegrated Query LINQ Datenabfragen in C# Proseminar Programmierparadigmen und Sprachen Christian
MehrFolien php/mysql Kurs der Informatikdienste
Folien php/mysql Kurs der Informatikdienste 1. Einführung in die Datenbank MySQL Kursbeispiel und Kursziele 1.1 Das Kursbeispiel: eine kleine Personalverwaltung 1.2 Was brauchen wir? 1.3 Ziele Kurs AEMS1,
MehrMultimedia im Netz Wintersemester 2013/14. Übung 02 (Hauptfach)
Multimedia im Netz Wintersemester 2013/14 Übung 02 (Hauptfach) Ludwig-Maximilians-Universität München Multimedia im Netz WS 2013/14 - Übung 2-1 PHP und MySQL Es werden mehrere APIs von PHP angeboten um
MehrProgrammieren I. Kapitel 12. Referenzen
Programmieren I Kapitel 12. Referenzen Kapitel 12: Referenzen Ziel: Die Wahrheit über Objekte Lebensdauer Speicherverwaltung Parameterübergabemechanismen in Methoden Gleichheiten, Kopien Arrays Speicherbereinigung
MehrRO-Tutorien 17 und 18
RO-Tutorien 17 und 18 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery TUTORIENWOCHE 2 AM 10.05.2012 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der
MehrKapitel 8. Programmierkurs. Methoden. 8.1 Methoden
Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08
MehrGrundlagen der Objektorientierten Programmierung - Methoden -
Methoden In ihrem formalen Aufbau entsprechen Java-Methoden den Funktionen in C und C++. Eine Methode dient dazu, eine häufig benötigte Folge von Anweisungen unter einem Namen zusammenzufassen und zum
MehrProf. W. Henrich Seite 1
Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse
MehrJava-Grundkurs für Wirtschaftsinformatiker
Klaus-Georg Deck Herbert Neuendorf Java-Grundkurs für Wirtschaftsinformatiker Die Grundlagen verstehen - Objektorientierte Programmierung - Fortgeschrittene Konzepte kennenlernen - Betriebswirtschaftlich
MehrGrundlagen der Informatik 0
Technische Universität Darmstadt 01.07.2013 Grundlagen der Informatik 0 Vorlesung 0 Java ist eine Programmiersprache Ilkay Baytekin Douglas Crockford http://media.smashingmagazine.com/wp-content/uploads/2012/04/doug-crockford-image.jpg
MehrQuery Result Caching. Optimierung des Datenbankzugriffs
Query Result Caching Optimierung des Datenbankzugriffs Andreas Hubmer 19.11.2012 Inhalt Problemstellung Tabellen-Cache DBProxy Objekt-Cache 1 st -/2 nd -Level Cache Query Cache 2 Problemstellung Application-
MehrAndere Datenbankmodelle. Graphendatenbanken
Andere Datenbankmodelle Graphendatenbanken Datenbankmodelle Relationale Datenbank (SQL) NoSQL (Not Only SQL): Implementierungen können folgendermaßen nach Datenmodell gegliedert werden: Dokumentorientierte
MehrInhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1
Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................
MehrInhaltsverzeichnis. Teil A Schnell zurechtfinden... 1
Inhaltsverzeichnis Ein nicht ganz so ernst gemeintes Vorwort... http://www.activedevelop.de Ein wenig Werbung in eigener Sache... Codebeispiele... Support... Danksagungen... XIII XV XVI XVI XVII Teil A
MehrEinstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen
MehrProf. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen
Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Anonyme Klassen
MehrKlausur Grundlagen der Programmierung
Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel
MehrVorwort. Webseite zum Buch:
Webseite zum Buch: www.comelio-medien.com/buch-katalog/oracle/oracle_pl_sql Vorwort Herzlich Willkommen zu einem Fachbuch aus dem Verlag Comelio Medien. Dieses Buch aus dem Bereich Datenbanken soll Sie
MehrMicrosoft Visual C# 2008
John Sharp 13 Microsoft Visual C# 2008 Schritt für Schritt 13 13 14 15 15 16 16 17 17 17 21 22 22 23 25 26 II 40 51 Press 53 54 54 55 55 56 56 57 58 63 63 64 Inhaltsverzeichnis Einleitung 13 Einführung
MehrObjektorientierung. Marc Satkowski 20. November C# Kurs
Objektorientierung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Weiterführende Verzweigungen Tertiäre-Verzweigung switch case 2. Schleifen Zählschleife (for) break & continue 3. Objektorientierung
MehrObjekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3
Programmieren mit Java Modul 5 Objekte Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Klassen und Objekte 3 2.1 Klassen.................................... 4 2.2 Objektvariablen und Methoden.......................
MehrACCESS SQL ACCESS SQL
ACCESS SQL Datenbankabfragen mit der Query-Language ACCESS SQL Datenbankpraxis mit Access 34 Was ist SQL Structured Query Language Bestehend aus Datendefinitionssprache (DDL) Datenmanipulationssprache
MehrKapitel 10 Delegationsvariablen
Kapitel 10 Delegationsvariablen Korbinian Molitorisz IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) Agenda Wie werden
MehrProgrammieren lernen in ASP.NET mit C#
Programmieren lernen in ASP.NET mit C# von Patrick A. Lorenz, Christoph A. Müller 1. Auflage Hanser München 2003 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 22311 0 Zu Leseprobe schnell und
MehrTeil A Einführung in Microsoft Visual C# und Microsoft Visual Studio 2008 23
Einleitung 13 Einführung 13 An wen sich dieses Buch richtet 13 Wegweiser für Ein- und Umsteiger 14 Konventionen und Features in diesem Buch 15 Konventionen 15 Weitere Features 16 Systemvoraussetzungen
MehrISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de
08 Datenbanken Übung SQL Einführung Eckbert Jankowski www.iit.tu-cottbus.de Datenmodell (Wiederholung, Zusammenfassung) Objekte und deren Eigenschaften definieren Beziehungen zwischen den Objekten erkennen/definieren
MehrJava-Objekte mit SQL verheiraten
ITMAGAZINE Java-Objekte mit SQL verheiraten 24. November 2006 - ibatis ermöglicht die Abstraktion von SQL-Datenbanken, ohne dass man auf von Hand geschriebene SQL-Abfragen verzichten muss. Entwickelt man
MehrEinstieg in die Informatik mit Java
1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung
MehrDurch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei
Lösungsvorschläge zur Klausur zum Kurs 1618 Sommersemester 2001 am 22.9.2001 Aufgabe 1 a) Benutzungsbeziehung: class Kennzeichen class Fahrzeug boolean gueltigeskennzeichen (Kennzeichen kz) Objekte der
Mehr