본문 바로가기

Study Language/Java

우리FISA AI엔지니어링 - JAVA - lambda, spring, git협업

package lambda;

// 익명함수 - 객체지향의 문법에는 어울리지 않는 개념 Java 8에서 추가가 됨
// 외부에 간단한 인터페이스를 구현해서 인터페이스를 활용하는 방식으로 사용 
public class LambdaEx {
	
	public static void main(String[] args) {
		                  // lambda a, b : a+b
		Calculator mc = (int a, int b) -> a+b; // -> 뒤의 연산이 추상메서드의 실제 동작으로 들어간다
		System.out.println(mc.sum(4, 6));
		
		Calculator mc2 = (a, b) -> a+b;
		int result = mc2.sum(4, 10); // 이미 인터페이스에 int 자료형을 강제했으므로 생략 가능
		System.out.println(result);
		
		// 인터페이스를 상속받은 구상클래스 -> 생성자 사용 필요
		MyCaculater mc3 = new MyCaculater();
		int result2 = mc3.sum(5, 7);
		System.out.println(result2);
	}

}

interface Calculator {  // 추상메서드 - 점검정도
	int sum(int a, int b); // 리턴타입, 함수명, 파라미터 개수, 파라미터의 자료형
}

class MyCaculater implements Calculator {  // 인터페이스를 상속받은 구상 클래스 생성
	@Override
	public int sum(int a, int b) {
		return a + b;
	}
}

 

package mulDimArray;

import java.util.ArrayList;
import java.util.Arrays;

public class ArrayListEx {

	public static void main(String[] args) {
		// 1차원 배열
		ArrayList<Integer> arr = new ArrayList();
		arr.add(3);
		arr.add(2);
		System.out.println(arr.toString());
		arr.remove(1);
		System.out.println(arr.toString());
		
		// 2차원 배열
		ArrayList<ArrayList<Integer>> arr2 = new ArrayList<>();
//		ArrayList<ArrayList<Integer>> arr3 = new ArrayList();
		arr2.add(new ArrayList<>());
		arr2.get(0).add(1);
		arr2.get(0).add(2);
		
		arr2.add(new ArrayList<>());
		arr2.get(1).add(11);
		arr2.get(1).add(12);
		
		// 1. 그냥 반복문 size()
		for (int i = 0; i < arr2.size() ;i++) {
			for (int j = 0; j < arr2.get(i).size() ; j++) {
				System.out.print(arr2.get(i).get(j));
			}
			System.out.println();
		}
		
		// 2. for (자료형[] 원소 :배열명) -- enhanced for문 (강화된 for문)
		for (ArrayList<Integer> ar : arr2) {
			for (int a : ar) {
				System.out.print(a);
			}
			System.out.println();
		}
		
		// 3-1. Stream을 사용해서 값을 꺼내는 방법 
		arr2.stream()
			.flatMap(ar -> ar.stream())
			.forEach(value -> System.out.println(value));
    
    // 3-2. Stream을 사용해서 값을 꺼내는 방법 
      	arr2.forEach(ar -> ar.forEach(value -> System.out.println(value)));
	
		// 4. deepToString 사용해서 값을 꺼내는 방법 
		System.out.println(Arrays.deepToString(arr2.toArray()));
		
	}

}

 

 

 

Maven의 특징

  1. 간편한 구성:
    • Maven은 구성을 위해 간단한 XML 파일을 사용하므로 사용자 친화적입니다.
  2. 규칙:
    • 규칙을 따르므로 수동 구성의 필요성이 줄어듭니다.
  3. 종속성 관리:
    • Maven은 종속성을 중앙 집중화하여 외부 라이브러리를 쉽게 처리할 수 있습니다.
  4. 라이프사이클 및 플러그인:
    • 표준 빌드 프로세스를 정의하고 플러그인을 통한 사용자 정의를 허용합니다.
  5. 전이적 종속성 해결:
    • Maven은 종속성을 자동으로 관리하여 복잡한 종속성 그래프를 단순화합니다.
  6. 확장성:
    • Maven은 플러그인을 사용하여 확장 가능하므로 개발자가 사용자 정의 기능을 추가하고 다른 도구와 원활하게 통합할 수 있습니다.

 

JDBC의 실행순서
Driver 로딩
Driver Loading
Class.forName("com.mysql.cj.jdbc.Driver");
 
Java와 DB 연결
Connection
Connection conn = DriverManager.getConnection(url, id, pw);
 
Query 전송 객체 생성
Statement
Statement stmt = conn.createStatement();
 
Query 문장 작성
query
String sql = "select * from dept";
 
Query 전송
run
ResultSet rs = stmt.executeQuery(sql); // Get, Set,
 
연결 해제
close
rs.close(); stmt.close(); conn.close();

 

    1. GUI로 실행
    • 패키지 익스플로러에서 day06Jdbc 프로젝트를 선택하고 마우스 오른쪽 버튼을 눌러 [Configure] → [Convert to Maven Project] 선택

https://mvnrepository.com/artifact/mysql/mysql-connector-java/8.0.28

package basic;

import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.DriverManager;

public class Dept1 {

	public static void main(String[] args) {
	
		//byte code(*.class)를 메모리에 저장(로딩)
		try {
			
			Class.forName("com.mysql.cj.jdbc.Driver");
			System.out.println("로딩 정상 완료");				
			
			/* 개인 로컬에 설치된 mysql database접속 기능의 객체 생성 - 접속 성공
			 * 위치, id/pw, fisa database 
			 * 접속 요청시 프로그램 관점에선 접속 기능의 객체가 생성
			 * */
			//jdbc:mysql://localhost/fisa?characterEncoding=UTF-8&serverTimezone=UTC
			String url = "jdbc:mysql://localhost/fisa?characterEncoding=UTF-8&serverTimezone=UTC";
			String id = "root";
			String pw = "0000";
			
			// db접속 객체
			Connection conn = DriverManager.getConnection(url, id, pw);
			System.out.println(conn); //com.mysql.cj.jdbc.ConnectionImpl@43df23d3
			
			// sql문장 생성 및 실행
			/* 문장 실행 객체 생성은 이미 특정 db에 접속된 상태에서 생성해야만 해당 db와 소통
			 * Connection 객체로부터 메소드로 Statement 객체 받음
			 */
			Statement stmt = conn.createStatement();
			
			/* select deptno from dept 문장으로 검색
			 * 결과 
			 *  +--------+------------+----------+
				| deptno | dname      | loc      |
				+--------+------------+----------+
				|     10 | ACCOUNTING | NEW YORK |
				|     20 | RESEARCH   | DALLAS   |
				|     30 | 영업        | CHICAGO  |
				|     40 | OPERATIONS | BOSTON   |
			 */
			/* ResultSet API는 주요한 기능
			 * 1. 커서(포인터) 이동 기능 : public boolean next(){}
			 * 2. 데이터 반환 기능 : getXxx(컬럼 순번 또는 컬럼명)
			 * 		정수값 반환 메소드 : getInt(컬럼 순번 또는 컬럼명)
			 * 		문자열값 "	   : getString(컬럼 순번 또는 컬럼명)
			 */
			String sql = "select * from dept";
			ResultSet rs = stmt.executeQuery(sql);
			while(rs.next()) {
				System.out.println(rs.getInt("deptno") + " " 
									+ rs.getString("dname") + " "
									+ rs.getString("loc") ); 
			}			
			/*   10 ACCOUNTING  NEW YORK 
				 20 RESEARCH  DALLAS   
				 30 영업        CHICAGO  
				 40 OPERATIONS BOSTON    */
			
			//자원반환(필수) 순서 중요
			rs.close();
			stmt.close();
			conn.close();
			
		} catch (Exception e) {
			e.printStackTrace();//예외 발생 상황을 디테일하게 출력
		}
		
	}

}

 

 

model view controll

 

데이터 화면 er

Lombok

💡 Lombok Lombok(롬복)은 Java 라이브러리로 반복되는 getter, setter, toString등의 메서드 작성 코드를 줄여주는 코드 다이어트 라이브러리입니다.

가. Lombok 설치

  1. 다운로드

Project Lombok

  1. 다운받은 파일을 더블클릭 후 Specify location을 클릭해 롬복을 사용할 STS가 설치된 경로 선택 후 Install/Update 버튼 선택
  1. STS 재시작 후 Lombok 설치
  • Help -> Install New Software -> 검색창에서 https://projectlombok.org/p2 검색
  • lombok이 뜨면 선택하여 설치!
  • STS를 껐다가 다시 킨다.
    •  
    1. pom.xml 에 lombok 추가

 

1) 생성자 관련 어노테이션

  • @NoArgsConstructor : 매개 변수가 없는 기본 생성자를 생성
  • @RequiredArgsConstructor : final 필드만 포함된 생성자를 생성
  • @AllArgsConstructor : 모든 필드를 포함한 생성자를 생성

2) 메소드 관련 어노테이션

  • @Getter : Getter를 자동으로 생성
  • @Setter : Setter를 자동으로 생성
  • @ToString : toString 메소드를 자동으로 생성
    • @ToString(onlyExplicitlyIncluded = true) 를 사용해서 명시적으로 @ToString.Include 가 붙은 필드만 포함시킬 수도 있고,
    • @ToString.Exclue를 명시한 필드만 제외할 수도 있음
  • @EqualsAndHashCode : equals, hashCode 메소드를 자동으로 생성
  • @With : with 메소드를 자동으로 생성

 

 

 

git허브 협업

ctrl + s, 드래그, commit
후에 비밀번호는 토큰으로.

 

 

 

토큰

 

 

만약 돌리고 싶다면

 

이전 커밋으로 돌리고 싶다면

 

 

 

만약 충돌이 일어난다면 프로젝트 우클릭 후 pull해주면 됨

'Study Language > Java' 카테고리의 다른 글

java 4  (1) 2024.01.24
우리FISA AI엔지니어링 - JAVA 2  (1) 2024.01.08
우리 FISA AI엔지니어링 - JAVA 1  (1) 2024.01.05