Föreläsning 6 och 7: SQL inuti ett program: ODBC, ESQL, JDBC, ADO.NET, Object-relational mapping (ORM), Entity Framework, Hibernate Olika sätt att komma åt relationsdatabaser: 1. Ad-hoc-frågor i SQL, till exempel Batch SQL och DbVisualizer 2. Grafiska gränssnitt, till exempel Microsoft Access 3. Databasspecifika gränssnitt, till exempel MySQL:s C-API 4. ODBC 5. Embedded SQL 6. JDBC 7. Från en webbserver (till exempel med PHP eller Roxens RXML) 8. ADO.NET 9. ORM, till exempel Entity Framework (.NET) och Hibernate (Java) 10. Alternativ till ORM: Objektorienterade databaser, objektrelationsdatabaser Inlämningsuppgifter; 4. ODBC 5. JDBC 6. ADO.NET och Entity Framework 1. Ad-hoc-frågor i SQL, till exempel Batch SQL och DbVisualizer --------------------------------------------------------------- 2. Grafiska gränssnitt, till exempel Microsoft Access ----------------------------------------------------- 3. Databasspecifika gränssnitt, till exempel MySQL:s C-API ---------------------------------------------------------- Exempelprogram: mysqltest.c Hemma: mysql -h bimbatron -u root test Laptop: mysql -u root -p test Hemma: gcc -std=c99 -g -Wall mysqltest.c -I/usr/local/mysql-5.6.22-linux-glibc2.5-x86_64/include /usr/local/mysql-5.6.22-linux-glibc2.5-x86_64/lib/libmysqlclient.so -o mysqltest create table Person (Nummer integer, Namn varchar(20), Telefon char(20)); insert into Person values (1, 'Thomas', '0707347013'); insert into Person values (2, 'Olle', '0707347013'); insert into Person values (3, 'Anna', '0707347013'); insert into Person values (4, 'Saddam', null); select * from Person; Personer: Nummer 1, med namnet Thomas och telefonnummer 0707347013. Nummer 2, med namnet Olle och telefonnummer 0707347013. Nummer 3, med namnet Anna och telefonnummer 0707347013. Nummer 4, med namnet Saddam och telefonnummer (null). 4. ODBC ------- 5. Embedded SQL --------------- Exempelprogram: esqltest.esql esql -c esqltest.esql gcc -std=c99 -g -Wall esqltest.c -lm -o esqltest /usr/local/mimer/installation/MimerSQL-10.1.1A/lib/libmimer.so Personer: Nummer 1, med namnet Thomas och telefon 0707347013. Nummer 2, med namnet Olle och telefon 0707347013. Nummer 3, med namnet Anna och telefon 0707347013. Det har uppkommit ett fel. 6. JDBC ------- Exempelprogram: JDBCTest.java Kommandon: mimjdbcver cp /usr/local/mimer/installation/MimerSQL-10.1.1A/lib/mimjdbc3.jar . javac JDBCTest.java setenv CLASSPATH .:mimjdbc3.jar java JDBCTest Personer: Nummer 1, med namnet Thomas och telefonnummer 0707347013. Nummer 2, med namnet Olle och telefonnummer 0707347013. Nummer 3, med namnet Anna och telefonnummer 0707347013. Nummer 4, med namnet Saddam och telefonnummer null. 7. Från en webbserver (till exempel med PHP eller Roxens RXML) -------------------------------------------------------------- Exempelfil: enroll.html Nästa gång: 8. ADO.NET 9. ORM, till exempel Entity Framework (.NET) och Hibernate (Java) 10. Alternativ till ORM: Objektorienterade databaser, objektrelationsdatabaser Inlämningsuppgifter; 4. ODBC 5. JDBC 6. ADO.NET och Entity Framework