-1
그리고 다음과 같은 스크립트 (연결 문자열과 같은 민감한 내용이있을 수 있으므로 청소)가 적용됩니다. DB 사용자 이름과 암호가 하드 코딩 된 것에 대해 걱정하고 있습니다. 실행하면서 문자열을 전달하는 방법을 알아 내려고 노력했지만 기쁨은 없습니다.유닉스를 통한 Java, 하드 코딩 된 문자열 대신 인수 전달
import java.io.PrintStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class map_check {
private static final String CONNECT = "ConnectionString goes here";
private static final String Query1 = "SELECT 1 \n"+
" , 2 \n"+
" , 3 \n"+
" , 4 \n"+
" , 5 \n"+
" , 6 \n"+
" , 7 \n"+
" , 8 \n"+
"FROM db.tab.log \n"+
"where CONVERT(VARCHAR(19),StartTime,104) \n"+
"= CONVERT(VARCHAR(19),GETDATE(),104) \n"+
"order by starttime asc";
private static final String SQLUSER = "**SCOTT**";
private static final String SQLPSWD = "**TIGER**";
public static void main(String[] paramArrayOfString) {
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver");
} catch (ClassNotFoundException localClassNotFoundException1) {
System.out.print("ClassNotFoundException: ");
System.out.println(localClassNotFoundException1.getMessage());
System.exit(2);
}
try {
Connection SQL_CONN = DriverManager.getConnection(CONNECT, SQLUSER, SQLPSWD);
Statement SQL_Stmt = SQL_CONN.createStatement();
ResultSet SQL_RS = SQL_Stmt.executeQuery(Query1);
String format = "%-40s%s%n";
System.out.println("1, 2, 3, 4, 5, 6, 7, 8");
while (SQL_RS.next()) {
System.out.println(SQL_RS.getString("1")+","+
SQL_RS.getString("2")+","+
SQL_RS.getString("3")+","+
SQL_RS.getString("4")+","+
SQL_RS.getString("5")+","+
SQL_RS.getString("6")+","+
SQL_RS.getString("7")+","+
SQL_RS.getString("8"));
}
SQL_Stmt.close();
SQL_CONN.close();
System.exit(0);
} catch (SQLException localSQLException) {
System.err.println("SQLException: " + localSQLException.getMessage());
}
}
}
나는 모두를 거꾸로하고 있다고 생각하는데, 나는 다음 "시도"안에 그들을 어둡게해야합니까?
문자열을 전달할 때의 문제는 무엇입니까? 명령 줄을 통해 프로그램을 실행하면 공백으로 구분 된 인수를 줄 수 있으며 명령 줄에서 제공 한 순서대로 기본 메서드 String []에 제공됩니다. 매개 변수 인덱스를 기반으로 액세스 할 수 있습니다. 그게 네가하고 싶은 일이 아닌가? 실례합니다.하지만 여기서 필요한 것이 무엇인지 명확하게 알 수는 없습니다. 또한 디밍으로 무엇을 의미합니까? – prabugp
'DriverManager.getConnection (CONNECT, paramArrayOfString [0], paramArrayOfString [1])은''그냥''args '라고 부릅니다. –
사과, 나는 Java를 처음 사용하는데 수업을 들으려고 노력하고 있습니다. SQLUSER = "** SCOTT **"및 SQLPSWD = "** TIGER **"에서 실행하지만 args [0] 및 args [1]로 실행하면 호출 할 수 있습니까? java -cp jtds-1.2.2.jar :와 함께 실행합니다. class_name이며, java -cp jtds-1.2.2.jar :와 같은 것을하고 싶습니다. map_check "SCOTT" "TIGER", 조금 잘못하고있는 것 같습니다 :/ –