Здравствуйте, пишу программу, которая работает с БД, но возникла проблема с написание хорошей функции для выборке данных из БД, чтобы она могло хорошо работать как с запросами на выборку одно поля или нескольких, на выборку одного столбца или нескольких... Просто не хочется писать для каждого запроса отдельную ф-ию. Если кто-то еще добавит как для 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(){
}
}
на выборку одного столбца или нескольких
Берите все столбцы засовывайте в объект(Entity) и из него берите тот столбец который нужен.
с запросами на выборку одно поля или нескольких
Кто и как будет решать сколько строк брать? По фильтру или по лимиту?
Не стоит очень сильно усложнять запрос к БД. Попытка сделать 1 запрос на 10-100 вариантов select, может сделать его сложным до невозможности и добавлять новый функционал будет очень сложно. Лучше на каждый уникальный запрос напишите отдельный запрос. Если запросы между собой похоже и их можно сгруппировать и при этом оставить код понятным - группируйте.
А вообще используйте какой-нибудь ORM
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Здравствуйте, есть такой вот код, по идее он должен зашифровать слово "hello" и здесь же дешифровать, вывести в text view, но при запуске приложение...
Добрый день, подскажите пожалуйста, никак не могу справиться с задачкойЕсть HashMap с данными,