Нам, программистам 1с, очень повезло, нам не нужно думать, как в СУБД создаются таблички, как из объектов получаются записи в табличках и наоборот, как из таблички получаются объекты, которыми мы оперируем.
Нам не нужно думать, как устанавливается соединение с СУБД, и вообще мы можем через настройки перенести базу данных с одной СУБД на другую.
Сказочно!!! не то что программистам на других языках, "все нужно прописывать", страдать и скрипя зубами от злости завидовать нам, программистам 1с.
Представьте, что программисту java дали задачку сделать табличку и сделать Веб сервис, через который ее можно будет просматривать и редактировать.
Задача непростая, это же "нужно все прописывать", поэтому нужно заплатить ему триллиард и оставить в покое на год или два....
Через 15 минут, доклад - "все готово".
Смотрите код, предвкушая треш и ад, а там всего три класса и один интерфейс.
Точка входа
package com.zarubin.orders;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class OrdersApplication {
public static void main(String[] args) {
SpringApplication.run(OrdersApplication.class, args);
}
}
Enitity - описывает структуру сущности
package com.zarubin.orders.entity;
import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Data
@Entity
public class Employee {
private @Id
@GeneratedValue
Long id;
private String firstName;
private String lastName;
private String description;
private Employee() {}
public Employee(String firstName, String lastName, String description) {
this.firstName = firstName;
this.lastName = lastName;
this.description = description;
}
}
repository - описывает работу с хранилищем
package com.zarubin.orders.repository;
import com.zarubin.orders.entity.Employee;
import org.springframework.data.repository.PagingAndSortingRepository;
public interface EmployeeRepository extends PagingAndSortingRepository<Employee, Long> {
controller - обеспечивает взаимодействие клиента и хранилища
package com.zarubin.orders.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HomeController {
@RequestMapping(value = "/")
public String index() {
return "index";
}
}
А где открытие соединений, исключения, где ад-то?
Все дело в том, Що там у них в Java есть фреймворк Spring, который сейчас является практически стандартом для энтерпрайз приложений на языке java.
И этот фреймворк делает фокусы не хуже 1с, и таблички тебе создаст, и классы из табличек поднимет, и бережно сохранит классы, и веб сервис предоставит, и коня на скаку остановит (но это не точно)....
Заговор раскрыт :)
Они там халявят и стригут баблище:)
Для тех, кто хочет узнать подробнее о spring data, доклад от настоящего spring потрошителя Евгения Борисова