53
1 Telpas datu datu bāzes realizācijas piemērs Y ass 20 18 16 14 12 10 2 0 2 4 6 8 10 12 14 16 18 X ass Slānis – mājas (poligoni): 1. MĀJA1 1,0, 1,4, 5,4, 5,0, 1,0 2. MĀJA2 7,0, 7,4, 11,4, 11,0, 7,0 3. MĀJA3 13,0, 13,4, 17,4, 17,0, 13,0 4. SKOLA 1,10, 1,19, 9,19, 9,10, 7,10, 7,12, 3,12, 3,10, 1,10 5. BASEINS 10,14, 10,19, 14,19, 14,14, 10,14 6. VEIKALS 15,8, 15,19, 19,19, 19,8, 15, 8 7. KIOSKS 10,8,10,11, 13,11, 13,8, 10,8 Slānis – ielas (taisnes nogriežņu virknes): S K O L A B A S E V I E N I S K A L K I - S O S - K S K O K S 1 K O K S 2 I E L A 1 I E L A 2 I E L A 3 M Ā J A M Ā J A M Ā J A 1 2 3

Y ass - Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

  • Upload
    vothu

  • View
    219

  • Download
    6

Embed Size (px)

Citation preview

Page 1: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

1

Telpas datu datu bāzes realizācijas piemērs

Y ass 20

18

16

14

12

10

8

6

4 2 0

2 4 6 8 10 12 14 16 18 X ass

Slānis – mājas (poligoni):1. MĀJA1 1,0, 1,4, 5,4, 5,0, 1,02. MĀJA2 7,0, 7,4, 11,4, 11,0, 7,03. MĀJA3 13,0, 13,4, 17,4, 17,0, 13,04. SKOLA 1,10, 1,19, 9,19, 9,10, 7,10, 7,12, 3,12, 3,10, 1,105. BASEINS 10,14, 10,19, 14,19, 14,14, 10,146. VEIKALS 15,8, 15,19, 19,19, 19,8, 15, 87. KIOSKS 10,8,10,11, 13,11, 13,8, 10,8

Slānis – ielas (taisnes nogriežņu virknes):8. IELA1 0,6, 12,6, 19,6 20,69. IELA2 12,0, 12,610. IELA3 19,0, 19,6, 19,20

Slānis – Koki (riņķis, kuru definē trīs punkti):1. KOKS1 3,8.5, 3,9,5, 3.5,9 2. KOKS2 7,8.5, 7,9.5, 7.5,9

S K O L A B A S E VI EN IS K

AL

K I - SO S -K S

K O K S 1 K O K S 2

I E L A 1 I E L A 2 I E L A 3

M Ā J A M Ā J A M Ā J A1 2 3

Page 2: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

2

Telpas datu datu bāzes slāņa tabulu izveidošana

1. slāņa definēšana - celtnescreate table CELTNES (C_NUM number CONSTRAINT Ier_PA_Celtnes PRIMARY KEY,GEOMETRIJA MDSYS.SDO_GEOMETRY,C_NOS varchar2(20) );

2. slāņa definēšana - ielascreate table IELAS (I_NUM number CONSTRAINT Ier_PA_Ielas PRIMARY KEY,GEOMETRIJA MDSYS.SDO_GEOMETRY,I_NOS varchar2(20) );

3. slāņa definēšana - kokicreate table KOKI (K_NUM number CONSTRAINT Ier_PA_Koki PRIMARY KEY,GEOMETRIJA MDSYS.SDO_GEOMETRY,K_NOS varchar2(20) );

Page 3: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

3

Metadatu (slāņu dimensiju datu) ievade

delete from USER_SDO_GEOM_METADATA where TABLE_NAME = 'CELTNES';

delete from USER_SDO_GEOM_METADATA where TABLE_NAME = 'IELAS';

delete from USER_SDO_GEOM_METADATA where TABLE_NAME = 'KOKI';

insert into USER_SDO_GEOM_METADATA(TABLE_NAME, COLUMN_NAME, DIMINFO, SRID) VALUES('CELTNES', 'GEOMETRIJA', MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT('X', 0, 20, 0.05),MDSYS.SDO_DIM_ELEMENT('Y', 0, 20, 0.05)), NULL);

insert into USER_SDO_GEOM_METADATA(TABLE_NAME, COLUMN_NAME, DIMINFO, SRID) VALUES('IELAS', 'GEOMETRIJA', MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT('X', 0, 20, 0.05), MDSYS.SDO_DIM_ELEMENT('Y', 0, 20, 0.05)), NULL);

insert into USER_SDO_GEOM_METADATA(TABLE_NAME, COLUMN_NAME, DIMINFO, SRID) VALUES('KOKI', 'GEOMETRIJA', MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT('X', 0, 20, 0.05), MDSYS.SDO_DIM_ELEMENT('Y', 0, 20, 0.05)), NULL);

Page 4: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

4

Informāciju par visiem ģeometriju slāņiem iespējams iegūt no datu bāzes datu vārdnīcas skata USER_SDO_GEOM_METADATA

SELECT * FROM USER_SDO_GEOM_METADATA;

Page 5: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

5

Datu ievade tabulā CELTNESinsert into CELTNES values(1,MDSYS.SDO_GEOMETRY(2003, NULL, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1, 3, 1),MDSYS.SDO_ORDINATE_ARRAY(1,0, 1,4, 5,4, 5,0, 1,0)), 'MĀJA1');

insert into CELTNES values(2,MDSYS.SDO_GEOMETRY(2003, NULL, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1, 3, 1),MDSYS.SDO_ORDINATE_ARRAY(7,0, 7,4, 11,4, 11,0, 7,0)), 'MĀJA2');

insert into CELTNES values(3,MDSYS.SDO_GEOMETRY(2003, NULL, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1, 3, 1),MDSYS.SDO_ORDINATE_ARRAY(13,0, 13,4, 17,4, 17,0, 13,0)), 'MĀJA3');

insert into CELTNES values(4,MDSYS.SDO_GEOMETRY(2003, NULL, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1, 3, 1),MDSYS.SDO_ORDINATE_ARRAY(1,10, 1,19, 9,19, 9,10, 7,10, 7,12,3,12, 3,10, 1,10)), 'SKOLA');

insert into CELTNES values(5,MDSYS.SDO_GEOMETRY(2003, NULL, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1, 3, 1),MDSYS.SDO_ORDINATE_ARRAY(10,14, 10,19, 14,19, 14,14, 10,14)), 'BASEINS');

insert into CELTNES values(6,MDSYS.SDO_GEOMETRY(2003, NULL, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1, 3, 1),MDSYS.SDO_ORDINATE_ARRAY(15,8, 15,19, 19,19, 19,8, 15,8)), 'VEIKALS');

insert into CELTNES values(7,MDSYS.SDO_GEOMETRY(2003, NULL, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1, 3, 1),MDSYS.SDO_ORDINATE_ARRAY(10,8, 10,11, 13,11, 13,8, 10,8)), 'KIOSKS');

Page 6: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

6

Tabulas CELTNES datu izvadeselect A.GEOMETRIJA.SDO_ORDINATESfrom CELTNES A;

Page 7: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

7

Datu ievade tabulā IELAS

insert into IELAS values(1,MDSYS.SDO_GEOMETRY(2002, NULL, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1, 2, 1),MDSYS.SDO_ORDINATE_ARRAY(0,6, 12,6, 19,6, 20,6)), 'IELA1');

insert into IELAS values(2,MDSYS.SDO_GEOMETRY(2002, NULL, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1, 2, 1),MDSYS.SDO_ORDINATE_ARRAY(12,0, 12,6)), 'IELA2');

insert into IELAS values(3,MDSYS.SDO_GEOMETRY(2002, NULL, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1, 2, 1),MDSYS.SDO_ORDINATE_ARRAY(19,0, 19,6, 19,20)), 'IELA3');

select A.GEOMETRIJA.SDO_ORDINATES from IELAS A;

Page 8: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

8

Datu ievade tabulā KOKI

insert into KOKI values(1,MDSYS.SDO_GEOMETRY(2003, NULL, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1, 3, 4),MDSYS.SDO_ORDINATE_ARRAY(3,8.5, 3.5,9, 3,9.5 )), 'KOKS1');

insert into KOKI values(2,MDSYS.SDO_GEOMETRY(2003, NULL, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1, 3, 4),MDSYS.SDO_ORDINATE_ARRAY(7,8.5, 7.5,9, 7,9.5)), 'KOKS2');

select A.GEOMETRIJA.SDO_ORDINATES from KOKI A;

Page 9: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

9

Slāņu grafisko indeksu izveidošana

Fiksētā indeksa veidošana:

create index IND_CELTNES ON CELTNES(GEOMETRIJA)indextype is MDSYS.SPATIAL_INDEX parameters ('SDO_LEVEL = 4');

Hibrīda tipa indeksa veidošana:

create index IND_KOKI ON KOKI(GEOMETRIJA)indextype is MDSYS.SPATIAL_INDEX parameters ('SDO_LEVEL = 4, SDO_NUMTILES =4');

R-tree koka indeksa veidošana:

create index IND_IELAS ON IELAS(GEOMETRIJA)indextype is MDSYS.SPATIAL_INDEX;

Page 10: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

10

Ievadīto datu pārbaude

Page 11: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

11

Ievadīto datu vizualizācija ar Map View programmu (iekļauta vizualizācijas programma)

View Map View

Page 12: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

12

Page 13: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

13

Page 14: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

14

Page 15: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

15

Java Developer Kit (JDK) instalēšana un sistēmas parametru vērtību norādīšana

In setting up JDK and Java applications, you will encounter these environment variables: PATH, CLASSPATH, JAVA_HOME and JRE_HOME. In short:1) PATH: maintains a list of directories. The OS searches the PATH entries for executable programs, such as Java Compiler (javac) and Java Runtime (java).2) CLASSPATH: maintain a list of directories (containing many Java class files) and JAR file (a single-file archive of Java classes). The Java Compiler and Java Runtime searches the CLASSPATH entries for Java classes referenced in your program.3) JAVA_HOME and JRE_HOME: maintain the locations of JDK and JRE installed directory, respectively.

Set the PATH environment variable if you want to be able to conveniently run the executables (javac.exe, java.exe, javadoc.exe, and so on) from any directory without having to type the full path of the command. If you do not set the PATH variable, you need to specify the full path to the executable every time you run it, such as:C:\Java\jdk1.7.0\bin\javac MyClass.javaThe PATH environment variable is a series of directories separated by semicolons (;). Microsoft Windows looks for programs in the PATH directories in order, from left to right. You should have only one bin directory for the JDK in the path at a time (those following the first are ignored), so if one is already present, you can update that particular entry.The following is an example of a PATH environment variable:C:\Java\jdk1.7.0\bin;C:\Windows\System32\;C:\Windows\;C:\Windows\System32\Wbem

The class path is the path that the Java Runtime Environment (JRE) searches for classes and other resource files.

Class path entries can contain the base name wildcard character (*), which is considered equivalent to specifying a list of all of the files in the directory with the extension .jar or .JAR. For example, the class path entry mydir/* specifies all JAR files in the directory named mydir. A class path entry consisting of * expands to a list of all the jar files in the current directory. Files are considered regardless of whether they are hidden (have names beginning with '.').

Page 16: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

16

Ģeometriskās datu bāzes ģeometriju vizualizēšana ar GeoRaptor

Lai vizualizētu datus, var izmantot SQL Developer paplašinājumu Oracle Georaptor. Šis rīks ir brīvi pieejams oficiālā lapā, kur arī izvietotas pamācības rīka izmantošanai:(http://sourceforge.net/apps/mediawiki/georaptor/index.php?title=Main_Page).

Lai izmantotu Georaptor, vispirms ir jāinstalē SQL Developer. Pēc tā instalācijas, Georaptor instalējas kā papildus spraudnis PlugIn.

Georaptor spraudni var instalēt sekojoši: 1. Click menu item "Help" and "Check for update"2. Dialog "Check for Updates - Welcome"   Click on button "Next". 3.  Dialog "Check for Updates - Step 1 of 3: Source"      Add new Update center. Click on button "Add" and insert values:     

Name: GeoRaptor     Location: http://georaptor.sourceforge.net/install.xml

Click "Next" when new update center is added.4. Dialog "Check for Updates - Step 2 of 3: Updates"Select "GeoRaptor" and click button "Next".5. Dialog "Check for Updates - Summary"    Click button "Finish".6. After Project Raptor restart, GeoRaptor should be installed.

Page 17: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

17

Tabulas ģeometriju ievietošana GeoRaptor grafiskajā attēlojumā

Grafiskais attēlojums

Page 18: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

18

Norādītas visas trīs tabulas. Krāsas - Random

Krāsu norāde

Page 19: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

19

Krāsas izvēle

Modificētais (krāsu izmaiņa)attēlojums

Page 20: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

20

Vaicājuma veidošana

Meklēšanas vietas un apgabala izmēru norādīšana

Page 21: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

21

Vaicājuma izpildes iegūtais rezultāts

Page 22: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

22

Poligona izveidošdana (zīmēšana)View GeoRaptor Open Map

Page 23: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

23

Grafiskās datu bāzes datu vizualizācija izmantojot Java klasi JGeometry

MDSYS.SDO_GEOMETRY JGeometry

java.lang.Object   oracle.spatial.geometry.JGeometry

Datu bāzes sistēma

Datu bāze

Datu bāzes

vadības sistēma

SDO_GEOMETRY

Lietojums

JDBC interfeiss

JGeometry

Java2D(vizualizācija)

Page 24: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

24

Datu bāzes objektu transformēšana Java objektos

1. Vāji tipizētās noklusētās Java klases (weakly typed default Java class) Struct (Java) vai STRUCT (Oracle) izmantošana objektu transformēšanai. Šis variants ir efektīvāks un vienkāršāks.

2. Stipri tipizētas pašveidotās Java klases (strongly typed custom Java classe) izveidošana Oracle objektiem.

Literatūra

1. R. M. Menon. Expert Oracle JDBC Programming. Apress, 2005, 744. Lpp.

2.Kuassi Mensah. Oracle Database programming using Java and Web Services. Elsevier Digital Press publications, 2006.

Programmēšanas Java objekti

Relāciju-objektu datu bāzes objekti

Javas objekts

SQL objekts

JDBC SQLData interfeiss

Objekta tipu transformāciju apraksti

JDBC

Struct (Java)STRUCT (Oracle)

Page 25: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

Lietojums

IDE NetBeans 7.3.1

Datu bāzes sistēma

JDBC interfeiss

JDK 7

SQL Developer

DBVS

Grafikas datu bāze

Bibliotēkas

25

Grafikas datu bāzes lietojuma izveidošana izmantojot IDE rīku NetBeans

Page 26: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

26

Nepieciešamo papildbibliotēku piesaiste

1. JGeometry tipa objektu klase:oracle.spatial.geometry.JGeometryE:\app\Janis\product\11.2.0\dbhome_1\md\jlib\sdoapi.jar;

2. Oracle JDBC draivera klase:oracle.jdbc.driver.OracleDriverE:\app\Janis\product\11.2.0\dbhome_1\jdbc\lib\ojdbc6.jar;

Control Panel User Accounts and Family Safety User Accounts Change my environment variables

Desktop Power User Task Menu System Advanced System Settings Environment Variables Path Edit

Control panel System and Security System Advanced System Settings Advaced Environment variables

Page 27: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

27

DBVS Oracle draiveri

Divas vienāda nosaukuma klases

Page 28: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

28

Grafikas datu bāzes lietojuma izveidošana izmantojot IDE rīku NetBeans

Projekts Grafika Properties

Page 29: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

29

Grafisko datu vizualizēšanas programma

class dbc

Savienojuma ar datu bāzi objekta conn izveidošanas metode connect()

Grafisko datu (SDO_GEOMETRY) izgūšana no datu bāzes un transformācijaJGeometry tipa Javas objektos (metode getData())

Rezultātu JGeometry objektu kolekcijas saraksta iegūšanas metodes getList() izveidošana

class Vizualizacija

JGeometry objektu kolekcijas saraksta iegūšana (getList())

JGeometry objektu attēlošana

class GalvenaKlase

Jauna dbc klases objekta (dbcon) izveidošana

Savienojuma izveidošanas metodes connect() izsaukšna

Grafisko datu izgūšana no datu bāzes un transformācija (metodes getData() izsaukšana)

Grafisko datu kolekcijas saraksta iegūšana (metode getJList())

Datu vizualizācijas loga izveidošana un datu vizualizācija(metode Vizualizacija())

Page 30: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

30

Pievienošanās datu bāzei un grafisko datu izgūšanaKlases dbc izveidošana (fails: dbc.java)

create or replace JAVA source named "dbc" as// Nepieciešamo bibliotēku (pakešu) pievienošanaimport java.sql.*; //JDBC interfeisa programmu pakete (otra javax.sql)import java.util.ArrayList; import java.util.List; import oracle.core.lmx.CoreException; import oracle.spatial.geometry.JGeometry; import oracle.sql.STRUCT; // Klases dbc izveidošana, kura:// 1) izveido metodi connect() savienojuma ar datu bāzes sistēmu izveidošanai;// 2) izveido metodi getData() grafiskos datu (SDO_GEOMETRY) // izgūšanai no datu bāzes un to transformācijai JGeometry tipa // objektos;// 3) kolekciju tipa objektu izveidošana.public class dbc { public dbc() { }

// Savienojuma objekta conn izveidošanaprivate Connection conn; // Izveido metodi connect() savienojuma ar datu bāzes sistēmu izveidošanai.public void connect() { String URL = "jdbc:oracle:thin:@localhost:1521:BAZE1";String USER = "system"; String PASS = "Janis1946"; try { conn = DriverManager.getConnection(URL, USER, PASS); } catch (SQLException e) { e.printStackTrace(); } }

// Grafisko datu slāņu tabulu nosaukumu ierakstīšana masīvāprivate String[] tblArray = {"CELTNES", "IELAS", "KOKI" };

//List – interfeiss sakārtotam sarakstam ar norādītu tipu (<JGeometry>).// Rezultātu JGeometry objektu kolelkcijas saraksta (result) definēšanaprivate List<JGeometry> result = new ArrayList<JGeometry>(0); //Rezultātu JGeometry tipa objektu kolekcijas saraksta (result) iegūšanas metodes // izveidošanapublic List<JGeometry> getJList(){ return result; }

// Anotācija brīdinājuma ziņojuma izvades aizliegšanai@SuppressWarnings("deprecation")

Page 31: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

31

// Datu izgūšana un transformēšanapublic void getData() { for (int i = 0; i < tblArray.length; i++) { try { Statement stmt = conn.createStatement();String sql = "SELECT a.geometrija geom FROM "+ tblArray[i] + " a";ResultSet rs = stmt.executeQuery(sql);while (rs.next()) { oracle.sql.STRUCT st = (STRUCT) rs.getObject("geom"); JGeometry geom = JGeometry.load(st);result.add(geom); } } catch (SQLException e) { e.printStackTrace(); } } } }

Page 32: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

32

Grafisko datu vizualizācijas programma

import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Shape; import java.util.List; import javax.swing.JPanel; import oracle.spatial.geometry.JGeometry; import java.awt.geom.AffineTransform;

public class Vizualizacija extends JPanel { // Konstruktora metodepublic Vizualizacija (dbc dbcon) { this.dbcon = dbcon; }// Grafisko objektu (g2) attēlošanapublic void paintComponent(Graphics g) {Graphics2D g2 = (Graphics2D) g;// Koordināšu sistēmas transformācija.// Attēlojuma lauka sākuma punkta novirze uz punktu X = 0, Y = 500.AffineTransform tform = AffineTransform.getTranslateInstance(0, 500); // Attēlojumu mēroga izmaiņa (reizes). Y ass būs vērsta uz augšu.tform.scale(20, -20); // Var izmantot arī koordināšu sistēmu pagriešanu par notektu leņķi.// tform.rotate(Math.PI/2); // Pagriešana par 90 grādiem.// JGeometry objektu kolekcijas saraksta iegūšanaList<JGeometry> lst = dbcon.getJList(); // JGeometry objektu attēlošanafor(int i=0; i<=lst.size()-1; i++){ if(lst.get(i) != null){ Shape a = lst.get(i).createShape(tform); g2.draw(a); } } } private dbc dbcon; // Serializācijas versijas norāde, lai viena un tā pati versija tiktu// izmantota gan serializācijā, gan deserializācijā.private static final long serialVersionUID = 1L; }

Page 33: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

33

Galvenās klases GalvenaKlase definēšana (GalvenaKlase.java)

import java.util.List;import javax.swing.JFrame; import javax.swing.JPanel; import oracle.spatial.geometry.JGeometry; public class GalvenaKlase { // Galvenā metode (main), kura tiek izsaukta un viss process notiek.public final static void main(String[] args) { // Jauna dbc klases objekta (savienojums ar DB, vaicājums, izgūtie dati) izveidošanadbc dbcon = new dbc(); // Savienojuma metodes ar datu bāzi (klases dbc metode) izsaukšanadbcon.connect(); // Grafisko datu izgūšana no datu bāzes un transformācija dbcon.getData(); // Grafisko datu kolekcijas saraksta iegūšanaList<JGeometry> lst = dbcon.getJList();// Jauna JPanel klases attēlojuma loga Vizualizacija tipa loga izveidošanaJPanel panel = new Vizualizacija(dbcon); // Jauna Window loga (freima) izveidošanaJFrame frame = new JFrame("JavaGeometry"); // Top level container// Loga satura izvade freimāframe.setContentPane(panel); // Freima izmēru norādeframe.setSize(500, 500); // Freima attēlošanas atļaujaframe.setVisible(true); } }

JFrame – A frame is an instance of JFrame. Frame is a window that can have title, border, menu, buttons, text fields and several other components. A Swing application must have a frame to have the components added to it.

JPanel – A panel is an instance of JPanel. A frame can have more than one panels and each panel can have several components. You can also call them parts of Frame. Panels are useful for grouping components and placing them to appropriate locations in a frame.

Page 34: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

34

Grafikas datu bāzes lietojuma izveidošana izmantojot IDE rīku NetBeans

Page 35: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

35

import java.sql.*; import java.util.ArrayList; import java.util.List; import oracle.core.lmx.CoreException; import oracle.spatial.geometry.JGeometry; import oracle.sql.STRUCT; public class dbc { public dbc() { }private Connection conn; public void connect() { String URL = "jdbc:oracle:thin:@localhost:1521:BAZE";String USER = "system"; String PASS = "Janis1946"; try { conn = DriverManager.getConnection(URL, USER, PASS); } catch (SQLException e) { e.printStackTrace(); } }private String[] tblArray = {"CELTNES", "IELAS", "KOKI"};private List<JGeometry> result = new ArrayList<JGeometry>(0); public List<JGeometry> getJList(){return result;} //@SuppressWarnings("deprecation")  public void getData() { for (int i = 0; i < tblArray.length; i++) { try { Statement stmt = conn.createStatement();String sql = "SELECT a.geometrija geom FROM "+ tblArray[i] + " a";ResultSet rs = stmt.executeQuery(sql);while (rs.next()) { oracle.sql.STRUCT st = (STRUCT) rs.getObject("geom"); JGeometry geom = JGeometry.load(st);result.add(geom); } } catch (SQLException e) { e.printStackTrace(); } } } }

Page 36: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

36

import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Shape; import java.util.List; import javax.swing.JPanel; import oracle.spatial.geometry.JGeometry; import java.awt.geom.AffineTransform;public class Vizualizacija extends JPanel { public Vizualizacija (dbc dbcon) { this.dbcon = dbcon; }public void paintComponent(Graphics g) {Graphics2D g2 = (Graphics2D) g;AffineTransform tform = AffineTransform.getTranslateInstance(0, 500); tform.scale(20, -20); List<JGeometry> lst = dbcon.getJList(); for(int i=0; i<=lst.size()-1; i++){ if(lst.get(i) != null){ Shape a = lst.get(i).createShape(tform); g2.draw(a); } } } private dbc dbcon; private static final long serialVersionUID = 1L; }

Page 37: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

37

import java.util.List;import javax.swing.JFrame; import javax.swing.JPanel; import oracle.spatial.geometry.JGeometry; public class GalvenaKlase { public final static void main(String[] args) { dbc dbcon = new dbc(); dbcon.connect(); dbcon.getData(); List<JGeometry> lst = dbcon.getJList();JPanel panel = new Vizualizacija(dbcon); // Augšējā līmeņa konteinersJFrame frame = new JFrame("Grafikas datu bāze"); frame.setContentPane(panel); frame.setSize(500, 500); frame.setVisible(true); } }

Page 38: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

38

Page 39: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

39

Paskaidrojumi

The java.util.List interface is a subtype of the java.util.Collection interface. It represents an ordered list of objects, meaning you can access the elements of a List in a specific order, and by an index too. You can also add the same element more than once to a List. Being a Collection subtype all methods in the Collection interface are also available in the List interface. Since List is an interface you need to instantiate a concrete implementation of the interface in order to use it. You can choose between the following List implementations in the Java Collections API:

1) java.util.ArrayList2) java.util.LinkedList3) java.util.Vector4) java.util.Stack

Here are a few examples of how to create a List instance: List listA = new ArrayList();List listB = new LinkedList();List listC = new Vector();List listD = new Stack();

To add elements to a List you call its add() method. This method is inherited from the Collection interface. Here are a few examples: List listA = new ArrayList();listA.add("element 1");listA.add("element 2");listA.add("element 3");listA.add(0, "element 0");

The first three add() calls add a String instance to the end of the list. The last add() call adds a String at index 0, meaning at the beginning of the list. The order in which the elements are added to the List is stored, so you can access the elements in the same order. You can do so using either the get(int index) method, or via the Iterator returned by the iterator() method. Here is how: List listA = new ArrayList();listA.add("element 0");listA.add("element 1");listA.add("element 2");

//access via indexString element0 = listA.get(0);String element1 = listA.get(1);String element3 = listA.get(2);

//access via IteratorIterator iterator = listA.iterator();while(iterator.hasNext(){ String element = (String) iterator.next();}

//access via new for-loopfor(Object object : listA) { String element = (String) object;}

When iterating the list via its Iterator or via the for-loop (which also uses the Iterator behind the scene), the elements are iterated in the same sequence they are stored in the list.

Page 40: Y ass -    Web viewTelpas datu datu bāzes realizācijas piemērs. Y ass. SKOLABASEVIENISKALKI-SOS-KSKOKS1KOKS2IELA1IELA2IELA3MĀJAMĀJAMĀJA123 20. 18. 16. 14. 12. 10. 8. 6. 4. 2

40

You can remove elements in two ways: 1. remove(Object element)2. remove(int index)remove(Object element) removes that element in the list, if it is present. All subsequent elements in the list are then moved up in the list. Their index thus decreases by 1. remove(int index) removes the element at the given index. All subsequent elements in the list are then moved up in the list. Their index thus decreases by 1.

Generic ListsBy default you can put any Object into a List, but from Java 5, Java Generics makes it possible to limit the types of object you can insert into a List. Here is an example: List<MyObject> list = new ArrayList<MyObject>();

This List can now only have MyObject instances inserted into it. You can then access and iterate its elements without casting them. Here is how it looks: MyObject myObject = list.get(0);for(MyObject anObject : list){ //do someting to anObject... }

The docs for java.io.Serializable are probably about as good an explanation as you'll get:The serialization runtime associates with each serializable class a version number, called a serialVersionUID, which is used during deserialization to verify that the sender and receiver of a serialized object have loaded classes for that object that are compatible with respect to serialization. If the receiver has loaded a class for the object that has a different serialVersionUID than that of the corresponding sender's class, then deserialization will result in an InvalidClassException. A serializable class can declare its own serialVersionUID explicitly by declaring a field named "serialVersionUID" that must be static, final, and of type long:

ANY-ACCESS-MODIFIER static final long serialVersionUID = 42L;

If a serializable class does not explicitly declare a serialVersionUID, then the serialization runtime will calculate a default serialVersionUID value for that class based on various aspects of the class, as described in the Java(TM) Object Serialization Specification. However, it is strongly recommended that all serializable classes explicitly declare serialVersionUID values, since the default serialVersionUID computation is highly sensitive to class details that may vary depending on compiler implementations, and can thus result in unexpected InvalidClassExceptions during deserialization. Therefore, to guarantee a consistent serialVersionUID value across different java compiler implementations, a serializable class must declare an explicit serialVersionUID value. It is also strongly advised that explicit serialVersionUID declarations use the private modifier where possible, since such declarations apply only to the immediately declaring class--serialVersionUID fields are not useful as inherited members.