[[oktatas:programozas:java:java adatbázis:mariadb|< Mariadb]]
====== MariaDB org.mariadb.odbc csomag ======
* **Szerző:** Sallai András
* Copyright (c) 2024, Sallai András
* Szerkesztve: 2024
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]]
* Web: https://szit.hu
===== Bevezetés =====
Az adatok lekéréséhez általában java.sql csomagot használjuk. Használhatjuk az org.mariadb.odbc csomagot is. Valójában csak a Connection objektum megszerzésében van különbség.
A leírásban Properties osztályt is használom, de az független az org.mariadb.odbc csomag használatától, mivel annak használata ajánlott a java.sql csomaggal is. A ResultSet és az SQLException osztály csak java.sql csomagban áll rendelkezésre.
Dokumentáció:
* https://javadoc.io/doc/org.mariadb.jdbc/mariadb-java-client/latest/index.html
===== Konfiguráció =====
db.host = localhost
db.name = sargabt
db.user = sargabt
db.pass = titok
===== Modell =====
public class Employee {
int id;
String name;
String city;
double salary;
}
===== Kapcsolat =====
import java.sql.SQLException;
import java.util.Properties;
import org.mariadb.jdbc.Configuration;
import org.mariadb.jdbc.Connection;
import org.mariadb.jdbc.Driver;
public class Mariadb implements DataSource{
String user = "sargabt";
String pass = "titok";
String host;
String name;
String url;
public Mariadb(Properties pro) {
this.host = pro.getProperty("db.host");
this.name = pro.getProperty("db.name");
this.user = pro.getProperty("db.user");
this.pass = pro.getProperty("db.pass");
this.url = "jdbc:mariadb://" +
host + ":3306/" +
name + "?user=" +
user + "&password=" +
pass;
}
public Connection connect() {
Connection conn = null;
try {
conn = tryConnect();
} catch (SQLException e) {
System.err.println("Hiba! A kapcsolódás sikertelen!");
System.err.println(e.getMessage());
}
return conn;
}
public Connection tryConnect() throws SQLException {
Configuration conf = Configuration.parse(url);
Connection conn = Driver.connect(conf);
return conn;
}
}
===== Adatok lekérése =====
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import org.mariadb.jdbc.Connection;
import org.mariadb.jdbc.Statement;
public class DataService {
DataSource dataSource;
public DataService(DataSource dataSurce) {
this.dataSource = dataSurce;
}
public ArrayList getEmployees() {
ArrayList empList = null;
try {
empList = tryGetEmployees();
} catch (SQLException e) {
System.err.println("Hiba! A lekérdezés sikertelen!");
System.err.println(e.getMessage());
}
return empList;
}
public ArrayList tryGetEmployees() throws SQLException {
ArrayList empList = new ArrayList<>();
Connection conn = this.dataSource.connect();
String sql = "select * from Employees";
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
while(rs.next()) {
Employee emp = new Employee();
emp.id = rs.getInt("id");
emp.name = rs.getString("name");
emp.city = rs.getString("city");
emp.salary = rs.getDouble("salary");
empList.add(emp);
}
return empList;
}
}
===== Főprogram =====
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
public class Sarga {
public void start() {
Properties pro = loadConfig();
DataService ds = new DataService(new Mariadb(pro));
for(Employee emp : ds.getEmployees()) {
System.out.println(emp.name);
}
}
public Properties loadConfig() {
Properties pro = null;
try {
pro = tryLoadConfig();
} catch (Exception e) {
System.err.println(e.getMessage());
}
return pro;
}
public Properties tryLoadConfig()
throws FileNotFoundException, IOException {
Properties pro =new Properties();
pro.load(new FileInputStream("config.properties"));
pro.getProperty("Első");
return pro;
}
}
===== A belépési pont =====
public class App {
public static void main(String[] args) throws Exception {
new Sarga().start();
}
}