java - 使用 java 更新数据库条目

标签 java mysql jsp

我似乎无法在任何地方找到这个问题的直接答案,我正在尝试使用 java 类更新现有的数据库条目。用户在 jsp 页面上的表单中输入详细信息,然后调用 servlet 并将这些值分配给用户对象。然后将该对象传递给编辑配置文件方法以执行数据库操作。

当我尝试合并它的对象时,它会创建一个新条目,当我创建更新查询并传递它不会更新时。有人可以给我一个如何使用 java 进行更新的示例吗?

Java:

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 的详细概述(请参阅将其全部放在一起的部分)

https://glassfish.java.net/javaee5/persistence/persistence-example.html

当您真正应该更新对象,然后告诉实体管理器合并更改(将它们保存到数据库中)时,您正在使用字符串调用 em.merge()。

您制作的 UPDATE 语句类似于您使用 JDBC 执行的方式,但是您将使用 Connection/PreparedStatement 与 ?对于参数/等...看起来您的示例代码是基于 JPA 的。

关于java - 使用 java 更新数据库条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23618147/

相关文章:

java - 从 Java 在 MySQL 中创建临时表

php - 错误插入

mysql - 从 EC2 服务器上安装的 phpMyAdmin 连接到 RDS 实例

java - 如何从数据库加载并重置 Web 应用程序中的配置映射

java - Spring Data MongoDB 使用 DBRef 按嵌套属性(非 ID)查找

java - indexof 索引越界异常

java - 在 chrome 上加载应用程序后 IE 没有响应,但工作正常

java - 从jsp中的数据表中获取选定复选框的值

java - 使用递归和 JSTL 在 jsp 上显示树结构

Java,在开发过程中使用Groovy(Grails)只是为了能够测试代码而无需重新编译?