21. Spring JDBC
@Repository
public class CustomerRepository {
@Autowired
private NamedParameterJdbcTemplate jdbcTemplate;
public List<Customer> findAll() {
return jdbcTemplate.query(
"SELECT * FROM customers ORDER BY id",
new BeanPropertyRowMapper<Customer>(Customer.class));
}
public void update(Customer customer) {
jdbcTemplate.update(
"UPDATE customers SET name = :name, address = :address WHERE id = :id",
new BeanPropertySqlParameterSource(customer));
}
}
22. Spring DATA JPA
• spring-boot-starter-data-jpa
• JPA
• JPA EntityManager Interface
23. Spring DATA JPA
@Entity
@Table(name = "customers")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Customer {
@Id
@GeneratedValue
private Integer id;
private String name;
private String address;
}
24. Spring DATA JPA
@Service
public class CustomerService {
@Autowired
private CustomerRepository customerRepository;
public List<Customer> findAll() {
return customerRepository.findAll();
}
public List<Customer> findByName(String name) {
return customerRepository.findByName(name);
}
public Customer create(Customer customer) {
return customerRepository.save(customer);
}
@Repository
public interface CustomerRepository extends JpaRepository<Customer, Integer> {
public List<Customer> findByName(String name);
}
25. REST API
• CRUD API
• RDBMS H2
• Spring DATA JPA
• Flyway DB
• Swagger