///////
Search

알고리즘,Java DB연동_조문주

알고리즘

문제 1-1) 별찍기

public class RightTriangle { public static void main(String[] args) { System.out.println("*"); System.out.println("* *"); System.out.println("* * *"); System.out.println("* * * *"); } } /* * * * * * * * * * * */
Java
복사

문제 1-2) for문을 활용한 별찍기

public class RightTriangle { public void star(int num) { for (int i=0; i<num; i++){ // for문을 하나 더 쓰고 // println 말고 print, printf 등을 써서 한줄로 출력 for (int j=0; j<=i; j++){ System.out.printf("* "); } System.out.printf("\n"); } } public static void main(String[] args) { /* * i = 0 별이 1개 * * i = 1 별이 2개 * * * i = 2 별이 3개 * * * * i = 3 별이 4개 */ RightTriangle rightTriangle = new RightTriangle(); rightTriangle.star(10); } }
Java
복사

문제1-3) 원하는 letter 사용해서 찍기

// 어떤 letter를 출력할지 Constructor를 통해 초기화 할수 있게 Refactoring private String letter = "*"; // Constructor 오버로딩 public RightTriangle() { } public RightTriangle(String letter) { this.letter = letter; }
Java
복사
빈 constructor를 만들어 주는 이유는 파라메터가 있는 Constructor를 만들었을 때와 기본값일 때 모두 사용하기 위해서

문제 2) 피라미드형 별찍기

설계
출력
i
공백
별개수
*
0
3
1
* *
1
2
2
* * *
2
1
3
* * * *
3
0
4
public class Pyramid { public void printStar(int n) { for (int i = 0; i < n; i++) { for (int j = 1; j < n-i; j++) { System.out.printf(" "); } for (int k = 0; k < i+1; k++) { System.out.printf("* "); } System.out.println(); } } public static void main(String[] args) { Pyramid pyramid = new Pyramid(); pyramid.printStar(5); } } /* * * * * * * * * * * * * * * * */
Java
복사

문제2-2) 피라미드 홀수형 별찍기

public void printStar2(int n) { for (int i = 0; i < n; i++) { // 공백 출력 for (int j = n - 1 - i; j > 0; j--) { System.out.printf(" "); } for (int k = 0; k < 2 * i + 1; k++) { System.out.printf("*"); } System.out.println(); } } /* * *** ***** ******* ********* */
Java
복사

Java DB연동

Gradle build 추가

mysql jdbc driver maven

DB insert

DB 접속 정보 보안 중요
public void add() throws SQLException, ClassNotFoundException { Map<String, String> env = System.getenv(); String dbHost = env.get("DB_HOST"); String dbUser = env.get("DB_USER"); String dbPassword = env.get("DB_PASSWORD"); Class.forName("com.mysql.cj.jdbc.Driver"); Connection conn = DriverManager.getConnection(dbHost, dbUser, dbPassword); PreparedStatement ps = conn.prepareStatement("INSERT INTO users(id, name, password) VALUES(?, ?, ?)"); ps.setString(1, "1"); ps.setString(2, "Munju"); ps.setString(3, "1123"); int status = ps.executeUpdate(); System.out.println(status); ps.close(); conn.close(); }
Java
복사
Edit Configurations
public static void main(String[] args) throws SQLException, ClassNotFoundException { UserDao2 userDao2 = new UserDao2(); userDao2.add(); }
Java
복사

Environment Variable에 값 전체 확인하기

// DB_USER, DB_HOST, DB_PASSWORD 등의 정보가 잘 넘어왔는지 확인 하는 방법 public class SystemEnv { public static void main(String[] args) { Map<String, String> env = System.getenv(); for (String key : env.keySet()) { System.out.printf("key:%s value:%s\n", key, env.get(key)); } } }
Java
복사

User 클래스 생성

// 도메인 패키지 내에 클래스 생성 public class User { private String id; private String name; private String password; public User() { } public User(String id, String name, String password) { this.id = id; this.name = name; this.password = password; } public void setId(String id) { this.id = id; } public void setName(String name) { this.name = name; } public void setPassword(String password) { this.password = password; } public String getId() { return id; } public String getName() { return name; } public String getPassword() { return password; } }
Java
복사

Select 구현

public User get(String id) throws ClassNotFoundException, SQLException { Map<String, String> env = System.getenv(); String dbHost = env.get("DB_HOST"); String dbUser = env.get("DB_USER"); String dbPassword = env.get("DB_PASSWORD"); Class.forName("com.mysql.cj.jdbc.Driver"); Connection conn = DriverManager.getConnection(dbHost, dbUser, dbPassword); PreparedStatement ps = conn.prepareStatement("SELECT id, name, password FROM users WHERE id = ?"); ps.setString(1, id); // id는 get(String id) 로 받은 id ResultSet rs = ps.executeQuery(); rs.next(); User user = new User(rs.getString("id"), rs.getString("name"), rs.getString("password")); rs.close(); ps.close(); conn.close(); return user; }
Java
복사
ResultSet은  executeQuery() 했을 때 쿼리 실행 결과가 담긴 ResultSet을 반환 ex) select * from users where id = 1;
public static void main(String[] args) throws SQLException, ClassNotFoundException { UserDao2 userDao2 = new UserDao2(); User user = userDao2.get("1"); System.out.println(user.getName()); }
Java
복사

인스턴스 docker mysql 연결

인스턴스 생성
Docker 설치
Mysql