Создание для функции выборки данных из Базы Данных(Java)

169
20 ноября 2017, 17:44

Здравствуйте, пишу программу, которая работает с БД, но возникла проблема с написание хорошей функции для выборке данных из БД, чтобы она могло хорошо работать как с запросами на выборку одно поля или нескольких, на выборку одного столбца или нескольких... Просто не хочется писать для каждого запроса отдельную ф-ию. Если кто-то еще добавит как для INSERT и UPDATE это реализовать, то будет вообще замечательно! Вот мой класс, в котором я хотел написать ф-ию:

public class FirebirdDB {
private final static Logger log = LogManager.getLogger(FirebirdDB.class);
private static FirebirdDB firebirdDB = new FirebirdDB();
private Connection connection;
private Properties connectionInfo = new Properties();;
private PreparedStatement pstmt;
private Statement stmt;
private ResultSet result;
public boolean connect(){
    String urlDB = "jdbc:firebirdsql:localhost:C:\\Users\\User\\Desktop\\TestingSystem\\src\\main\\resources\\DB.FDB";
    connectionInfo.put("user", "SYSDBA");
    connectionInfo.put("password", "masterkey");
    connectionInfo.put("charSet", "Cp1251");
    try {
        Class.forName("org.firebirdsql.jdbc.FirebirdDriver");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
    try {
        connection = null;
        connection = DriverManager.getConnection(urlDB, connectionInfo);
        if(connection == null) {
            return false;
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return true;
}
public void disconnect(){
    try {
        connection.close();
    } catch (SQLException e) {
        log.error("Error of closing database.");
    }
}

public void execInsert(String query){
     ...
}
public ArrayList<String> execSelect(String query){
     ...
}

public static FirebirdDB getInstance() {
    return firebirdDB;
}

private FirebirdDB(){
}

}

Answer 1

на выборку одного столбца или нескольких

Берите все столбцы засовывайте в объект(Entity) и из него берите тот столбец который нужен.

с запросами на выборку одно поля или нескольких

Кто и как будет решать сколько строк брать? По фильтру или по лимиту?

Не стоит очень сильно усложнять запрос к БД. Попытка сделать 1 запрос на 10-100 вариантов select, может сделать его сложным до невозможности и добавлять новый функционал будет очень сложно. Лучше на каждый уникальный запрос напишите отдельный запрос. Если запросы между собой похоже и их можно сгруппировать и при этом оставить код понятным - группируйте.

А вообще используйте какой-нибудь ORM

READ ALSO
Шифрование методом AES

Шифрование методом AES

Здравствуйте, есть такой вот код, по идее он должен зашифровать слово "hello" и здесь же дешифровать, вывести в text view, но при запуске приложение...

171
Виженер Java Ошибка

Виженер Java Ошибка

Пытаюсь сделать шифр Виженера, но в коде:

169
Как расположить Alert в углу экрана

Как расположить Alert в углу экрана

хочу чтобы было вот так, но не получается

171
Работа с интерфейсом Map

Работа с интерфейсом Map

Добрый день, подскажите пожалуйста, никак не могу справиться с задачкойЕсть HashMap с данными,

176