Як використовувати базу даних mysql в java
У цій статті ми навчимося підключатися до бази даних MySQL з Java-коду і виконувати прості запити для отримання та оновлення даних. Для того, щоб отримати доступ до бази даних, ми будемо використовувати JDBC (Java Database Connectivity) API, який входить в стандартну бібліотеку Java. JDBC дозволяє підключитися до будь-якої базі даних: Postgres, MySQL, SQL Server, Oracle і т. Д. - за наявності відповідної реалізації драйвера, необхідного для підключення. Для бази даних MySQL ми будемо використовувати драйвер Type 4 JDBC з пакета mysql-connector-java-5.1.23-bin.jar. Він написаний на чистій Java, а значить, нам не знадобляться будь-які нативні бібліотеки або ODBC-міст. Все, що нам треба буде зробити - це покласти JAR-файл в директорію, що міститься в CLASSPATH. JAR-файл містить клас com.mysql.jdbc.Driver. необхідний для підключення до MySQL. Якщо його не виявиться в CLASSPATH. під час виконання програми кинутись виняток java.lang.ClassNotFoundException. тому переконайтеся, що ви правильно налаштували шляху.
Підключаємо базу даних MySQL за допомогою JDBC
Для того, щоб підключити базу даних MySQL, нам буде потрібно чотири речі:
- Рядок підключення JDBC (наприклад: jdbc: mysql: // localhost: 3306 / test).
- Ім'я користувача (root).
- Пароль (root).
- База даних з деякою кількістю таблиць для прикладу (наприклад, база даних книг).
Рядок підключення для MySQL починається з jdbc: mysql. Ця назва протоколу з'єднання, за яким слідують хост і порт підключення, на яких запущена база даних. У нашому випадку це localhost з портом за замовчуванням 3306 (якщо ви його не поміняли при установці). Наступна частина - test - ім'я бази даних, яка вже існує в MySQL. Ми можемо створити таблицю Books:
com. mysql. jdbc. exceptions. jdbc4. MySQLSyntaxErrorException. Unknown database 'test / book'
at sun. reflect. NativeConstructorAccessorImpl. newInstance0 (Native Method)
at sun. reflect. NativeConstructorAccessorImpl. newInstance (NativeConstructorAccessorImpl. java. 62)
at sun. reflect. DelegatingConstructorAccessorImpl. newInstance (DelegatingConstructorAccessorImpl. java. 45)
at java. lang. reflect. Constructor. newInstance (Constructor. java. 408)
at com. mysql. jdbc. Util. handleNewInstance (Util. java. 411)
at com. mysql. jdbc. Util. getInstance (Util. java. 386)
at com. mysql. jdbc. SQLError. createSQLException (SQLError. java. 1053)
id. 2. name. Java Concurrency in Practice. author. Brian Goetz
Додаємо дані за допомогою INSERT-запиту в JDBC
Додавання даних мало відрізняється від їх отримання: ми просто використовуємо INSERT-запит замість SELECT-запиту і метод executeUpdate () замість executeQuery (). Цей метод використовується для запитів INSERT, UPDATE і DELETE, а також для SQL DDL виразів, таких як CREATE, ALER або DROP. Ці команди не повертають результату, тому ми прибираємо всі згадки ResultSet 'а в коді і змінюємо запит відповідно:
String query = "INSERT INTO test.books (id, name, author) \ n" +
"VALUES (3, 'Head First Java', 'Kathy Sieara');" ;
// executing SELECT query
stmt. executeUpdate (query);
Після запуску програми ви можете перевірити таблицю в СУБД. На цей раз ви побачите три записи в таблиці:
Тепер ви вмієте підключатися до MySQL з Java-додатка і виконувати SELECT, INSERT, DELETE і UPDATE-запити так само, як і в MySQL GUI. Для підключення ми використовуємо об'єкт Connection. для читання результатів запиту - ResultSet. Переконайтеся перед підключенням, що сервер MySQL запущений і mysql-connector-java-5.1.17-bin.jar знаходиться в CLASSPATH. щоб уникнути ClassNotFoundException.
Коли розберетеся з підключенням і простими запитами, має сенс вивчити, як використовувати підготовлювані запити (Prepared Statement) в Java для уникнення SQL-ін'єкції. У бойовому коді завжди слід використовувати підготовлювані запити і скріплення змінних.
Якщо вам сподобався цей керівництво і не терпиться дізнатися більше про підключення і роботи з базою даних з Java-програм, зверніть увагу на наступні статті:
Корисні посилання
- Якщо у вас немає бази даних MySQL, ви можете її завантажити тут;
- Есди у вас немає драйвера MySQL для JDBC, ви можете завантажити його звідси;
- Рекомендовану книгу «Practical Database Programming with Java» можна купити на Amazon.