JDBC (Java DataBase Connectivity) to interfejs pozwalający na łączenia się z bazą danych. Wykorzystuje takie klasy jak Statement i PreparedStatement.
Hibernate to framework który implementuje mapowanie obiektowo-relacyjne w Javie. Czyli pozwala na automatyczne mapowanie obiektów javy (Encje) na tabele relacyjne. Hibernate daje możliwość pracy na tych tabelach w sposób obiektowy, jednak wszystkie operacje związane z bazą danych wykonuje z wykorzystaniem interfejsu JDBC albo JTA.
- Stworzenie klasy dodającej wiersze za pomocą klasy PreparedStatement
- Stworzenie klasy czytającej wiersze za pomocą klasy Statement
- Stworzenie klasy kasującej wiersze za pomocą klasy PreparedStatement
✅ Klasa testująca dodawanie wiersza za pomocą klasy PreparedStatement
package myhibernate.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class InsertPrepareStatementApp {
static final String DRIVER_CLASS = "com.mysql.jdbc.Driver";
static final String URL = "jdbc:mysql://localhost:3306/bazatestowa2";
static final String USERNAME = "newuser";
static final String PASSWORD = "123";
public static void main(String[] args) {
Connection conn = null;
PreparedStatement pstmt = null;
try {
Class.forName(DRIVER_CLASS);
conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
String insert = "INSERT INTO car(car_id, brand) VALUES(14, ?)";
pstmt = conn.prepareStatement(insert);
pstmt.setString(1, "Mercedes");
pstmt.execute();
System.out.println("end");
} catch (SQLException ex) {
ex.printStackTrace();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
} catch (SQLException ex) { }
try {
if (conn != null) {
conn.close();
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
}
✅ Klasa testująca czytanie wierszy za pomocą klasy Statement
package myhibernate.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ReadStatementApp {
static final String DRIVER_CLASS = "com.mysql.jdbc.Driver";
static final String URL = "jdbc:mysql://localhost:3306/bazatestowa2";
static final String USERNAME = "newuser";
static final String PASSWORD = "123";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try {
Class.forName(DRIVER_CLASS);
conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
stmt = conn.createStatement();
String sql = "SELECT car_id, brand, owner_id FROM car";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
int carId = rs.getInt("car_id");
String brand = rs.getString("brand");
int ownerId = rs.getInt("owner_id");
System.out.println("carId: " + carId + " brand: " + brand + " ownerId: " + ownerId);
}
rs.close();
} catch (SQLException ex) {
ex.printStackTrace();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
if (stmt != null) {
stmt.close();
}
} catch (SQLException ex) { }
try {
if (conn != null) {
conn.close();
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
}
❗ Wynik działania w konsoli:
✅ Klasa testująca kasowanie wierszy za pomocą klasy PreparedStatement
package myhibernate.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class DeletePrepareStatementApp {
static final String DRIVER_CLASS = "com.mysql.jdbc.Driver";
static final String URL = "jdbc:mysql://localhost:3306/bazatestowa2";
static final String USERNAME = "newuser";
static final String PASSWORD = "123";
public static void main(String[] args) {
Connection conn = null;
PreparedStatement pstmt = null;
try {
Class.forName(DRIVER_CLASS);
conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
String delete = "DELETE FROM car WHERE owner_id is null";
pstmt = conn.prepareStatement(delete);
int row = pstmt.executeUpdate();
System.out.println("liczba wierszy skasowanych: " + row);
} catch (SQLException ex) {
ex.printStackTrace();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
} catch (SQLException ex) { }
try {
if (conn != null) {
conn.close();
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
}
❗ Wynik działania w konsoli:
Brak komentarzy:
Prześlij komentarz