Как сохранить данные в PostgreSQL в Spring Data JDBC?

Для сохранения данных в PostgreSQL с использованием Spring Data JDBC вы можете использовать несколько подходов: использование аннотаций JPA, создание репозитория или написание собственного кода для выполнения SQL-запросов.

1. Использование аннотаций JPA:
- Ваш класс сущности должен быть аннотирован аннотацией @Entity.
- Укажите имя таблицы с помощью аннотации @Table.
- Аннотируйте поля класса аннотациями @Id, @GeneratedValue и другими соответствующими аннотациями для указания первичного ключа, автоматической генерации значений и других свойств полей.
- Создайте интерфейс репозитория, расширяющий CrudRepository или JpaRepository. В этом интерфейсе можно определить пользовательские методы для выполнения запросов.
- Используйте аннотации @Transactional и @Autowired, чтобы управлять транзакциями и внедрением зависимостей.

2. Создание репозитория:
- Создайте интерфейс репозитория, расширяющий CrudRepository или JpaRepository.
- Для сохранения данных используйте метод save() этого интерфейса, передавая объект, который нужно сохранить.

3. Написание собственного кода для выполнения SQL-запросов:
- Создайте класс для доступа к базе данных и аннотируйте его аннотацией @Repository.
- Используйте JdbcTemplate для выполнения SQL-запросов. Создайте экземпляр JdbcTemplate, внедрив его при помощи аннотации @Autowired.
- Напишите методы для выполнения запросов и используйте методы update() или batchUpdate() класса JdbcTemplate для сохранения данных в базу данных.

Пример использования аннотаций JPA:

@Entity
@Table(name = "users")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    private String name;
    
    // геттеры и сеттеры
}

@Repository
public interface UserRepository extends CrudRepository<User, Long> {
}

@Service
@Transactional
public class UserService {
    @Autowired
    private UserRepository userRepository;

    public void saveUser(User user) {
        userRepository.save(user);
    }
}

Пример использования JdbcTemplate:

@Repository
public class UserRepository {
    @Autowired
    private JdbcTemplate jdbcTemplate;

    public void saveUser(User user) {
        String sql = "INSERT INTO users (name) VALUES (?)";
        jdbcTemplate.update(sql, user.getName());
    }
}

Это лишь примеры, и вы можете настроить код сущности и репозитория по своему усмотрению.