ORM (Object-Relational Mapping) фреймворки в Java позволяют программистам работать с базами данных, представляя данные в виде объектов, что упрощает процесс взаимодействия с БД. Несколько популярных технологий:
1. JPA (Java Persistence API): Стандартная спецификация для работы с объектно-реляционным отображением в Java. Пример использования JPA с Hibernate провайдером:
EntityManagerFactory emf = Persistence.createEntityManagerFactory("myPU");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
Employee employee = new Employee("Jane", "Smith", 1200);
em.persist(employee);
em.getTransaction().commit();
em.close();
2. Hibernate: Один из наиболее широко используемых ORM-фреймворков в Java. Пример кода для сохранения объекта в базе данных с использованием Hibernate:
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
Employee employee = new Employee("John", "Doe", 1000);
session.save(employee);
session.getTransaction().commit();
session.close();
3. Spring Data JPA: Часть Spring Data, облегчающая работу с JPA. Пример использования Spring Data JPA для поиска сущности по идентификатору:
Employee employee = employeeRepository.findById(1L).orElse(null);
4. MyBatis: Фреймворк, который предоставляет более SQL-центричный подход к ORM. Пример маппинга объекта на SQL запрос с помощью MyBatis:
<select id="selectEmployeeById" resultType="Employee">
SELECT * FROM employees WHERE id = #{id}
</select>
ORM фреймворки упрощают работу с базами данных в Java, позволяя разработчикам оперировать объектами вместо SQL запросов, что улучшает производительность и поддерживаемость кода. Каждый из перечисленных фреймворков имеет свои особенности и преимущества, поэтому выбор зависит от конкретных потребностей проекта.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤3🔥1👏1
public class Quest {
public static void main(String[] args) {
System.out.println(calc());
}
static int calc() {
try {
if (1 == 1)
throw new RuntimeException();
return 1;
} catch (Exception e) {
return 2;
} finally {
return 3;
}
}
}👍5
❤3🔥1🎉1
public class Quest {
public static void main(String[] args) {
System.out.println(5 + true);
}
}🤩5🙈2🎉1
public class Quest {
public static void main(String[] args) {
System.out.println("5" + true);
}
}😱10🎉3😍3👍2❤1❤🔥1🤩1
Перечисления представляют набор логически связанных констант. Нужны для ограничения области допустимых значений: например, времена года, дни недели.
Перечисление фактически представляет новый класс, поэтому мы можем определить переменную данного типа и использовать ее.
Перечисления, как и обычные классы, могут определять конструкторы, поля и методы.
Следует отметить, что конструктор по умолчанию приватный.
Преимуществом Еnum перед обычными константами является возможность проверки типа данных.
К недостаткам относится невозможность применения операторов >, <, >=, <=, а так же большее потребление памяти по сравнению с обычными константами.
Встроенные методы:
- ordinal() возвращает порядковый номер определенной константы (нумерация начинается с 0)
- values() возвращает массив всех констант перечисления
public enum Day {
MONDAY("понедельник"),
TUESDAY("вторник"),
WEDNESDAY("среда"),
THURSDAY("четверг"),
FRIDAY("пятница"),
SATURDAY("суббота"),
SUNDAY("воскресенье");
Day(String value) {
this.value = value;
}
String value;
public String getValue() {
return value;
}
}
public class EnumClass {
public static void main(String[] args) {
System.out.println(message(Day.FRIDAY));
}
public static String message(Day day) {
return "Это " + day.getValue();
// Это пятница
}
}
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥1👏1
🤯8❤2👍2🎉2😱1
Модификатор
final может применяться к переменным, параметрам методов, полям и методам класса или самим классам.Please open Telegram to view this post
VIEW IN TELEGRAM
👍36
public class Quest {
public static void main(String[] args) {
System.out.println(cond(1) && cond(2));
}
private static boolean cond(int i) {
try {
return false;
} finally {
System.out.print(i);
}
}
}👍4🤩3🎉1💯1
&& и || называются сокращёнными логическими операторами AND и OR соответственно, или операторами короткой схемы вычислений. В спецификации Java их ещё зовут условными. Значения их операндов могут быть только булева типа.В отличие от двойных, одиночные
& и | называются операторами полной схемы вычислений. Значения их операндов могут быть как только булевыми, так и только целочисленными (вместе с оператором ^ они используются в побитовых операциях).В чём разница?
В том, что для операторов
& и | всегда вычисляются значения обоих операндов, а при работе операторов && и || второй операнд вычисляется только по необходимости.То есть иногда результат выражения однозначно определён уже по первому операнду:
&& равен false, то второй не вычисляется, так как уже понятно, что результат всего выражения будет false.|| равен true, то второй не вычисляется, так как уже понятно, что || вернёт true.&& и || используют как операторы булевой логики. Они оперируют значениями только булева типа и применяются только в логических выражениях.Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤3🔥1
👍3🤯3😱1👌1
Vaadin - это Java библиотека для создания веб-приложений с использованием пользовательского интерфейса на основе компонентов. Она предоставляет набор готовых элементов управления и возможность создавать собственные компоненты.
Пример создания UI с использованием Vaadin:
public class MyUI extends UI {
@Override
protected void init(VaadinRequest request) {
Button button = new Button("Click me");
button.addClickListener(e -> Notification.show("Button clicked"));
setContent(button);
}
}В данном примере мы создаем кнопку и добавляем к ней обработчик нажатия, который выводит уведомление при клике на кнопку.
Пример использования Layout для размещения компонентов:
VerticalLayout layout = new VerticalLayout();
layout.addComponent(new Label("Hello, Vaadin!"));
layout.addComponent(new Button("Click me"));
setContent(layout);
Также Vaadin предоставляет множество других компонентов, таких как Table, Form, DateField и др., которые можно использовать для создания более сложных интерфейсов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤1🔥1👏1👨💻1
public class Quest {
public static void main(String[] args) {
System.out.println(true &! false);
}
}👍4❤3🔥1🎉1
Метод
main() - точка входа в программу. В приложении может быть несколько таких методов. Если метод отсутствует, то компиляция возможна, но при запуске будет получена ошибка `Error: Main method not found`.
public static void main(String[] args) {}
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29💯2❤1🔥1