Properties 파일은 한 라인에 key=value
형식으로 작성하고 .properties 확장자를 붙여 저장한다. 이것은 ID, password 등 개인정보를 코드에 작성해야할 때 보안을 높이기 위해 사용하는 방법이다. Secure coding의 일종이라고 할 수 있다.
1) 파일에 key=value형태로 개인정보를 작성하고 .properties 확장자를 붙여 저장한다.
2) 생성자에 properties를 추가한다.
3) driver, url, user, password 등을 입력해야 할 장소에 파일에 써둔 key값을 쓴다.
package pack5db;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Scanner;
import java.util.Properties; // DB 연결정보를 별도의 파일로 작성 후 읽기
public class DbTest5 {
public DbTest5() {
try {
properties.load(new FileInputStream("C:\\work\\jsou\\Java_pro2\\src\\pack5db\\Dbconn.properties"));
} catch (Exception e) {
}
dbLoading();
insertDb();
selectDb();
}
private Connection conn;
private PreparedStatement pstmt;
private ResultSet rs;
private Properties properties = new Properties();
private void dbLoading() {
try {
Class.forName(properties.getProperty("driver"));
} catch (Exception e) {
System.out.println("로딩 실패 :" +e);
System.exit(0);
}
}
private void selectDb() {
// DB에 입력된 자료 읽기
try {
conn = DriverManager.getConnection("jdbc:mariadb://127.0.0.1:3306/test","root","seoho123");
String sql = "select * from sangdata";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
int count = 0;
System.out.println("코드\t상품명\t수량\t단가");
while(rs.next()) {
System.out.println(rs.getString(1) + "\t" +
rs.getString(2) + "\t" +
rs.getString(3) + "\t" +
rs.getString(4));
count += 1;
}
System.out.println("건 수 :" +count + "개");
} catch (Exception e) {
System.out.println("selectDb err : " +e );
}finally {
try {
if (rs != null) rs.close();
if (pstmt != null) pstmt.close();
if (conn != null) conn.close();
} catch (Exception e2) {
// TODO: handle exception
}
}
}
public static void main(String[] args) {
new DbTest5();
}
}