<dependencies> <dependency> <groupId>org.jooby</groupId> <artifactId>jooby</artifactId> <version>1.4.1</version> </dependency> <dependency> <groupId>org.jooby</groupId> <artifactId>jooby-hikari</artifactId> <version>1.4.1</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.2.17.Final</version> </dependency> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.2.2</version> </dependency> </dependencies> conf db = "jdbc:postgresql://localhost:5432/mydatabase" db.user = "username" db.password = "password" hibernate.dialect = "org.hibernate.dialect.PostgreSQL95Dialect" hibernate.hbm2ddl.auto = "update" import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; private String name; private int age; } import org.jooby.Jooby; import org.jooby.Result; import org.jooby.Status; import org.jooby.hikari.HikariModule; import org.jooby.jdbc.Jdbc; import javax.inject.Inject; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import javax.persistence.Persistence; import java.util.List; public class UserController extends Jooby { private EntityManagerFactory emf; @Inject public UserController(Jdbc jdbc) { emf = Persistence.createEntityManagerFactory("defaultPersistenceUnit"); } { get("/users", req -> { EntityManager em = emf.createEntityManager(); List<User> users = em.createQuery("SELECT u FROM User u", User.class).getResultList(); em.close(); return users; }); post("/users", req -> { User user = req.body(User.class); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); try { tx.begin(); em.persist(user); tx.commit(); } catch (Exception e) { tx.rollback(); throw e; } finally { em.close(); } return new Result().status(Status.CREATED); }); get("/users/:id", req -> { int id = req.param("id").intValue(); EntityManager em = emf.createEntityManager(); User user = em.find(User.class, id); em.close(); if (user == null) { } return user; }); put("/users/:id", req -> { int id = req.param("id").intValue(); User user = req.body(User.class); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); try { tx.begin(); user.setId(id); em.merge(user); tx.commit(); } catch (Exception e) { tx.rollback(); throw e; } finally { em.close(); } return user; }); delete("/users/:id", req -> { int id = req.param("id").intValue(); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); try { tx.begin(); User user = em.find(User.class, id); em.remove(user); tx.commit(); } catch (Exception e) { tx.rollback(); throw e; } finally { em.close(); } return new Result().status(Status.NO_CONTENT); }); } public static void main(String[] args) { run(UserController.class, args); } } mvn clean package java -jar target/myapp-1.0-SNAPSHOT.jar


上一篇:
下一篇:
切换中文