알고리즘
문제 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