使用java更新数据库条目
我似乎在任何地方都找不到直接的答案,我正在尝试使用java类更新现有的数据库条目。用户在jsp页面上的表单中输入他们的详细信息,然后jsp页面调用servlet并将这些值分配给用户对象。然后将此对象传递给编辑配置文件方法以执行数据库操作 当我尝试将其与对象合并时,它会创建一个新条目,当我创建更新查询并传递它不更新的消息时。有人能给我举个例子,说明如何使用java进行更新吗 Java:使用java更新数据库条目,java,mysql,jsp,Java,Mysql,Jsp,我似乎在任何地方都找不到直接的答案,我正在尝试使用java类更新现有的数据库条目。用户在jsp页面上的表单中输入他们的详细信息,然后jsp页面调用servlet并将这些值分配给用户对象。然后将此对象传递给编辑配置文件方法以执行数据库操作 当我尝试将其与对象合并时,它会创建一个新条目,当我创建更新查询并传递它不更新的消息时。有人能给我举个例子,说明如何使用java进行更新吗 Java: public static void editUserProfile(User editUser) {
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();
您似乎混淆了JPA和纯JDBC 这里有一个很好的JPA概述(请参阅将所有内容放在一起的部分) 您正在使用字符串调用em.merge(),此时实际上应该更新对象,然后告诉实体管理器合并更改(这会将更改保存到数据库)
您所编写的UPDATE语句在某种程度上是使用JDBC的方式,但是您将使用Connection/PreparedStatement?有关参数/等。。。似乎您的示例代码是基于JPA的。我强烈建议您不要将bash串入查询中。创建PreparedStatement并在中添加变量。否则,您以后会遇到各种SQL注入问题。呃,在JPA中,请使用createQuery和命名参数。@Tripp Kinetics您介意给我举个例子吗?我一直在寻找更好的例子。这是迄今为止我发现的最好的一个:它应该类似于
em.merge(editUser)
而不是em.merge(searchQuery)代码>。然后,您需要做的就是让User
成为一个合适的JPA实体。之后,你需要去掉你的代码中间部分的代码> EddiuSeriPrime<代码>方法(因为它们将是无用的)。最后,您还需要正确地实例化EntityManager
、它的“工厂”和PU。就这样,你完了。