Skip to content

Commit fb9383a

Browse files
committed
Add hiber project
1 parent 078a636 commit fb9383a

File tree

12 files changed

+536
-0
lines changed

12 files changed

+536
-0
lines changed

.gitignore

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,47 @@ gradle-app.setting
1212

1313
# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
1414
# gradle/wrapper/gradle-wrapper.properties
15+
16+
# Node artifact files
17+
node_modules/
18+
dist/
19+
20+
# Compiled Java class files
21+
*.class
22+
23+
# Compiled Python bytecode
24+
*.py[cod]
25+
26+
# Log files
27+
*.log
28+
29+
# Package files
30+
*.jar
31+
32+
# Maven
33+
target/
34+
35+
# JetBrains IDE
36+
.idea/
37+
38+
# Unit test reports
39+
TEST*.xml
40+
41+
# Generated by MacOS
42+
.DS_Store
43+
44+
# Generated by Windows
45+
Thumbs.db
46+
47+
# Applications
48+
*.app
49+
*.exe
50+
*.war
51+
52+
# Large media files
53+
*.mp4
54+
*.tiff
55+
*.avi
56+
*.flv
57+
*.mov
58+
*.wmv

HiberModule/build.gradle

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
plugins {
2+
id 'java'
3+
}
4+
5+
6+
group 'org.example'
7+
version '1.0-SNAPSHOT'
8+
9+
compileJava.options.encoding = "UTF-8"
10+
compileTestJava.options.encoding = "UTF-8"
11+
12+
repositories {
13+
mavenCentral()
14+
}
15+
16+
dependencies {
17+
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
18+
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
19+
implementation (group: 'org.postgresql', name: 'postgresql', version: '42.2.5')
20+
implementation group: 'org.hibernate', name: 'hibernate-gradle-plugin', version: '5.5.2.Final'
21+
22+
compileOnly 'org.projectlombok:lombok:1.18.20'
23+
annotationProcessor 'org.projectlombok:lombok:1.18.20'
24+
25+
implementation('ch.qos.logback:logback-classic:1.2.3')
26+
implementation('ch.qos.logback:logback-core:1.2.3')
27+
28+
implementation('org.slf4j:slf4j-api:1.7.30')
29+
30+
// https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4.1
31+
implementation group: 'org.bgee.log4jdbc-log4j2', name: 'log4jdbc-log4j2-jdbc4.1', version: '1.16'
32+
33+
}
34+
35+
test {
36+
useJUnitPlatform()
37+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import model.City;
2+
import model.User;
3+
import org.hibernate.SessionFactory;
4+
import org.hibernate.boot.MetadataSources;
5+
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
6+
7+
import java.util.List;
8+
9+
/**
10+
* @author alekseev.a
11+
* @since 1.0
12+
*/
13+
public class Main {
14+
15+
/* public static final String URL = "jdbc:postgresql://localhost:5432/postgres";
16+
public static final String USER = "postgres";
17+
public static final String PASSWORD = "postgres";*/
18+
19+
20+
public static void main(String[] args) {
21+
var serviceRegistry = new StandardServiceRegistryBuilder()
22+
.configure("hibernate.cfg.xml").build();
23+
var metadata = new MetadataSources(serviceRegistry).getMetadataBuilder().build();
24+
SessionFactory sessionFactory = metadata.getSessionFactoryBuilder().build();
25+
26+
createRecord(User.builder().name("name").build(), sessionFactory);
27+
28+
var session = sessionFactory.openSession();
29+
List<City> list = session.createQuery("from model.City", City.class).list();
30+
System.out.println(list);
31+
}
32+
33+
private static <T> T createRecord(T record, SessionFactory factory) {
34+
var session = factory.openSession();
35+
var transaction = session.beginTransaction();
36+
session.save(record);
37+
transaction.commit();
38+
session.close();
39+
return record;
40+
}
41+
42+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package model;
2+
import lombok.AllArgsConstructor;
3+
import lombok.Builder;
4+
import lombok.Data;
5+
import lombok.NoArgsConstructor;
6+
7+
import javax.persistence.*;
8+
9+
/**
10+
* @author alekseev.a
11+
* @since 1.0
12+
*/
13+
@Data
14+
@Builder
15+
@AllArgsConstructor
16+
@NoArgsConstructor
17+
@Entity
18+
@Table(name = "city")
19+
public class City {
20+
21+
@Id
22+
@GeneratedValue(strategy = GenerationType.SEQUENCE)
23+
private int id;
24+
25+
@Column(length = 128, nullable = false)
26+
private String name;
27+
28+
@Enumerated(EnumType.STRING)
29+
private CityType type;
30+
31+
32+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package model;
2+
3+
/**
4+
* @author alekseev.a
5+
* @since 1.0
6+
*/
7+
8+
public enum CityType {
9+
TOWN,
10+
CITY
11+
12+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package model;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Builder;
5+
import lombok.Data;
6+
import lombok.NoArgsConstructor;
7+
8+
import javax.persistence.*;
9+
10+
/**
11+
* @author alekseev.a
12+
* @since 1.0
13+
*/
14+
@Data
15+
@Builder
16+
@AllArgsConstructor
17+
@NoArgsConstructor
18+
@Entity
19+
@Table(name = "users")
20+
public class User {
21+
22+
@Id
23+
@GeneratedValue(strategy = GenerationType.SEQUENCE)
24+
private int id;
25+
26+
@Column(length = 128, nullable = false)
27+
private String name;
28+
29+
30+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?xml version = "1.0" encoding = "utf-8"?>
2+
<!DOCTYPE hibernate-mapping PUBLIC
3+
"-//Hibernate/Hibernate Mapping DTD//EN"
4+
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
5+
6+
<hibernate-mapping>
7+
<class name = "model.City" table = "City">
8+
9+
<meta attribute = "class-description">
10+
This class contains the user detail.
11+
</meta>
12+
13+
<id name = "id" type = "int" column = "id">
14+
<generator class="native"/>
15+
</id>
16+
17+
<property name = "name" column = "name" type = "string"/>
18+
</class>
19+
</hibernate-mapping>
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?xml version = "1.0" encoding = "utf-8"?>
2+
<!DOCTYPE hibernate-mapping PUBLIC
3+
"-//Hibernate/Hibernate Mapping DTD//EN"
4+
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
5+
6+
<hibernate-mapping>
7+
<class name = "model.User" table = "Users">
8+
9+
<meta attribute = "class-description">
10+
This class contains the user detail.
11+
</meta>
12+
13+
<id name = "id" type = "int" column = "id">
14+
<generator class="native"/>
15+
</id>
16+
17+
<property name = "name" column = "name" type = "string"/>
18+
</class>
19+
</hibernate-mapping>
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?xml version='1.0' encoding='utf-8'?>
2+
<!DOCTYPE hibernate-configuration PUBLIC
3+
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
4+
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
5+
6+
<hibernate-configuration>
7+
<session-factory>
8+
<!-- SQL Dialect -->
9+
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQL94Dialect</property>
10+
11+
<!-- Database Connection Settings -->
12+
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
13+
<property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/postgres</property>
14+
<property name="hibernate.connection.username">postgres</property>
15+
<property name="hibernate.connection.password">postgres</property>
16+
<property name="hibernate.hbm2ddl.auto">update</property>
17+
<property name="show_sql">true</property>
18+
<mapping class="model.CityType"/>
19+
<mapping class="model.City"/>
20+
<mapping class="model.User"/>
21+
22+
23+
</session-factory>
24+
</hibernate-configuration>

0 commit comments

Comments
 (0)