public String getName() { return name; } public void setName(String name) { this.name = name; }
@Override public List<User> getAllUsers() { return userDAO.getAllUsers(); }
public interface UserDAO { void saveUser(User user); User getUserById(Long id); List<User> getAllUsers(); void updateUser(User user); void deleteUser(Long id); } package com.example.dao; import com.example.model.User; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.query.Query; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; import java.util.List;
@NotEmpty(message = "Name cannot be empty") @Size(min = 2, max = 50, message = "Name must be between 2 and 50 characters") @Column(name = "name", nullable = false) private String name; spring mvc with hibernate example
@Override public void saveUser(User user) { Session session = sessionFactory.getCurrentSession(); session.saveOrUpdate(user); }
@Column(name = "age") private int age;
@Bean public ViewResolver viewResolver() { InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setViewClass(JstlView.class); resolver.setPrefix("/WEB-INF/views/"); resolver.setSuffix(".jsp"); return resolver; } } package com.example.config; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; public String getName() { return name; } public
public String getEmail() { return email; } public void setEmail(String email) { this.email = email; }
@Override public void deleteUser(Long id) { Session session = sessionFactory.getCurrentSession(); User user = session.get(User.class, id); if (user != null) { session.delete(user); } } } UserService Interface package com.example.service; import com.example.model.User; import java.util.List;
@Bean public LocalSessionFactoryBean sessionFactory() { LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean(); sessionFactory.setDataSource(dataSource()); sessionFactory.setPackagesToScan("com.example.model"); sessionFactory.setHibernateProperties(hibernateProperties()); return sessionFactory; } public String getName() { return name
public User(String name, String email, int age) { this.name = name; this.email = email; this.age = age; }
@GetMapping("/showForm") public String showFormForAdd(Model model) { model.addAttribute("user", new User()); return "user-form"; }
@Autowired private SessionFactory sessionFactory;
@Bean public DataSource dataSource() { DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/userdb?useSSL=false"); dataSource.setUsername("root"); dataSource.setPassword("password"); return dataSource; }
@Autowired private UserDAO userDAO;