Hashtable
HashMap : 신버전
Hashtable : 구버전
package kr.co.kihd.hashtable;
import java.util.Hashtable;
import java.util.Map;
import java.util.Scanner;
public class HashtableTest {
public static void main(String[] args) {
/*
* HashMap : 신버전
* Hashtable : 구버전
* 기능은 동일하다.
*/
Map<String, String> map = new Hashtable<>();
//객체추가
map.put("Spring", "5.3.1");
map.put("SpringBoot", "2.4.0");
map.put("SpringTools4(sts)", "4.8.1");
map.put("Spring2", "5.3.1");
System.out.println("총 Entry수 : "+map.size());
int count = 0; //비밀번호 틀린 횟수
Scanner scan = new Scanner(System.in);
while(true) {
System.out.println("아이디와 비밀번호를 입력하세요.");
System.out.println("아이디 : ");
String id = scan.nextLine();
System.out.println("비밀번호 : ");
String password = scan.nextLine();
System.out.println();
/*
* 저장되어 있는 객체를 검색하여(일종의 DB라고 생각하자)
* 아이디와 비밀번호 일치하면 로그인 성공
*/
if(map.containsKey(id)) {//id가 있는가?
/*
* id 즉, 키를 주고 얻어오는 값은 password이니까,
* 같다면 로그인 성공, 아니면 비밀번호가 불일치된다.
* 단, 틀린횟수 1 증가됨
*/
if(map.get(id).equals(password)) {
System.out.println(id + "님이 로그인 되었습니다.");
break;
}
else {
count++;
System.out.println("비밀번호가 " + count + "회 틀렸습니다.");
if(count == 3) {
System.out.println("비밀번호가 " + count + "회 틀렸습니다."
+ "지점 방문 부탁드립니다. ");
break;
}
}
}
else {
System.out.println("아이디가 존재하지 않습니다.");
}
}
}
}
Properties
키와 값을 String타입으로 제한한 Map컬렉션이다.
프라퍼티 파일 DB연동
database.properties
driver = oracle.jdbc.OracleDriver
url = jdbc:oracle:thin@localhost:1521:orcl
username = scott
password = tiger
package kr.co.kihd.properties;
import java.io.FileReader;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.Properties;
public class PropertiesTest {
public static void main(String[] args) throws Exception {
//Properties객체는 키와 값을 String으로 제한한 Map컬렉션임.
Properties properties = new Properties();
//PropertiesTest와 동일한 곳에 지금 프러퍼티 파일이 존재하므로
//아래와 같은 path를 얻어오는 것이다.
String path = PropertiesTest.class.getResource("database.properties").getPath();
System.out.println(path);
path = URLDecoder.decode(path, "UTF-8"); //한글이 3바이트
//path = URLDecoder.decode(path, "EUC-KR"); //한글이 2바이트
System.out.println(path);
//database.properties파일을 읽어온다.
properties.load(new FileReader(path));
System.out.println("======================================");
//키를 주고 값을 읽어옴
String driver = properties.getProperty("driver");
System.out.println("driver : " + driver);
String url = properties.getProperty("url");
System.out.println("driver : " + url);
String username = properties.getProperty("username");
System.out.println("driver : " + username);
String password = properties.getProperty("password");
System.out.println("driver : " + password);
}
}
/C:/workspace/chap24(%ec%bb%ac%eb%a0%89%ec%85%98%ed%94%84%eb%a0%88%ec%9e%84%ec%9b%8c%ed%81%ac2)/bin/kr/co/kihd/properties/database.properties
/C:/workspace/chap24(컬렉션프레임워크2)/bin/kr/co/kihd/properties/database.properties
======================================
driver : oracle.jdbc.OracleDriver
driver : jdbc:oracle:thin@localhost:1521:orcl
driver : scott
driver : tiger