Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Main.java:
- import com.google.gson.Gson;
- import java.io.File;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.Statement;
- import spark.Spark;
- public class Main {
- public static void main(String[] args) throws Throwable {
- Connection connection = DriverManager.getConnection("jdbc:sqlite:testi.db");
- Statement statement = connection.createStatement();
- ResultSet resultSet = statement.executeQuery("SELECT 1");
- if (resultSet.next()) {
- System.out.println("Hei tietokantamaailma!");
- } else {
- System.out.println("Yhteyden muodostaminen epäonnistui.");
- }
- // ^ TÄHÄN ASTI TOIMII
- Database db = new Database("jdbc:sqlite:todot.db");
- TodoDao tehtavat = new TodoDao(db);
- System.out.println(tehtavat.findAll());
- }
- }
- TodoDao:
- import java.util.*;
- import java.sql.*;
- import java.sql.SQLException;
- import java.util.List;
- public class TodoDao implements Dao<Todo, Integer> {
- private Todo todo;
- private Integer id;
- private Database database;
- public TodoDao(Todo tehtava, Integer nro) {
- this.todo = tehtava;
- this.id = nro;
- }
- public TodoDao(Database database) {
- this.database = database;
- }
- @Override
- public Todo findOne(Integer key) throws SQLException {
- Connection conn = database.getConnection();
- PreparedStatement stmt = conn.prepareStatement("SELECT * FROM Todo WHERE id = ?");
- stmt.setInt(1, key);
- ResultSet rs = stmt.executeQuery();
- boolean hasOne = rs.next();
- if (!hasOne) {
- return null;
- }
- Todo t = new Todo(rs.getInt("id"), rs.getString("tehtava"),
- rs.getBoolean("tehty"));
- stmt.close();
- rs.close();
- conn.close();
- return t;
- }
- @Override
- public List<Todo> findAll() throws SQLException {
- ArrayList<Todo> lista = new ArrayList<>();
- // Otetaan yhteys tietokantaan
- Connection conn = database.getConnection();
- PreparedStatement statement = conn.prepareStatement("SELECT * FROM Todo");
- ResultSet resultSet = statement.executeQuery();
- // käydään tuloksena saadussa oliossa olevat rivit läpi -- next-komento hakee
- // aina seuraavan rivin, ja palauttaa true jos rivi löytyi
- while(resultSet.next()) {
- // haetaan nykyiseltä riviltä tiedot
- Integer id = resultSet.getInt("id");
- String tehtava = resultSet.getString("tehtava");
- Boolean tehty = resultSet.getBoolean("tehty");
- // Luodaan tiedoista uusi Asiakas-olio ja lisätään se listaan.
- lista.add(new Todo(id, tehtava, tehty));
- }
- // Suljetaan yhteys tietokantaan
- resultSet.close();
- statement.close();
- conn.close();
- return lista;
- }
- @Override
- public Todo saveOrUpdate(Todo object) throws SQLException {
- // jos asiakkaalla ei ole pääavainta, oletetaan, että asiakasta
- // ei ole vielä tallennettu tietokantaan ja tallennetaan asiakas
- if (object.id == null) {
- return save(object);
- } else {
- // muulloin päivitetään asiakas
- return update(object);
- }
- }
- @Override
- public void delete(Integer key) throws SQLException {
- throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
- }
- private Todo save(Todo object) throws SQLException {
- Connection conn = database.getConnection();
- PreparedStatement stmt = conn.prepareStatement("INSERT INTO Todo"
- + " (id, tehtava, tehty)"
- + " VALUES (?, ?, ?)");
- stmt.setInt(1, object.getId());
- stmt.setString(2, object.getTehtava());
- stmt.setBoolean(3, object.getTehty());
- stmt.executeUpdate();
- stmt.close();
- stmt = conn.prepareStatement("SELECT * FROM Todo"
- + " WHERE id = ? AND tehtava = ?");
- stmt.setInt(1, object.getId());
- stmt.setString(2, object.getTehtava());
- ResultSet rs = stmt.executeQuery();
- rs.next(); // vain 1 tulos
- Todo t = new Todo(rs.getInt("id"), rs.getString("tehtava"),
- rs.getBoolean("tehty"));
- stmt.close();
- rs.close();
- conn.close();
- return t;
- }
- private Todo update(Todo object) throws SQLException {
- Connection conn = database.getConnection();
- PreparedStatement stmt = conn.prepareStatement("UPDATE Todo SET"
- + "tehtava = ?, tehty = ? WHERE id = ?");
- stmt.setString(1, object.getTehtava());
- stmt.setBoolean(2, object.getTehty());
- stmt.setInt(3, object.getId());
- stmt.executeUpdate();
- stmt.close();
- conn.close();
- return object;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement