JDBC - Как проверить есть ли в БД (MySQL) введённое пользователем слово?
На данном этапе было установлено соединение с БД MySQL
Далее пользователь вводит слово и мы должны проерить есть ли данное слово в БД (структуру таблицы прикреплю)
Название бд: mybase
Таблица: new_table
Данные для входа:
user - root
password - 1234
Колонки таблицы: int id, String word, int tonality
СУТЬ: Еcли ввёденное пользователем слово есть в таблице в колонке word, нужно вывести его и соответствующее ему число tonality
Прикрепляю код подключения к БД
import java.sql.*;
public class Main {
private static final String URL = "jdbc:mysql://localhost:3306/mybase";
private static final String USERNAME = "root";
private static final String PASSWORD = "1234";
private static Object ResultSet;
public static void main(String[] args) {
Connection connection;
try {
Driver driver = new com.mysql.cj.jdbc.Driver();
DriverManager.registerDriver(driver);
connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
if (!connection.isClosed()) {
System.out.println("Соединение с БД установлено");
}
connection.close();
} catch (SQLException e) {
System.out.println("Соединение с БД не установлено");
}
Connection myConn=null;
PreparedStatement myStmt = null;
Object myRs = null;
ResultSet = myRs;
try{
myConn = DriverManager.getConnection("dbc:mysql://localhost:3306/mybase");
myStmt = myConn.prepareStatement("select * from new_table where id=1");
}
}
Ответы (1 шт):
Попробуйте так:
public static void main(String[] args) {
Driver driver = new com.mysql.cj.jdbc.Driver();
DriverManager.registerDriver(driver);
try (Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
PreparedStatement myStmt = myConn.prepareStatement("select * from new_table where id=?")){
myStmt.setInt(1, 1);
try (ResultSet resultSet = preparedStatement.executeQuery()){
//в этом блоке можно обрабатывать resultSet так, как Вам нужно
}
}catch (SQLException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
Не гарантирую, что сразу сработает - сложновато по памяти в блокноте писать) И для получения соединения я бы написал отдельный класс, который и создаёт connection, и проверяет, открыто ли соединение, перед тем как вернуть объект. Но это уже детали. Обращаю внимание на запрос: "select * from new_table where id=?" и подстановку значения: myStmt.setInt(1, 1);
первая единица означает порядковый номер параметра в запросе, куда нужно подставить значение, вторая - в данном случае это само подставляемое значение, но его можно получать из переменной или какого-либо метода.

