Databases Flashcards

1
Q

Hoe is een url voor een database in java opgebouwd?

A
  • de url begint altijd met jdbc.
  • daarna het type database. kan mysql, postgres, mongodb etc zijn.
  • en daarna het adres van de database

dus bijvoorbeeld:

jdbc:mysql://localhost:3306/mydatabase

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Hoe stellen we een connectie met een database op?

A

Met de DriverManager.getConnection method aan te trappen en toe te wijzen aan een Connection object. Dit vraagt om een url, user en pass. Bijv:

String url = "jdbc:mysql://localhost:3306/mydatabase";
Connection conn = 
    Drivermanager.getConnection(
        url, "username", "myPass"
    );
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Hoe close ik een connection met een database?

A

1) Connection in een try with resources blok zetten (is auto closeable)
2) mijnConnection.close();

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wat is in databases het verschil tussen PreparedStatement en CallableStatement?

A

PreparedStatement voert een query uit, terwijl CallableStatement een stored procedure aantrapt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Wat zijn de stappen om data uit te lezen uit een database?

A

1) Maak een Connection object (idealiter in een try-with-resources blok)
2) Maak een PreparedStatement waarin je een query uitvoert.
3) Maak een ResultSet dmv statement.executeQuery();
4) itereer over de resultset met een while loop.

String url = "jdbc:mysql://localhost:3306/mydatabase";
try (Connection conn = DriverManager.getConnection(url, "user", "pass") {
    String sql = "select name from users"
    PreparedStatement statement = conn.prepareStatement(sql);
    Resultset rs = statement.excecuteQuery();
		
    while (rs.next()) {
        // print row uit
    }
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Stel, we hebben deze code:

String url = "jdbc:mysql://localhost:3306/mydatabase";
try (Connection conn = DriverManager.getConnection(url, "user", "pass") {
    String sql = "insert into users values (12, 'Mart')";
    PreparedStatement statement = conn.prepareStatement(sql);
    // jouw code hier
}

Wat moet ik doen om de insert uit te voeren?

A

excecuteUpdate gebruiken:

int result = statement.excecuteUpdate();

while (result > 0) {
    System.out.println("Rows toegevoegd")
}

dit gebruiken we ook ook onder update en delete.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Stel, we hebben een PreparedStatement
~~~
PreparedStatement statement = conn.prepareStatement(sql);
~~~
we kunnen op statement een paar methods aantrappen om het statement uit te voeren. Onder andere executeQuery, executeUpdate en execute.

Wanneer gebruiken we voor databases excecuteQuery en wanneer executeUpdate? En wat doet .execute();?

A

excecuteQuery voor het uitlezen (R) van data. excecuteUpdate voor het wegschrijven(C, U, D) van data. .excecute() wordt gebruikt voor meerdere statements waarbij we niet weten of dit om een read, write, of delete gaat.

execute returnt een boolean
execureQuery returnt een ResultSet
executeUpdate returnt een int (het aantal aangepaste rows)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Hoe kunnen we in een PreparedStatement parameters van de url meegeven?

A
String sql = "insert into users (name, age) values (?, ?)";
PreparedStatement statement = conn.prepareStatement(sql);
statement.setString(1, "Mart");
statement.setInt(2, 38);

Denk eraan dat dit one based en niet zero index based is!

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Stel, we hebben deze code:

String sql = "insert into users (name, age) values (?, ?)";
PreparedStatement statement = conn.prepareStatement(sql);
statement.setString(1, "Mart");
statement.setInt(2, 38);
statement.executeUpdate();
statement.setString(1, "Henk");
statement.executeUpdate();

wat is de inhoud van de 2 rows?

A

row 1 heeft als inhoud:
{ name: "Mart", age: 38 }

row 2 heeft als inhoud:
{ name: "Henk", age: 38 }

Er wordt met hetzelfde object gewerkt, en tenzij we de value overschrijven is de age van 38 nog in tact voor de volgende row.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Stel, we hebben deze code:

String sql = "insert into users (name, age) values (?, ?)";
PreparedStatement statement = conn.prepareStatement(sql);
statement.setString(1, "Mart");
statement.executeUpdate();

wat is de inhoud van de row?

A

Niets. We missen een parameter en dit zal een SQLException geven.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Stel, we hebben deze code:

String sql = "insert into users (name) values (?)";
PreparedStatement statement = conn.prepareStatement(sql);
statement.setString(1, "Mart");
statement.setString(2, 38);
statement.executeUpdate();

wat is de inhoud van de row?

A

Niets. We geven een parameter te veel op en krijgen dus een SQLException

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q
A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly