Вы можете сделать это с помощью JPA.
Вот небольшой пример:
Сначала вам нужно создать свою сущность, которая является «зеркалом» вашей таблицы базы данных:
@Entity(name = "Seller")
@Table(name = "SELLER") // your table name
public class Seller {
@Id
@Column(name = "id") // your column name
private Long id;
@Column(name = "name")
private String sellerName;
@Column(name = "email")
private String sellerEmail;
...
}
Затем вы можете использовать интерфейс JpaReporitory и CrudRepository, который будет делать то, что вы хотите:
@Repository
public interface Repository<Seller> extends JpaRepository<Seller, Long> {
}
Тогда DAO:
public class SellerDaoImpl implements SellerDao {
SellerRepository repository;
public SellerDaoImpl(SellerRepository repository) {
this.repository = repository;
}
@Override
@Transactional
public Seller create(Seller toCreate) {
return this.repository.save(toCreate);
}
}
Ваш сервис должен выглядеть следующим образом:
public SellerServiceImpl implements SellerService {
SellerMapper mapper;
SellerDao dao;
public SellerServiceImpl(SellerMapper mapper, SellerDao dao) {
this.mapper = mapper;
this.dao = dao;
}
@Override
@Transactional
public SellerDto registerSeller(SellerDto toRegister) {
Seller entity = this.mapper.mapDto(toRegister);
return this.mapper.mapEntity(this.dao.create(entity));
}
}
Ваш DTO (в основном ваш продавецBean):
public class SellerDto {
private String sellerName;
private String sellerEmail;
...
}
И ваш маппер:
public class SellerMapper {
public SellerDto mapEntity(Seller entity) {
if (entity == null) {
return null;
}
SellerDto dto = new SellerDto();
dto.setSellerName(entity.getSellerName());
dto.setSellerEmail(entity.getSellerEmail());
...
return dto;
}
public Seller mapDto(SellerDto dto) {
if (dto == null) {
return null;
}
Seller entity = new Seller();
entity.setSellerName(dto.getSellerName());
entity.setSellerEmail(dto.getSellerEmail());
...
return entity;
}
}
Не забудьте о конфигурации Бина:
@Configuration
@EnableJpaRepositories(basePackageClasses = SellerRepository.class)
@EntityScan(basePackageClasses = SellerConfiguration.class)
public class SellerConfiguration {
@Bean
public SellerModelMapper sellerModelMapper() {
return new SellerModelMapper();
}
@Bean
public SellerDao sellerDao(SellerRepository repository) {
return new SellerDao(repository);
}
@Bean
public SellerService sellerService(SellerMapper mapper, SellerDao dao) {
return new SellerService(mapper, dao);
}
}