Spring Data Jpa 使用EntityManager执行SQL操作数据

时间:2025-04-11 17:49:26
import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.transaction.Transactional; import java.util.List; @Transactional public class MyService { @PersistenceContext//@Autowired private EntityManager entityManager; // 插入数据 public void insertData(String name, int age) { String sql = "INSERT INTO person (name, age) VALUES (?, ?)"; entityManager.createNativeQuery(sql) .setParameter(1, name) .setParameter(2, age) .executeUpdate(); } // 查询数据 public List<Object[]> getAllPersons() { String sql = "SELECT * FROM person"; return entityManager.createNativeQuery(sql).getResultList(); } // 带查询条件的查询。my_entity_table是表名,status是表字段名 public List<MyEntity> findEntitiesWithStatus(String status) { String sql = "SELECT * FROM my_entity_table WHERE status = :status"; return entityManager.createNativeQuery(sql, MyEntity.class) .setParameter("status", status) .getResultList(); } // 更新数据 public void updatePersonAge(String name, int newAge) { String sql = "UPDATE person SET age = ? WHERE name = ?"; entityManager.createNativeQuery(sql) .setParameter(1, newAge) .setParameter(2, name) .executeUpdate(); } // 删除数据 public void deletePerson(String name) { String sql = "DELETE FROM person WHERE name = ?"; entityManager.createNativeQuery(sql) .setParameter(1, name) .executeUpdate(); } }