I do not speak English well
An error occurred while doing JDBC.
I knew during coding that ' executequery ' should only be done by ' select ' in the database, and ' insert ' should be ' executeupdate '.
However, when I did executeupdate, I had a problem with the variable and changed it to " int "
Then an error occurred.
How can it be carried out as I intended?
I'll show you the code.
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
public class EdgeCloud {
    static ArrayList<String> deleteDB = new ArrayList<>();      
    static ArrayList<String> DBCarIP = new ArrayList<>();       
    static ArrayList<String> ContainerCarIP = new ArrayList<>();
    static String carSSID = "192.0.1";                              
    static String state;                                        
    static String upDateInputContainer;                         
    static String upDateInputCar;                               
    static int i = 0;                                           
    static String cIP;                                                                                              
    //-------------------------------------------(    main start   )----------------------------------------------------//
    public static void main(String[] args) throws Exception {
System.out.println("main start");
        while(true) {                           
//              JDBC(state="check");
                if(carSSID!=null) {                                 
                    makeContainer();                                
            }else {
                UPDATE();                                       
            }
        }
    }
    //-------------------------------------------(    main end    )----------------------------------------------------//
    //-------------------------------------------(    make container start   )----------------------------------------------------//
    public static void makeContainer() throws Exception {
        System.out.println("mc start");
        String makeContainer = "/usr/local/bin/docker run --name "+carSSID+" ubuntu:16.04"; 
        Runtime runtime = Runtime.getRuntime();
        Process process = runtime.exec(makeContainer);                              
        InputStream is = process.getInputStream();                                      
        InputStreamReader isr = new InputStreamReader(is);                                  
        BufferedReader br = new BufferedReader(isr);                                        
        String line;
        while((line = br.readLine()) != null) {                                             
            System.out.println(line);                                                   
        }
        String ipload = "/usr/local/bin/docker inspect -f {{.NetworkSettings.IPAddress}} "+carSSID; 
        IPLoad(ipload);                                             
    }
//-------------------------------------------(    make container end    )----------------------------------------------------//
//-------------------------------------------(    get container ip start   )----------------------------------------------------//
    public static void IPLoad(String ipload) throws Exception {
        System.out.println("ipload start");
        upDateInputCar = null;                                      
        upDateInputContainer = null;                                
        upDateInputCar = carSSID;                                   
        carSSID = null;                                             
        state = "insert";                                           
        Runtime runtime = Runtime.getRuntime();
        Process process = runtime.exec(ipload);                     
        InputStream is = process.getInputStream();
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader br = new BufferedReader(isr);
        while((cIP = br.readLine()) != null) {                      
            upDateInputContainer= cIP;                              
        System.out.println("cip : "+cIP);
        }
        System.out.println("upd"+upDateInputContainer);
        JDBC(state);                                                
    }
//-------------------------------------------(    get container ip end    )----------------------------------------------------//
//-------------------------------------------(    update start    )----------------------------------------------------//
    public static void UPDATE() throws Exception {                                  
        state = "check";                                                        
        JDBC(state);                                                                
        String getContainerName = "/usr/local/bin/docker ps --format {{.Names}}";   
        Runtime runtime = Runtime.getRuntime();
        Process process = runtime.exec(getContainerName);                           
        InputStream is = process.getInputStream();
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader br = new BufferedReader(isr);
        String line;
        while((line = br.readLine()) != null) {                                     
            ContainerCarIP.add(line);                                               
        }
        deleteDB.addAll(DBCarIP);                                                   
        deleteDB.removeAll(ContainerCarIP);                                         
        if(deleteDB.get(0)!=null) {                                                 
            state="delete";                                                     
            while(deleteDB.get(i++)!=null) {                                    
                //JDBC(state);                                                      
            }
            i = 0;                                                              
        }
    }
//-------------------------------------------(    update end    )----------------------------------------------------//
//-------------------------------------------(    socket start    )----------------------------------------------------//
/*socket place
-
-
-
-
-
-
*/
//-------------------------------------------(    soket end    )----------------------------------------------------//
//-------------------------------------------(    JDBC start    )----------------------------------------------------//
    public static void JDBC(String state){ 
        System.out.println("JDBC start");
        Connection conn = null ;  
        Statement stmt = null;  
        String query = null;
        if(state=="insert") {           
            query = "insert into inpo (ip, carid) values ('"+upDateInputContainer+"', '"+upDateInputCar+"')";   
            System.out.println(query);
        }
        if(state=="delete") {
            query = "delete from inpo where carid = " +deleteDB.get(i);                                     
    }
    if(state=="check") {
        query = "select carid from inpo";                                                           
    }
    try{
        Class.forName("com.mysql.cj.jdbc.Driver").newInstance();  
    }
    catch(ClassNotFoundException e ){  
        System.out.println( "드라이버 연결 에러." ) ;  
    }
    catch(Exception etc) {  
        System.out.println(etc.getMessage());  
    }
    try{
//          String url = "jdbc:mysql://192.168.44.122:3306/ssidIp?serverTimezone=UTC&autoReconnect=true&useSSL=false";  
        String url = "jdbc:mysql://localhost:3306/ssidIp?serverTimezone=UTC&autoReconnect=true&useSSL=false";  
        String userPass = "123456789" ;  
        conn = DriverManager.getConnection(url, userId, userPass);  
        stmt = conn.createStatement();  
        ResultSet rs = null;  
        int rss = 0;
        if(state=="check") {
            rs = stmt.executeQuery(query);  
        }else {
            rss = stmt.executeUpdate(query);  
        }//////////////////////////////////////////////////////
        if (state=="check") {
            rs = stmt.getResultSet();  
        }
        System.out.println("------------------------------------");
        System.out.println("debug1 ");
        if(state=="check") {                                
            System.out.println("debug 2");
            while (rs.next()) {                                     
                String str = rs.getNString(1);  
                DBCarIP.add(str);                               
            }
        }else {
            System.out.println("debug 3");
             while(rs.next()) {                                     // here NullpointerException 
                System.out.println("debug 4");
                String str = rs.getNString(1); 
                System.out.println(str);
            }
        }
        System.out.println("연결");  
        stmt.close();  
        conn.close();
        }
        catch( SQLException e ){  
            System.out.println( "SQLException : " + e.getMessage() ) ;  
        }       
    }
}    
        //-------------------------------------------(    JDBC end    )----------------------------------------------------//
ERROR part
main start
mc start
ipload start
cip : 172.17.0.3
upd172.17.0.3
JDBC start
insert into inpo (ip, carid) values ('172.17.0.3', '192.0.1')
------------------------------------
    debug1 
    debug 3
Exception in thread "main" java.lang.NullPointerException
    at edgeCloud.EdgeCloud.JDBC(EdgeCloud.java:195)
    at edgeCloud.EdgeCloud.IPLoad(EdgeCloud.java:86)
    at edgeCloud.EdgeCloud.makeContainer(EdgeCloud.java:61)
    at edgeCloud.EdgeCloud.main(EdgeCloud.java:33)
 
    