add hibernate support, and example
This commit is contained in:
@@ -3,10 +3,14 @@ package io.github.lumijiez.example;
|
||||
import io.github.lumijiez.core.config.ServerConfig;
|
||||
import io.github.lumijiez.core.http.HttpServer;
|
||||
import io.github.lumijiez.core.http.HttpStatus;
|
||||
import io.github.lumijiez.example.daos.ProductDao;
|
||||
import io.github.lumijiez.example.models.Product;
|
||||
import io.github.lumijiez.logging.Logger;
|
||||
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
ProductDao productDao = new ProductDao();
|
||||
|
||||
ServerConfig config = new ServerConfig.Builder()
|
||||
.port(8080)
|
||||
.keepAliveTimeout(30000)
|
||||
@@ -25,6 +29,11 @@ public class Main {
|
||||
res.sendResponse(HttpStatus.OK, "All good, lil bro");
|
||||
});
|
||||
|
||||
server.GET("/products", (req, res) -> {
|
||||
Product product = productDao.getProductById(5);
|
||||
res.sendResponse(HttpStatus.OK, product.toString());
|
||||
});
|
||||
|
||||
server.start();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
package io.github.lumijiez.example.daos;
|
||||
|
||||
import io.github.lumijiez.example.models.Product;
|
||||
import org.hibernate.Session;
|
||||
import org.hibernate.Transaction;
|
||||
import org.hibernate.cfg.Configuration;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ProductDao {
|
||||
|
||||
public void saveProduct(Product product) {
|
||||
Transaction transaction = null;
|
||||
try (Session session = new Configuration().configure().buildSessionFactory().openSession()) {
|
||||
transaction = session.beginTransaction();
|
||||
session.save(product);
|
||||
transaction.commit();
|
||||
System.out.println("Product saved successfully!");
|
||||
} catch (Exception e) {
|
||||
if (transaction != null) {
|
||||
transaction.rollback();
|
||||
}
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public Product getProductById(int id) {
|
||||
try (Session session = new Configuration().configure().buildSessionFactory().openSession()) {
|
||||
return session.get(Product.class, id);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<Product> getAllProducts() {
|
||||
try (Session session = new Configuration().configure().buildSessionFactory().openSession()) {
|
||||
return session.createQuery("from Product").list();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public void updateProduct(Product product) {
|
||||
Transaction transaction = null;
|
||||
try (Session session = new Configuration().configure().buildSessionFactory().openSession()) {
|
||||
transaction = session.beginTransaction();
|
||||
session.update(product);
|
||||
transaction.commit();
|
||||
System.out.println("Product updated successfully!");
|
||||
} catch (Exception e) {
|
||||
if (transaction != null) {
|
||||
transaction.rollback();
|
||||
}
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void deleteProduct(int id) {
|
||||
Transaction transaction = null;
|
||||
try (Session session = new Configuration().configure().buildSessionFactory().openSession()) {
|
||||
transaction = session.beginTransaction();
|
||||
Product product = session.get(Product.class, id);
|
||||
if (product != null) {
|
||||
session.delete(product);
|
||||
System.out.println("Product deleted successfully!");
|
||||
}
|
||||
transaction.commit();
|
||||
} catch (Exception e) {
|
||||
if (transaction != null) {
|
||||
transaction.rollback();
|
||||
}
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
70
src/main/java/io/github/lumijiez/example/models/Product.java
Normal file
70
src/main/java/io/github/lumijiez/example/models/Product.java
Normal file
@@ -0,0 +1,70 @@
|
||||
package io.github.lumijiez.example.models;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
|
||||
@Entity
|
||||
@Table(name = "products")
|
||||
public class Product {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private int id;
|
||||
|
||||
@Column(name = "product_code")
|
||||
private String productCode;
|
||||
|
||||
@Column(name = "name")
|
||||
private String name;
|
||||
|
||||
@Column(name = "category")
|
||||
private String category;
|
||||
|
||||
@Column(name = "price")
|
||||
private double price;
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getProductCode() {
|
||||
return productCode;
|
||||
}
|
||||
|
||||
public void setProductCode(String productCode) {
|
||||
this.productCode = productCode;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getCategory() {
|
||||
return category;
|
||||
}
|
||||
|
||||
public void setCategory(String category) {
|
||||
this.category = category;
|
||||
}
|
||||
|
||||
public double getPrice() {
|
||||
return price;
|
||||
}
|
||||
|
||||
public void setPrice(double price) {
|
||||
this.price = price;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Product [id=" + id + ", productCode=" + productCode + ", name=" + name +
|
||||
", category=" + category + ", price=" + price + "]";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user