Felhasználói eszközök

Eszközök a webhelyen


oktatas:programozas:java:java_adatbazis:mariadb:org.mariadb.odbc_csomag

< Mariadb

MariaDB org.mariadb.odbc csomag

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ó:

Konfiguráció

config.properties
db.host = localhost
db.name = sargabt
db.user = sargabt
db.pass = titok

Modell

Employee.java
public class Employee {
    int id;
    String name;
    String city;
    double salary;
}

Kapcsolat

Mariadb.java
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

DataService.java
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<Employee> getEmployees() {
        ArrayList<Employee> 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<Employee> tryGetEmployees() throws SQLException {
        ArrayList<Employee> 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

Sarga.java
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

App.java
public class App {
    public static void main(String[] args) throws Exception {
        new Sarga().start();        
    }
}
oktatas/programozas/java/java_adatbazis/mariadb/org.mariadb.odbc_csomag.txt · Utolsó módosítás: 2024/02/06 22:52 szerkesztette: admin