Check input from user
You are using prepared statements which is good, but why does your query return all columns ? A simple SELECT USERID FROM TABL0001 WHERE USERID = ? would be enough and if multiple users access this code, the database load would be low which is good.  



The checkUserID() method is returning an int which only will be either 0 or 1 and this is screaming for a boolean which also would simplify the method. Also the name of the method is a little bit  misleading. A better name would be existUserID    

Like  

public boolean existUserID (String userID) throws SQLException {

    String sql = "SELECT * FROM TABL0001 WHERE USERID = ?";     

    PreparedStatement pstmt = conn.prepareStatement(sql);
    pstmt.setString(1,  userID);
    resultSet = pstmt.executeQuery();

    return resultSet.next();
}  




You aren't closing the database connection. Also, because you are  always creating a new CustomerInfo you really should make the former checkUserID() method static and create the connection there.  

If you are using Java 7 or above you should use try with ressources to ensure that for any exception that the ressources are closed. 

If you are using Java prior version 7 you should use a finally block where you the close the ressources.   



The name readInput does not really say much. You should always use meaningfull names for classes, methdos and parameters. Also readInput would let me think I would get something back, but no, the method is void.  




boolean UserIDExists = false;  



should be named using camelCase casing.  



Instead of while(!userIDExists) you should just make while(true) and if the userid does not exists just break; out of the loop.  

while (true) {

    this.userID = input.readLine();

    while (this.userID.length() != 10) {


        System.out
                .println("Input must be 10 digits. Type again: :");
        this.userID = input.readLine();

    }

    // assuming existUserId() is static
    if (CustomerInfo.existUserId(this.userId)) {
        break;
    }
    System.out.println("UserID exists already. Type again:");
}


by extracting the reading from the input stream to a separate method this can be simplified some more and will reduce the responsebilities of the method.  

private String readUserInput(String message) {

    System.out.println(message);

    BufferedReader input = new BufferedReader(new InputStreamReader(System.in));        
    return input.readLine();
}


leading to  

String message = "UserID (10-digits):";
while (true) {

    this.userID = readUserInput(message);

    while (this.userID.length() != 10) {

        this.userID = readUserInput("Input must be 10 digits. Type again: ");

    }

    // assuming existUserId() is static
    if (!CustomerInfo.existUserId(this.userId)) {
        break;
    }
    message = "UserID exists already. Type again:";
}




Based on the comment I changed the above implementation to break if the userId does not exists. But hey, the variable you formerly used UserIDExists is very very very !! misleading. One would assume (like I did) if a userId exists then the boolean variable UserIDExists would become true !