Introduce Hibernate is a ORM framework that implementes the JPA API.
Use Hibernate 1 2 3 4 5 6 7 8 9 10 @Configuration @ComponentScan @EnableTransactionManagement @PropertySource("jdbc.properties") public class AppConfig { @Bean DataSource createDataSource () { ... } }
Create SessionFactory 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 public class AppConfig { @Bean LocalSessionFactoryBean createSessionFactory (@Autowired DataSource dataSource) { var props = new Properties(); props.setProperty("hibernate.hbm2ddl.auto" , "update" ); props.setProperty("hibernate.dialect" , "org.hibernate.dialect.HSQLDialect" ); props.setProperty("hibernate.show_sql" , "true" ); var sessionFactoryBean = new LocalSessionFactoryBean(); sessionFactoryBean.setDataSource(dataSource); sessionFactoryBean.setPackagesToScan("com.itranswarp.learnjava.entity" ); sessionFactoryBean.setHibernateProperties(props); return sessionFactoryBean; } @Bean HibernateTemplate createHibernateTemplate (@Autowired SessionFactory sessionFactory) { return new HibernateTemplate(sessionFactory); } @Bean PlatformTransactionManager createTxManager (@Autowired SessionFactory sessionFactory) { return new HibernateTransactionManager(sessionFactory); } }
Create Entity Class 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 @Entity @Table(name = "...") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(nullable = false, updatable = false) public Long getId () { ... } @Column(nullable = false, unique = true, length = 100) public String getEmail () { ... } @Column(nullable = false, length = 100) public String getPassword () { ... } @Column(nullable = false, length = 100) public String getName () { ... } @Column(nullable = false, updatable = false) public Long getCreatedAt () { ... } }
Save Entity 1 2 3 4 5 6 7 8 9 10 public User register (String email, String password, String name) { User user = new User(); user.setEmail(email); user.setPassword(password); user.setName(name); hibernateTemplate.save(user); System.out.println(user.getId()); return user; }