java - 值没有转储到表 temp_demo 中

标签 java mysql jdbc

我编写了这段代码来从表中删除重复的条目,然后将其插入到另一个表中。 代码已执行,但值未更新到表中。 Query4 没有被执行。 任何的意见都将会有帮助。 谢谢。

import java.sql.Connection;
import java.sql.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;
public class duplicate
{
    public static void main(String args[])
    {
        Statement stat=null,stat1=null,stat2=null;
        Connection con=null;
        ResultSet result1,result2;
        int s_id=0;
        String date=null,time=null,temp=null;
        try
        {
            Class.forName("com.mysql.jdbc.Driver");
            System.out.println("Loaded Driver");
            con=DriverManager.getConnection("jdbc:mysql://localhost:3306/preprocessor","root","bigdata");
            System.out.println("Connected to mysql");
            stat=con.createStatement();
            stat1=con.createStatement();
            stat2=con.createStatement();
            String query1="insert into temperature_demo(ddslno,ddtstation_id,ddtdate,ddttime,ddtemp,ddtype_code,ddelevation) select dslno,dtstation_id,dtdate,dttime,dtemp,dtype_code,delevation from temperature_dup where dslno=1";
            String query2="select * from temperature_demo";
            String query3="select * from temperature_dup";
            stat1.execute(query1);
            result1=stat1.executeQuery(query2);
            result2=stat2.executeQuery(query3);

                while(result1.next())
                {
                    s_id=result1.getInt(2);
                    date=result1.getString(3);
                    time=result1.getString(4);
                    temp=result1.getString(5);
                    break;
                }
                while(result2.next())
                {
                    int sno=result2.getInt(1);
                    int s1_id=result2.getInt(2);
                    String date1=result2.getString(3);
                    String time1=result2.getString(4);
                    String temp1=result2.getString(5);
                    String type_cd=result2.getString(6);
                    String elev=result2.getString(7);
                    String query4="insert into temperature_demo values(sno,s1_id,'date1','time1','temp1','type_cd','elev')";
                    try
                    {
                    if( (s_id==s1_id)&&(date.equals(date1))&&(time.equals(time1))&&(temp.equals(temp1)) )
                        ;
                    else
                    {
                        System.out.println(sno+" "+s1_id+" "+date1);
                        stat1.execute(query4);
                    }
                    }
                    catch(Exception ex)
                    {

                    }
                }

        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
        finally
        {
            if(con!=null)
                try
                {
                    con.close();
                }
                catch(Exception ex)
                {

                }
            if(stat1!=null)
                try
                {
                    stat1.close();
                }
                catch(Exception ex)
                {

                }
            if(stat2!=null)
                try
                {
                    stat2.close();
                }
                catch(Exception ex)
                {

                }
        }
    }
}

最佳答案

我进行了更改,以下代码是结果。 准备好的语句pstat; pstat=con.prepareStatement("插入温度演示值(?,?,?,?,?,?,?)"); while(结果2.下一个()) { int sno=result2.getInt(1); int s1_id=result2.getInt(2); 字符串 date1=result2.getString(3); String time1=result2.getString(4); 字符串 temp1=result2.getString(5); String type_cd=result2.getString(6); String elev=result2.getString(7);

                    try
                    {
                    if( (s_id==s1_id)&&(date.equals(date1))&&(time.equals(time1))&&(temp.equals(temp1)) )
                        ;
                    else
                    {
                        System.out.println(sno+" "+s1_id+" "+date1);
                        pstat.setInt(1,sno);
                        pstat.setInt(2,s1_id);
                        pstat.setString(3,date1);
                        pstat.setString(4,time1);
                        pstat.setString(5,temp1);
                        pstat.setString(6,type_cd);
                        pstat.setString(7,elev);
                    }

else block 中的第一条语句似乎执行得很好。以下 pstat 语句(pstat 是一个 preparedStatement 变量)未执行

关于java - 值没有转储到表 temp_demo 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22685382/

相关文章:

mysql - SQL 错误 : 1170

java - 如何使用flyway创建数据库?

java - Google Maps Android API 如何检查是否达到配额限制?

php - 安排推文 PHP 和 Cron

从服务器检索多行时出现php错误

java - SQLite:java/jdbc-sqlite 和 python/sqlite3 之间的区别

java - com.mysql.jdbc.exceptions.jdbc4.CommunicationsException : Communications link failure

java - Spring Boot Actuator 自定义 RestControllerEndpoint 与类级别的 RequestMapping 注解

java - 将 JPanel 绘制到 BufferedImage 或打印它而不先将其渲染到屏幕

Java 10,Intellij 警告(类未导出,在同一模块中访问)