Post on 06-Jan-2016
description
Работа с базами данных – JDBCВведение в JDBC
JDBC
JDBC (Java DataBase Connectivity) – технология доступа к базам данных для Java
Состоит из:• API (java.sql and javax.sql)• Driver Manager• Test Suite + JDBC-ODBC Bridge
JDBC API
• java.sql.Connection• java.sql.Statement (Prepared + Callable)• java.sql.ResultSet• java.sql.*
Driver
Class.forName("com.my.MyDriver");// mydriverConnection conn = DriverManager.getConnection( "jdbc:mydriver:myDatabase",
username,password);
// Class.forName("com.mysql.jdbc.Driver");// "jdbc:mysql://localhost:3306/db_name"
Driver
SQLLectorID FirstName LastName DateOfStart Count
1 Max Tyukh 2013-04-23 4
2 Eugene Bochkov 2013-04-25 4
3 Max Mashnitsky 2013-05-21 5
4 Andrew Grigoruk 2013-06-13 6
SQLConnection conn = DriverManager.getConnection( "jdbc:myDriver:myDatabase", username, password);Statement stmt = conn.createStatement();String q = "SELECT FirstName, LastName, Count FROM Lessions WHERE
Count > 4";ResultSet rs = stmt.executeQuery(q);while (rs.next()) { String f = rs.getString("FirstName"); String l = rs.getFloat("LastName"); int c = rs.getInt("Count"); System.out.println(f + l + " : " + c);}conn.close();
SQL
FirstName LastName Count
Max Mashnitsky 5
Andrew Grigoruk 6
SELECT FirstName, LastName, CountFROM LessionsWHERE Count > 4;
SQLINSERT INTO Lessions(FirstName, LastName, DateOfStart, Count)VALUES('Ivan', 'Petrov', '2013-07-04', 2);
LectorID FirstName LastName DateOfStart Count
1 Max Tyukh 2013-04-23 4
2 Eugene Bochkov 2013-04-25 4
3 Max Mashnitsky 2013-05-21 5
4 Andrew Grigoruk 2013-06-13 6
5 Ivan Petrov 2013-07-04 2
SQL
• Data Manipulation Language (DML)– SELECT, INSERT, DELETE, UPDATE
• Data Definition Language (DDL)– CREATE, DROP, ALTER
• Data Control Language (DCL)– GRANT, REVOKE, DENY
• Transaction Control Language (TCL)– COMMIT, ROLLBACK, SAVEPOINT
Преимущества JDBC
• Изоляция разработки (отсутствие необходимости знать особенностей БД)
• Повторное использование кода• Использование простого клиента (драйвер)• Простота конфигурации (URL + properties)
Q&A