Многие люди все еще блуждают по Интернету в поисках правильного способа инициировать подключение к MySQL в своем Java-проекте. Будучи новичком, я сам часами рылся в Интернете в поисках метода работы. Итак, вот что я нашел, и до сих пор это работало без проблем. Если есть проблемы, не стесняйтесь комментировать ниже.
Я собираюсь использовать сервер Wamp и NetBeans для этого проекта.
Прежде чем начать, откройте сервер wamp и запустите localhost. После этого введите “localhost/phpmyadmin” в адресной строке вашего веб-браузера, и откроется домашняя страница phpmyadmin.
Для этого мы собираемся использовать root-логин. Как вы уже знаете, имя пользователя – root, и по умолчанию пароль для пользователя root не требуется. И нажмите кнопку “Перейти”. Откроется страница базы данных.
Хорошо, теперь вам нужно создать базу данных и таблицу внутри базы данных для подключения к классу Java. Для этого перейдите на вкладку SQL на странице Базы данных, и вы увидите терминал для SQL-запросов.
В моем случае я собираюсь создать базу данных с именем Customer и таблицу с именем details. И у меня будут c_name, phone_no и адрес в виде столбцов таблицы.
Поэтому я выполню этот запрос для создания базы данных. "СОЗДАТЬ базу ДАННЫХ клиента"
Введите это в терминале и нажмите Перейти
А затем нажмите на созданную вами базу данных в меню слева и снова перейдите на вкладку SQL.
Выполните следующий запрос. (без кавычек)
"CREATE TABLE details( c_name TEXT, #this field is a text field phone_no INT(10),#this is a Integer field and limits user input to 10 digits address TEXT #this field is a text field ) "
Это создаст таблицу, и теперь мы закончили с базой данных.
Откройте Netbeans и начните новый проект. Свой проект я назову “заказчик”. Создайте форму JFrame и разработайте интерфейс с 3 метками и 2 полями JText для ввода пользователем и кнопкой JButton для отправки данных. (Я не собираюсь объяснять проектирование интерфейса)
Вот мой интерфейс и имена переменных.
Для того чтобы инициировать подключение к MySQL, вам необходим драйвер JDBC.(Драйвер подключения к базе данных Java) Поскольку мы используем MySQL, сначала нам нужно загрузить и установить драйвер.
Перейдите по этому URL-адресу из своего веб-браузера.
Перейдите по этому URL-адресу из своего веб-браузера.
Скачайте “Независимый от платформы ZIP-архив”. Как только он загрузится, извлеките ZIP-файл в папку.
Снова перейдите в NetBeans. В левом меню вы можете увидеть название вашего проекта. Подобный этому.
Щелкните правой кнопкой мыши на названии проекта и выберите пункт Свойства. В окне свойств нажмите на Библиотеки. Затем нажмите на кнопку “Добавить банку/папку”, которую вы можете найти справа от себя.
Перейдите в папку, из которой вы извлекли драйвер MySQL ранее, и выберите “mysql-connector-java-5.1.46” (5.1.46 – номер версии. Все будет по-другому, если вы скачаете новую версию). Нажмите кнопку Открыть, и вы увидите, что драйвер устанавливается.
Теперь вы успешно установили драйвер JDBC.
Перейдите к дизайну интерфейса, который вы сделали ранее. дважды щелкните по кнопке “Отправить”, и откроется исходное окно для события нажатия вашей кнопки “Отправить”.
Перейдите в верхнюю часть окна исходного кода и импортируйте класс Java Sql.
импортируйте java.sql. *;
Сначала я вызываю данные из JTextFields в некоторые переменные.
телефон – это целочисленная переменная, и из поля JText вы получаете строковое значение. Поэтому я использовал Поэтому я использовал
()
Затем вам необходимо инициировать подключение к базе данных.
“Хост” – это URL-адрес вашей базы данных. Замените “клиент” своим собственным именем базы данных. ” Имя пользователя “имя пользователя учетной записи phpmyadmin, которое мы использовали для создания базы данных, а “pw” – это пароль для вышеупомянутой учетной записи. Поскольку мы использовали корневой логин, пароля не будет. Затем мы должны создать новое соединение с именем “con” и инициировать соединение.
Теперь вы можете увидеть последнюю часть соединения, выделенную как ошибка. Это потому, что это может вызывать исключения (в частности, исключения SQL). Поэтому нам нужно окружить этот код блоком “попробуй и поймай”.
Затем вам необходимо выполнить SQL-запрос, чтобы добавить пользовательский ввод в вашу базу данных.
Для этого мы должны создать заявление. Я собираюсь создать заявление под названием “stmt”. А затем объявите строковую переменную для оператора SQL. Поскольку мы собираемся добавлять данные, мы должны использовать ВСТАВИТЬ
запрос. Введите инструкцию SQL и затем, наконец, выполните запрос.
ВАЖНО : когда вы вставляете данные из переменных, убедитесь, что вы вводите их следующим образом.
‘ ” +имя_ переменной+” ‘ (открыть одинарную кавычку, открыть двойную кавычку, знак плюс, имя_ переменной, знак плюс, закрыть двойную кавычку, закрыть одинарную кавычку)
И вы должны ввести данные в соответствии с порядком расположения столбцов вашей базы данных.
И, наконец, чтобы добавить некоторые дополнительные функции, я добавляю всплывающее окно для успешного выполнения.
Наш окончательный код будет выглядеть так.
String name = txtname.getText(); int phone = Integer.parseInt(txtphone.getText()); String address = txtaddress.getText(); String host = "jdbc:mysql://localhost:3306/customer"; String usern = "root"; String pw = ""; try { Connection con = DriverManager.getConnection(host, usern, pw); Statement stmt = con.createStatement(); String sql = "INSERT INTO details VALUES ('" + name + "' ,'" + phone + "' , '" + address + "' )"; stmt.executeUpdate(sql); JOptionPane.showMessageDialog(null, "Data inserted Successfully!"); } catch (SQLException ex) { Logger.getLogger(details.class.getName()).log(Level.SEVERE, null, ex); } finally { { try { con.close(); } catch (Exception e) {} } }
Вот и все! Нажмите Shift+ f6 и запустите программу. Если у вас есть какие-либо вопросы, пожалуйста, дайте мне знать в разделе комментариев ниже. Счастливого Кодирования!
РЕДАКТИРОВАТЬ: Поскольку это всего лишь простой код для получения основной идеи, в этом коде есть две уязвимости. Я включил дополнительный блок кода в конце кода, чтобы закрыть соединение, которое мы открыли с базой данных. И здесь я объединил входные параметры непосредственно в sql, не экранируя их. Это может привести к SQL-инъекции. Всегда лучше использовать подготовленные инструкции, которые вы можете найти здесь. Спасибо @Pavol!
Оригинал: “https://dev.to/suvink/java-mysql-connection-d52”