Основы Java. 5. Databases

19
Основы Java. 4. Databases Немчинский Сергей 2014

Transcript of Основы Java. 5. Databases

Page 1: Основы Java. 5. Databases

Основы Java. 4. Databases

Немчинский Сергей

2014

Page 2: Основы Java. 5. Databases

Концепция трех-тировогоприложения

Интерфейс

Бизнес логика

Данные

Page 3: Основы Java. 5. Databases

Обзорная лекция по работе с базами данных

Дисклеймер

Enterprise сервера

Page 4: Основы Java. 5. Databases

Основные понятия

Обьектные базы данных

Реляционные базы данных

JDBC

Drivers

ORM (Object-relational mapping)

Page 5: Основы Java. 5. Databases

Обьектные базы данных

Удобства Неудобства

Page 6: Основы Java. 5. Databases

Реляционные базы данных

EMPLOEE

ID NAME DEPARTMENT_ID

DEPARTMENTS

ID NAME DESCR

Page 7: Основы Java. 5. Databases

JDBC (Java Data Base Connectivity)

Как работает SUN (Oracle) Drivers Единый интерфейс ClassLoader JAVA_PATH

Page 8: Основы Java. 5. Databases

Connect

Class.forName(“full.driver.class”);

Connection con = DriverManager.getConnection(URL, Properties);

//URL: jdbc:oracle://host:port/SID

//MySQL: jdbc:mysql://host:port?var1=val1&…

Page 9: Основы Java. 5. Databases

Statemets &ResultState

Statement st = con.createStatement();

ResultSet rs = st.executeQuery(“SQL statement”);

while(rs.next()){

String s = rs.getString(1);

int i = rs.getInt(2);

String name = rs.getString(“name”);

}

Page 10: Основы Java. 5. Databases

Close

Устанавливается реальное соединение

Закрываются обьекты в обратномпорядке

Connection pool

Page 11: Основы Java. 5. Databases

DateSource

Enterprise Server делает за нас

JNDI (Java Naming & Directory Interface)

Page 12: Основы Java. 5. Databases

Получение DateSource

Context contex = new InitalContext();

DateSource ds = (DateSource)context.lookup(“jdbc/name”);

Connection con = ds.getConnection();

Page 13: Основы Java. 5. Databases

ORM (Object Relational Mapping)

Основная идея

Hibernate foundation

JPA

Анотации

Page 14: Основы Java. 5. Databases

Мэппинг

@Entity

@Table (name=“TABLE_NAME”)

public class TableName implements Seralizable{

private static final long serialVersionUID=…;

@ID

@GeneratedValue

@SequenceGenerator(seqName=“SEQ_NAME”)

// @Column(name=“ssss”)

private int id;

Page 15: Основы Java. 5. Databases

Связи

@OneToOne

@OneToMany

@ManyToOne

Page 16: Основы Java. 5. Databases

Code

SessionFactory sf = new Configuration().configure().buildSessionFactory();

sf.openSession();

HQL

SQL

Criteria

Page 17: Основы Java. 5. Databases

Задание 1

Подключиться к базе данных с помощью plain JDBC

Вывести количество считанных обьектов

* вывести все поля ResultSet

Page 18: Основы Java. 5. Databases

Задание 2*

Настроить DateDource в Tomcat

Вывести количество считанных обьектов

вывести все поля ResultSet

Page 19: Основы Java. 5. Databases

Задание 3**

CRUD на Hibernate