Я написал класс для поиска в базе данных по 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();
}
}
Если я забыл что-то важное, пожалуйста, дайте мне знать, так что я могу добавить это.