나는 어디서나이 답변을 찾을 수없는 것 같습니다. 자바 클래스를 사용하여 기존 데이터베이스 항목을 업데이트하려고합니다. 사용자는 JSP 페이지의 양식에 세부 정보를 입력 한 다음 서블릿을 호출하고이 값을 사용자 객체에 할당합니다. 그런 다음이 객체를 편집 프로필 메서드에 전달하여 데이터베이스 작업을 수행합니다.자바를 사용하여 데이터베이스 항목 업데이트
개체를 병합하려고하면 업데이트 쿼리를 만들고 업데이트하지 않고 전달할 때 새 항목이 만들어집니다. 누군가 제게 java를 사용하여 업데이트를 수행하는 방법에 대한 예를 들려 주시겠습니까?
자바 : 당신이 바로 JDBC와 JPA를 혼동처럼
public static void editUserProfile(User editUser) {
try{
factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
EntityManager em = factory.createEntityManager();
System.out.println("In edit profile Method");
int ID = editUser.get_Id();
String name = editUser.getName();
String address1 = editUser.getAddress1();
String address2 = editUser.getAddress2();
String county = editUser.getCounty();
String phone = editUser.getTelephone();
String email = editUser.getEmail();
String website = editUser.getWebsite();
String information = editUser.getInformation();
String password = editUser.getPassword();
String searchQuery = "UPDATE User SET name='"+name+"' address1='"+address1+"' address2='"+address2+"' "
+ "county='"+county+"' phone='"+phone+"' email='"+email+"' website='"+website+"' "
+ "information='"+information+"' password='"+password+"' WHERE id='"+ID+"'";
// Update user in the database
em.getTransaction().begin();
//Query r = em.createNativeQuery(searchQuery);
em.merge(searchQuery);
em.getTransaction().commit();
em.close();
쿼리에 string-bash를 사용하지 말 것을 강력히 권장합니다. PreparedStatement를 만들고 변수를 추가하십시오. 그렇지 않으면 나중에 모든 종류의 SQL 주입 문제가 발생합니다. –
오류 : JPA에서 createQuery 및 명명 된 매개 변수를 사용하십시오. –
@Tripp Kinetics는 제게 제발 제발 도와 주실 래요? – SteveK