Есть ли способ показать всю базу данных сначала на странице поиска (postgres)? - PullRequest
0 голосов
/ 22 апреля 2020

Я написал класс для поиска в базе данных по Wildflyusing postgresql, и я пишу в Red Hat Core Studio. Это работает, но теперь я хотел бы, чтобы он показывал всю базу данных уже, когда захожу на страницу поиска. Как если бы я нажал кнопку «Поиск» с пустыми полями. С добавленным текстом в полях поиска вы можете сузить поиск. Также существует ли более безопасный (менее взломанный) способ поиска, чем SELECT DISTINCT * MYDATABASE (WHERE _____ LIKE _____)? Сейчас я работаю над базой данных publi c, но я хотел бы также написать программы для частных баз данных.

Например: MYDATABASE включает элементы:

Идентификационный код LatinName

1 CUL Culicoides spp

2 COL Coleophora

3 APH Aphidoiea

4 PHF Phoridae

5 COLD Coldeatum

Когда я приду на странице поиска я вижу все элементы. Если я пишу CUL в коде, я получаю только один результат. Если я пишу COLD, я получаю два результата

Я все еще довольно новичок в программировании.

Код:

public void searchButton() {
ResultSet ps = null;
        PreparedStatement pst = null;
        Connection con = getConnection();
        int parameters = 0;
String srm = "SELECT DISTINCT * FROM MYDATABASE";
        if( getCode() != null && !"".equals(getCode()) ) 
            parameters ++;
if( getLatinName() != null && !"".equals(getLatinName()) ) 
            parametri ++;
if(parametri >0) {
            srm = srm + " WHERE ";
            if( getCode() != null && !"".equals(getCode()) ) {
                parameters --;
                srm = srm +"(code LIKE '%" + getCode() + "%' OR code LIKE '" + getCode() + "%')";
}
            if( getCode() != null && !"".equals(getCode()) && getLatinName() != null && !"".equals(getLatinName()) ) srm = srm + " AND ";
            if( getLatinName() != null && !"".equals(getLatinName()) ) {
                parameters --;
                srm = srm + "latin_name LIKE ('%" + getLatinName() + "%' or '" + getLatinName() + "%')";
}
        }
String stm=srm.toUpperCase();
try {
            pst = con.prepareStatement(srm);
            pst.execute();
            ps = pst.getResultSet();

            while(ps.next()) {
                Item thing = new Item();
                thing.setId(ps.getInt(1));
                thing.setCode(ps.getString(4));
                thing.setLatinName(ps.getString(2));        
                table.add(thing);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...