Avatar billede mlunde Nybegynder
30. november 2008 - 11:30 Der er 7 kommentarer og
1 løsning

SQL i Java

Hej allesammen.

Jeg har tidligere skrevet herinde ang. mit SQL-script.
Jeg er dog nødt til at bede om hjælp endnu en gang.
Problemet ligger i, at jeg dette semester læser i USA og har fået et fag, der har med databaser at gøre. Min lærer har lige pludselig en kæmpe forventning om, at vi på forhånd har lært en masse sprog; såsom Java, C#, ASP osv osv. Disse var dog ikke kravene til at få faget, så derfor må jeg høre jer herinde om I kan hjælpe, da min lærer ikke giver noget hjælp rigtigt.

Jeg har brug for hjælp med at lave en 'hjemmeside', hvorfra jeg kan indsætte SQL-koder, der dermed hiver de ønskede tabeller frem.

Er der nogle der virkelig gerne vil hjælpe mig med dette?


Mit script er som flg.:

Drop table actors;
Drop table movies;
Drop table awards;
Drop table roles;

ALTER SESSION set NLS_DATE_FORMAT = 'DD-MON-YY';
ALTER SESSION set NLS_DATE_LANGUAGE = 'American';

Create table actors(ActorID varchar2(3) constraint pk_actorid primary key, Fname char(50), LName char(50), Gender char(6), Birthdate date, PlaceOfBirth char(50));

Insert into actors values('1', 'Eddie', 'Murphy', 'Male', '05-MAR-65', 'New York');
Insert into actors values('2', 'Charlie', 'Sheen', 'Male', '07-NOV-71', 'Boston');
insert into actors values('3', 'Nicolas', 'Cage', 'Male', '09-DEC-67', 'Dallas');
insert into actors values('4', 'Meryl', 'Streep', 'Female', '05-MAY-64', 'Chicago');
insert into actors values('5', 'Nicole', 'Kidman', 'Female', '07-APR-59', 'Los Angeles');
insert into actors values('6', 'Russell', 'Crowe', 'Male', '18-DEC-63', 'Seattle');
insert into actors values('7', 'Harrison', 'Ford', 'Male', '11-OCT-54', 'Washington');
insert into actors values('8', 'Keanu', 'Reeves', 'Male', '01-FEB-71', 'New Jersey');
insert into actors values('9', 'Cameron', 'Diaz', 'Female', '06-MAY-66', 'Miami');
insert into actors values('10', 'Julia', 'Roberts', 'Female', '06-JAN-58', 'Houston');
insert into actors values('11', 'Leonardo', 'DiCaprio', 'Male', '10-APR-72', 'San Antonio');
insert into actors values('12', 'Will', 'Ferrell', 'Male', '02-JUL-73', 'Detroit');
insert into actors values('13', 'Will', 'Smith', 'Male', '17-SEP-69', 'Los Angeles');
insert into actors values('14', 'Christian', 'Bale', 'Male', '08-NOV-71', 'Milwaukee');
insert into actors values('15', 'Kevin', 'Costner', 'Male', '07-SEP-57', 'Atlanta');
insert into actors values('16', 'Morgan', 'Freeman', 'Male', '06-JUL-52', 'Sacramento');
insert into actors values('17', 'Angelina', 'Jolie', 'Female', '09-AUG-75', 'Charlotte');
insert into actors values('18', 'Brad', 'Pitt', 'Male', '30-AUG-68', 'Minnesota');
insert into actors values('19', 'Jim', 'Carrey', 'Male', '02-NOV-65', 'Boston');
insert into actors values('20', 'Jodie', 'Foster', 'Female', '03-MAY-66', 'Philadelphia');

create table Movies(MovieID varchar2(3) constraint pk_movieid primary key, MovieName char(50), Genre char(50), ReleaseYear varchar2(4), RunningLength varchar2(4), MPAArating char(10));

insert into Movies values(1, 'The Nutty Professor', 'Comedy', '1996', '117', 'G');
insert into Movies values(2, 'Nottingham', 'Action', '2008', '136', 'PG-13');
insert into Movies values(3, 'The Cable Guy', 'Comedy', '1998', '132', 'PG');
insert into Movies values(4, 'Ace Ventura', 'Comedy', '1996', '116', 'G');
insert into Movies values(5, 'Conair', 'Action', '1999', '115', 'PG-13');
insert into Movies values(6, 'Titanic', 'Drama', '1997', '196', 'PG-13');
insert into Movies values(7, 'Indiana Jones and the last Crusade', 'Action', '1989', '134', 'PG-13');
insert into Movies values(8, 'Air Force One', 'Action', '1997', '122', 'PG-13');
insert into Movies values(9, 'Seven years in Tibet', 'Drama', '1998', '156', 'G');
insert into Movies values(10, 'Semipro', 'Comedy', '2007', '106', 'G');

create table Roles(RoleID varchar2(3) constraint pk_roleid primary key, Role char(50), MovieID varchar2(3), ActorID varchar2(3));

insert into Roles values('1', 'Sherman Klump', '1', '1');
insert into Roles values('2', 'Papa Klump', '1', '1');
insert into Roles values('3', 'Mama Klump', '1', '1');
insert into Roles values('4', 'Robin Hood', '2', '6');
insert into Roles values('5', 'Sheriff of Nottingham', '2', '6');
insert into Roles values('6', 'Cable Guy', '3', '19');
insert into Roles values('7', 'Cameron Poe', '5', '3');
insert into Roles values('8', 'Jack Dawsen', '6', '11');
insert into Roles values('9', 'Indiana Jones', '7', '7');
insert into Roles values('10', 'President James Marshall', '8', '7');
insert into Roles values('11', 'Heinrich Harrer', '9', '18');
insert into Roles values('12', 'Jackie Moon', '10', '12');


CREATE TABLE AWARDS (
AWARDNO VARCHAR2(4) CONSTRAINT PK_AWARDS_AWARDNO PRIMARY KEY,
ANAME VARCHAR(30),
AWARDDATE DATE,
AWARDTYPE VARCHAR (30),
MOVIE VARCHAR(50),
ACTOR VARCHAR (50));
INSERT INTO AWARDS VALUES
(1000, 'OSCAR', '04-NOV-97', 'BEST LEADING ROLE', 'Air Force One', 'Harrison Ford');
INSERT INTO AWARDS VALUES
(1001, 'OSCAR', '04-NOV-97', 'BEST SCREENPLAY', 'Titanic', 'James Cameron');
INSERT INTO AWARDS VALUES
(1002, 'MTV MOVIE AWARD', '05-DEC-08', 'BEST LEADING ROLE', 'Titanic', 'Leonardo Dicaprio');
INSERT INTO AWARDS VALUES
(1003,'EMMY', '05-MAY-96', 'BEST COMEDY', 'Ace Ventura', 'Jim Carrey');

Commit;
Avatar billede arne_v Ekspert
30. november 2008 - 15:02 #1
Og hvad er spørgsmålet ?

Skal du køre ovenstående i Java ?
Avatar billede mlunde Nybegynder
30. november 2008 - 20:30 #2
Jeg har brug for hjælp med at lave en 'hjemmeside', hvorfra jeg kan indsætte SQL-koder, der dermed hiver de ønskede tabeller frem.
Så ja, kunne køre kommandoer i Java, med en interface og det hele.
fx. Select * from movies;
Avatar billede tjens Nybegynder
30. november 2008 - 22:44 #3
Vi bliver lidt forvirrede, når du skriver 'hjemmeside' og 'java' i samme sætning.

En hjemmeside skrives i HTML og får lidt funktionalitet i brugerfladen via javascript.
Men dette foregår på klientPCen i browseren.

Normalt vil en 'hjemmesiden' kalde et script på en webserver, for at få adgang til databaser. Men de mest udbredte sprog/teknologier på webserver er PHP og ASP.

Der findes også java, i form af JSP, men det er ikke helt så udbredt.

Hvis du ikke har en webserver indblandet, kan du evt. skrive en HTML-applikation, hvor der laves databasekald direkte på klienten fra VBscript.
Så skal dit program ende på .hta  og kan kun køre på Microsoft Windows klienter.

Kan du beskrive lidt nærmere, hvilke af ovenstående scenarier, der eventuelt passer til din situation?
Avatar billede mlunde Nybegynder
30. november 2008 - 23:31 #4
Jeg har kigget lidt på og PHP er bestemt en mulighed.
Kan vi ændre det til det i stedet som spørgsmål?
Så skulle det vist også være nemmere at lave som en 'side'.

Forestil jer en side, der har et SQL-script det kan hente fra, hvis man skriver kommandoer ind i et tekstfelt på siden.
Avatar billede tjens Nybegynder
01. december 2008 - 07:55 #5
Ja, det er nok en forkert kategori du har oprettet spørgsmålet under.

Derudover er der et problem/en hackermetode der hedder SQL injection:
Her laver du en side som har til formål at lave SQL. D.v.s. at andre kan slette dine data, når de har lyst, bare de har adgang til din PHP-side.

Derfor HUSK AT LÆGGE SIDEN PÅ ET PRIVAT PASSWORDBESKYTTET STED.

Her er et PHP-script, som kan modtage en SQL kommando, og udføre den og fremvise resultatet. Den kan du bygge videre på.

<?php // FILL THESE IN WITH YOUR SERVER'S DETAILS
$mysqlhost = 'localhost';
$mysqlusr  = '******';
$mysqlpass = '*****';

mysql_connect($mysqlhost,$mysqlusr,$mysqlpass);
?>
<html>
<head>
<title>MySQL Command Line</title>
</head>
<body onLoad="document.forms[0].elements['query'].focus()">
<?php
$submitquery = $_POST['submitquery'];
$query = $_POST['query'];
$db = $_POST['db'];
if ($submitquery)
{ if (get_magic_quotes_gpc()) $query = stripslashes($query);
  echo('<p><b>Query:</b><br />'.nl2br($query).'</p>');
  $result = mysql_db_query($db,$query);
  if ($result)
  { if (@mysql_num_rows($result))
    { ?>
      <p><b>Result Set:</b></p>
      <table border="1" cellpadding="3"> <thead>
      <tr>
        <?php
          for ( $i=0; $i<mysql_num_fields($result); $i++ )
          {
            echo('<th>'.mysql_field_name($result,$i).'</th>');
          } ?>
      </tr> </thead>
      <tbody>
        <?php
          while ( $row = mysql_fetch_row($result) )
          {
            echo('<tr>');
            for ( $i=0; $i<mysql_num_fields($result); $i++ )
            {
              echo('<td>'.$row[$i].'</td>');
            }
            echo('</tr>');
          } ?>
      </tbody>
    </table>
    <?php
    } else {
      echo('<p><b>Query OK:</b> '.mysql_affected_rows().' rows affected.</p>');
    }
  } else {
    echo('<p><b>Query Failed:</b> '.mysql_error().'</p>');
  }
  echo('<hr />');
} ?>

<form action="<?=$PHP_SELF?>" method="POST">
<p>Target Database: <select name="db">
<?php
  $dbs = mysql_list_dbs();
  for ( $i=0; $i<mysql_num_rows($dbs); $i++ )
  {
    $dbname = mysql_db_name($dbs,$i);
    if ($dbname == $db) echo("<option selected>$dbname</option>");
    else echo("<option>$dbname</option>");
  }
?>
</select> </p>
<p>SQL Query:<br />
<textarea onFocus="this.select()" cols="60" rows="5" name="query"><?=htmlspecialchars($query)?></textarea> </p>
<p><input type="submit" name="submitquery" value="Submit Query (Alt-S)" accesskey="S" />
</p> </form>
</body>
</html>
Avatar billede mlunde Nybegynder
01. december 2008 - 09:12 #6
Det er i Oracle jeg har brugt SQL hele vejen. Det bør jeg måske nævne.
Kan du specificere lidt nærmere, hvad jeg skal fylde ind de forskellige steder?
Jeg har ordnet login-oplysninger.
Avatar billede mlunde Nybegynder
01. december 2008 - 10:02 #7
Jeg kan fortælle at min script hedder apples.sql
Jeg har brug for så meget hjælp som muligt til dette, da opgaven blev pludseligt stillet, så jeg har ikke meget tid til at sætte mig ind i det.
Jeg har nemlig også andre eksamener :s

Så jeg sætter virkelig pris på al den hjælp jeg kan få
Avatar billede tjens Nybegynder
01. december 2008 - 10:23 #8
Jeg kan ikke hjælpe med noget Oracle-specifikt.

Men en søgning på nettet på "php oracle" giver tilsyneladende gode links til Cookbooks med videre.

Du bliver nok nødt til at forsøge selv, og så oprette et nyt spørgsmål, når du går i stå med et konkret problem.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester