java - 将数据插入动态创建的表列时面临的问题

标签 java mysql database

我使用更改表查询通过代码动态地将列添加到数据库中的表中。 但当我尝试在该列中插入值时,我遇到了问题。它抛出一个异常列不存在。 当我通过 netbeans 清理并重建我的项目时,它工作得很好。

我使用java和mysql作为数据库。

有谁知道这个问题的解决方案吗?

以下是我的更改表查询代码

     String alterTableQuery ="alter table `test` add `abc` varchar(50) NOT NULL default ''";
     stmt = conn.prepareStatement(alterTableQuery);
     boolean val = stmt.execute();

我正在尝试使用以下代码插入数据。

      String sqlQuery = "insert into `test` (`id`,`abc`) values (?)" ;
      stmt = conn.prepareStatement(sqlQuery);
      boolean val = stmt.execute();

最佳答案

您也可以重新考虑您的设计。一般来说,通过用户界面向表添加列是一种不好的做法。也许您需要更规范的设计。数据库结构的改变不应该来自用户。如果不同的用户同时进行更改,则可能会造成真正的困惑。此外,用户不应具有添加列的安全权限。这对您的系统来说是一个主要风险。

关于java - 将数据插入动态创建的表列时面临的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/618919/

相关文章:

mysql - 删除和插入会为键 PRIMARY 抛出重复条目

php - 不会组团吗?

javascript - Android 或 Iphone 中存储的 phonegap 数据库在哪里?

Java - 关于性能和内存使用,为什么最好将字符串使用到静态字段中,而不是每次需要时都声明它?

java - Spring Boot中可以通过依赖注入(inject)来完成请求验证吗?

MySQL基于当前行查询行

sql - 使用 group by 时出错

java - 将文本中写入的数字相加所需的循环

java - 通过组件构造函数 Autowiring 静态成员

android - 如何从apk文件中获取数据库文件?