Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на Java.docx
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
3.45 Mб
Скачать

Тема 6.2 Простое соединение и простой запрос

Теперь следует воспользоваться всеми предыдущими инструкциями и создать простое соединение с БД.

Листинг 6.1

import java.sql.*;

public class Main {

public static void main(String[] args) {

Connection cn = null;

Statement st = null;

try {

Class.forName("com.mysql.jdbc.Driver");

try {

cn = DriverManager.getConnection( "jdbc:mysql://localhost/my_db", "root", "");

try {

st = cn.createStatement();

st.executeUpdate("CREATE TABLE user (id INT(3) PRIMARY KEY, name VARCHAR(20) )");

st.executeUpdate("INSERT INTO user VALUES (1,'user1')");

st.close();

} catch (SQLException ex) {

System.out.println("Error in Statement " + ex);

}

cn.close();

} catch (SQLException ex) {

System.out.println("Error in create Connection " + ex);

}

} catch (ClassNotFoundException ex) {

System.out.println("Error in download Driver " + ex);

}

}

}

В результате выполнения данной программы в базе данных my_db(должна быть создана на сервере заранее) будет создана таблица test и в нее внесены данные. В данном примере используется вложенная система блоков try-catch, что позволяет остановить выполнение, как только произошла какая-то ошибка. В случае большого количества запросов это не очень удобно. В листинге 6.2 приведен класс позволяющий более удачно работать с базой данных.

Листинг 6.2

import java.sql.*;

public class DB {

private Connection cn;

private Statement st;

public DB(String path, String nameDB, String login, String pass) {

try {

Class.forName("com.mysql.jdbc.Driver");

try {

cn = DriverManager.getConnection(path + nameDB, login, pass);

try {

st = cn.createStatement();

} catch (SQLException ex) {

System.out.println("Error in Statement " + ex);

}

} catch (SQLException ex) {

System.out.println("Error in create Connection " + ex);

}

} catch (ClassNotFoundException ex) {

System.out.println("Error in download Driver " + ex);

}

}

public void update(String sql) {

try {

st.executeUpdate(sql);

} catch (SQLException ex) {

System.out.println("Error in update " + ex);

}

}

public void close() {

try {

st.close();

cn.close();

} catch (SQLException ex) {

System.out.println("Error in close " + ex);

}

}

}

public class Main {

public static void main(String[] args) {

DB db = new DB("jdbc:mysql://localhost/", "my_db", "root", "");

db.update("CREATE TABLE user (id INT(3) PRIMARY KEY, name VARCHAR(20) )");

db.update("INSERT INTO user VALUES (1,'user1')");

db.update("INSERT INTO user VALUES (2,'user2')");

db.update("INSERT INTO user VALUES (3,'user3')");

db.close();

}

}

В результате выполнения данной программы будет создана такая же таблица как и в листинге 6.1 и в нее занесены данные.