【问题标题】:To generate data into insert statement在插入语句中生成数据
【发布时间】:2016-08-29 18:03:40
【问题描述】:
   try{
      Class.forName("com.mysql.jdbc.Driver");

      System.out.println("Connecting to a selected database...");
      conn = DriverManager.getConnection(DB_URL, USER, PASS);
      System.out.println("Connected database successfully...");

      System.out.println("Inserting records into the table...");
      stmt = conn.createStatement();


for (int j = 0; j < 30; j++) 
{
              int a = 230 + j % 15;
              String String = Integer.toString(a);
              String str = Integer.toString(a);


              double b = 1.3 + j % 17 * 0.1; 
              String aString = Double.toString(b);
              String IKW2 = String.valueOf(b);

     String sql ="INSERT INTO cmd";
    sql +="VALUES" + "("+ a +b ")";           

        stmt.executeUpdate(sql);
   }
      catch(SQLException se){
      se.printStackTrace();
   }

这里我已经做了jdbc连接,想导入数据 进入mysql。所以使用了插入语句。在堆栈跟踪中 显示连接已完成,但存在语法错误异常。 我想生成数据,然后想打印所有要导入的数据 在分贝。我的插入查询有误吗??

【问题讨论】:

  • 如果要插入两个值,则在值 INSERT INTO table_name VALUES (value1 , value2 , value3,. ..);您还应该链接到PreparedStatement
  • 避免像String String = ...这样声明变量,这会造成混淆!
  • cmd表的结构是什么?
  • @Stoffl 我不想给出一个值,因为有超过 700 个值所以我想打印出来
  • 为什么你在 for 循环中声明了多个 String 对象却从不使用它们?

标签: java mysql jdbc


【解决方案1】:

您应使用准备好的语句。以下步骤将对您有所帮助。

  1. 预先计算所有列值 a、b、c 等。
  2. 创建一个Prepared Statement(假设表中有三列)

    PreparedStatement ps = con.prepareStatement("INSERT INTO CMD VALUES(?,?,?)");

  3. 使用PreparedStatement#setXXX方法设置参数值

  4. 执行准备好的语句

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-05
    • 1970-01-01
    相关资源
    最近更新 更多