[[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(); } }