Advertisement
adwas33

Untitled

May 21st, 2023
18
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.02 KB | None | 0 0
  1. Zgadzam się, że korzystanie z Hibernate do generowania schematu bazy danych może bardzo ułatwić zarządzanie strukturą bazy danych w projekcie Java. Hibernate umożliwia tworzenie tabel bazy danych bezpośrednio z klas encji w Java, co oznacza, że nie musisz ręcznie pisać skryptów SQL do tworzenia tabel.
  2.  
  3. Poniżej znajduje się przykładowy kod, który pokazuje, jak można to zrobić. Rozważmy przykładową bazę danych dla dziennika, z encjami `Student`, `Subject` i `Grade`.
  4.  
  5. Zacznijmy od klasy `Student`:
  6.  
  7. ```java
  8. import javax.persistence.*;
  9.  
  10. @Entity
  11. @Table(name = "students")
  12. public class Student {
  13. @Id
  14. @GeneratedValue(strategy = GenerationType.IDENTITY)
  15. private Long id;
  16.  
  17. @Column(name = "name")
  18. private String name;
  19.  
  20. // getters and setters
  21. }
  22. ```
  23.  
  24. Teraz klasa `Subject`:
  25.  
  26. ```java
  27. import javax.persistence.*;
  28.  
  29. @Entity
  30. @Table(name = "subjects")
  31. public class Subject {
  32. @Id
  33. @GeneratedValue(strategy = GenerationType.IDENTITY)
  34. private Long id;
  35.  
  36. @Column(name = "name")
  37. private String name;
  38.  
  39. // getters and setters
  40. }
  41. ```
  42.  
  43. Klasa `Grade`:
  44.  
  45. ```java
  46. import javax.persistence.*;
  47.  
  48. @Entity
  49. @Table(name = "grades")
  50. public class Grade {
  51. @Id
  52. @GeneratedValue(strategy = GenerationType.IDENTITY)
  53. private Long id;
  54.  
  55. @ManyToOne
  56. @JoinColumn(name = "student_id")
  57. private Student student;
  58.  
  59. @ManyToOne
  60. @JoinColumn(name = "subject_id")
  61. private Subject subject;
  62.  
  63. @Column(name = "grade")
  64. private Integer grade;
  65.  
  66. // getters and setters
  67. }
  68. ```
  69.  
  70. W powyższym przykładzie użyto adnotacji JPA do zdefiniowania modelu encji. Adnotacje takie jak `@Entity`, `@Table`, `@Id`, `@Column`, `@ManyToOne` i `@JoinColumn` służą do mapowania klas Java na tabele bazy danych. Wartości encji są przechowywane w kolumnach tabeli, a relacje między encjami są reprezentowane przez klucze obce w tabeli.
  71.  
  72. Teraz możemy skonfigurować Hibernate do generowania schematu bazy danych z naszych encji. Możemy to zrobić za pomocą pliku konfiguracyjnego Hibernate `hibernate.cfg.xml`:
  73.  
  74. ```xml
  75. <!DOCTYPE hibernate-configuration PUBLIC
  76. "-//Hibernate/Hibernate Configuration DTD//EN"
  77. "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
  78.  
  79. <hibernate-configuration>
  80. <session-factory>
  81. <!-- Database connection settings -->
  82. <property name="connection.driver_class">org.mariadb.jdbc.Driver</property>
  83. <property name="connection.url">jdbc:mariadb://localhost:3306/mydatabase</property>
  84. <property name="connection.username">myusername</property>
  85. <property name="connection.password">mypassword</property>
  86.  
  87. <!-- SQL dialect -->
  88. <property name="dialect">org.hibernate.dialect.MariaDBDialect</property>
  89.  
  90. <!-- Echo all executed SQL to stdout -->
  91. <property name="show_sql">true</property>
  92.  
  93. <!-- Update the database schema on startup -->
  94. <property name="hbm2ddl.auto">update</property>
  95.  
  96. <!-- Annotated classes -->
  97.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement