68 lines
2.2 KiB
Plaintext
68 lines
2.2 KiB
Plaintext
|
@startuml
|
||
|
package com.iluwatar.dao {
|
||
|
class App {
|
||
|
- ALL_CUSTOMERS : String {static}
|
||
|
- DB_URL : String {static}
|
||
|
- log : Logger {static}
|
||
|
+ App()
|
||
|
- addCustomers(customerDao : CustomerDao) {static}
|
||
|
- createDataSource() : DataSource {static}
|
||
|
- createSchema(dataSource : DataSource) {static}
|
||
|
- deleteSchema(dataSource : DataSource) {static}
|
||
|
+ generateSampleCustomers() : List<Customer> {static}
|
||
|
+ main(args : String[]) {static}
|
||
|
- performOperationsUsing(customerDao : CustomerDao) {static}
|
||
|
}
|
||
|
class Customer {
|
||
|
- firstName : String
|
||
|
- id : int
|
||
|
- lastName : String
|
||
|
+ Customer(id : int, firstName : String, lastName : String)
|
||
|
+ equals(that : Object) : boolean
|
||
|
+ getFirstName() : String
|
||
|
+ getId() : int
|
||
|
+ getLastName() : String
|
||
|
+ hashCode() : int
|
||
|
+ setFirstName(firstName : String)
|
||
|
+ setId(id : int)
|
||
|
+ setLastName(lastName : String)
|
||
|
+ toString() : String
|
||
|
}
|
||
|
interface CustomerDao {
|
||
|
+ add(Customer) : boolean {abstract}
|
||
|
+ delete(Customer) : boolean {abstract}
|
||
|
+ getAll() : Stream<Customer> {abstract}
|
||
|
+ getById(int) : Optional<Customer> {abstract}
|
||
|
+ update(Customer) : boolean {abstract}
|
||
|
}
|
||
|
class CustomerSchemaSql {
|
||
|
+ CREATE_SCHEMA_SQL : String {static}
|
||
|
+ DELETE_SCHEMA_SQL : String {static}
|
||
|
- CustomerSchemaSql()
|
||
|
}
|
||
|
class DbCustomerDao {
|
||
|
- LOGGER : Logger {static}
|
||
|
- dataSource : DataSource
|
||
|
+ DbCustomerDao(dataSource : DataSource)
|
||
|
+ add(customer : Customer) : boolean
|
||
|
- createCustomer(resultSet : ResultSet) : Customer
|
||
|
+ delete(customer : Customer) : boolean
|
||
|
+ getAll() : Stream<Customer>
|
||
|
+ getById(id : int) : Optional<Customer>
|
||
|
- getConnection() : Connection
|
||
|
- mutedClose(connection : Connection, statement : PreparedStatement, resultSet : ResultSet)
|
||
|
+ update(customer : Customer) : boolean
|
||
|
}
|
||
|
class InMemoryCustomerDao {
|
||
|
- idToCustomer : Map<Integer, Customer>
|
||
|
+ InMemoryCustomerDao()
|
||
|
+ add(customer : Customer) : boolean
|
||
|
+ delete(customer : Customer) : boolean
|
||
|
+ getAll() : Stream<Customer>
|
||
|
+ getById(id : int) : Optional<Customer>
|
||
|
+ update(customer : Customer) : boolean
|
||
|
}
|
||
|
}
|
||
|
DbCustomerDao ..|> CustomerDao
|
||
|
InMemoryCustomerDao ..|> CustomerDao
|
||
|
@enduml
|