JAVA 29

241119 Java 29 - JDBC

1. JDBC1) JDBC(Java Database Connectivity) : 자바 프로그램에서 데이터베이스 서버에 접속하고, SQL 문장을 실행해서 그 결과를 처리.[m] 데이터베이스 마다 커넥션을 연결하는 방법, SQL 전달방법, 그리고 결과를 응답받는 방법이 다른데, JDBC 드라이버를 이용하면 다 접근할 수 있다.* 참고자료 : https://velog.io/@hope0206/Spring-%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%9D%BC%EB%A9%B4-%EC%9D%B4%EA%B1%B4-%EA%BC%AD-%EC%95%8C%EC%95%84%EC%95%BC%ED%95%A9%EB%8B%88%EB%8B%A4-1-JDBC-DriverManager   2. JDBC 사용방법(select)1..

JAVA 2024.11.19

241112 Java 28 / SQL 설치 & 초기 설정

1. 연락처 프로그램 버젼 51) 연락처 추가 기능 만들기(1) loadContactData() 메서드 만들기  - DAO의 메서드를 호출해서 연락처 데이터를 읽어온 뒤 테이블에 추가해주는 메서드  - 생성자에서 메서드를 호출 → 프로그램이 실행되면 파일에  저장되어있는 연락처들이 테이블에 추가됨.  (2) 버튼에 ActionListener 추가  (3) CreateFrame에 있는 버튼들에 ActionListener 추가     - DAO와 main 클래스의 객체를 CreateFrame 클래스 필드로 생성해놓고 해당 클래스의 메서드를 사용해서 데이터를 읽고 쓴다.   - main 클래스에 notifyContactCreated() 메서드를 만들어서 저장이 완료되면 테이블을 리셋하고 성공 안내 메시지 다이..

JAVA 2024.11.12

241111 Java 27 - Swing 라이브러리(3)

1. Swing 심화 (2)1) Message Dialog  (1) JButton 객체에 ActionListener 추가 후 JOptionPane 클래스의 showMessageDialog() 메서드를 호출하면 만들 수 있음.  (2) showMessageDialog() 메서드는 오버로딩이 되있으므로 필요한 메서드를 선택해서 사용하면 된다.프로그램 실행 시 화면왼쪽의 노란색 음영 표시된 버튼을 클릭하면 나타나는 화면 2) Confirm Dialog  (1) 사용자의 의사를 확인할 때 사용  (2) 사용자의 선택에 따라 int 값을 리턴    * yes : 0, no : 1, cancel : 2, 창 닫음 : -1초기 화면Confirm Dialog 버튼 클릭하면 나타나는 화면 3) Input Dialog  ..

JAVA 2024.11.11

241108 Java 26 - Swing 라이브러리(2)

1. Swing 라이브러리(계속)1) JLabel에 배경색 넣기  (1) Properties 메뉴에서 background 컬러 선택    (2) opaque 속성의 true 체크박스 체크 표시  2) ActionEvent 클래스  (1) getter 메서드들을 활용하면 이벤트의 여러 정보들을 확인할 수 있다.  (2) 이벤트 소스(source) : ActionEvent 타입 객체가 갖고 있는 고유의 정보, 소스를 활용하여 이벤트를 구분할 수 있다.   (3) Object 타입의 source 객체를 JButton 타입으로 캐스팅하는 이유: 캐스팅하지 않으면 JButton 클래스의 메서드(.getText() 등등)들을 사용할 수 없다.  * 다형성 활용 3) Radio Button  (1) 주어진 그룹 내 ..

JAVA 2024.11.08

241107 Java 25 - stream 클래스 응용, Thread, Swing 라이브러리

1. stream 클래스에서 사용할 수 있는 기능들1) 합계 구하기 : mapToDouble() 메서드 사용 후 sum() 메서드 사용  * mapToDouble() : mapper(람다 표현식)의 결과들을 DoubleStream으로 리턴  * Double 외에 Int, Long도 mapTo 메서드가 있음2) 평균 구하기 : mapToDouble() 메서드 사용 후  average() 메서드 사용 후 orElseThrow() 메서드 사용  * average() 메서드는 리턴값의 데이터 타입이 OptionalDouble이기 때문에 orElse() 메서드로 타입을 Double로 한번 더 바꿔줘야한다.  * OptionalDouble 클래스는 나누기 과정에서 오류가 발생(0으로 나눈다거나,,)하는 경우를 해결..

JAVA 2024.11.07

241106 Java 24 - 람다 표현식, Stream, 메서드 참조

1. 람다 표현식(lambda expression)1) 람다는 그리스 문자 중 11번째 글자로 수학에서는 함수를 의미하기도 함2) 익명 클래스 객체를 간단히 작성하기 위한 문법3) 함수형 인터페이스만 람다 표현식으로 작성할 수 있음※ [2025-06-11] 자바는 람다 표현식 안에서 지역변수를 변경하는 것을 허용하지 않는다! 4) 람다 표현식 문법 : (파라미터 선언, ...) -> { 실행 코드; ... } * 예: (double x, double y) -> { return x / y; } (1) 파라미터 선언에서 변수 타입은 생략 가능. (예) (x, y) -> { return x / y; } (2) 람다 표현식 몸통(body)에 한 문장만 있는 경우, 중괄호와 세미콜론을 생략. (3) 람다 ..

JAVA 2024.11.06

241105 Java 23 - 내부/외부 클래스, static 내부 클래스, builder 디자인 패턴, 익명 클래스,

※ 변수 선언 위치 복습 * 내부 클래스/인터페이스(inner class/interface): 다른 클래스/인터페이스 안에서 선언된 클래스/인터페이스.  * 외부 클래스/인터페이스(outer, enclosing class/interface): 내부 클래스/인터페이스를 감싸고 있는 클래스/인터페이스.  1. 인스턴스 내부 클래스1) static이 아닌 멤버 내부 클래스2) 외부 클래스의 객체를 먼저 생성한 후에, 그 참조변수로 참조해서 객체를 생성하고 사용할 수 있는 내부 클래스.3) 외부 클래스의 멤버(필드, 메서드)를 사용할 수 있도록 하기 위해서 만드는 클래스  * 상속과는 조금 다른 개념..   2. static 내부 클래스1) 외부 클래스의 객체 생성 여부와 상관 없이 사용할 수 있는 내부 클래스..

JAVA 2024.11.05

241105 Java 22 - I/O Stream 활용 연락처 프로그램 만들기

1. 연락처 프로그램 만들기 ver041) I/O Stream을 활용해서 연락처를 HDD에 저장하고 불러올 수 있도록 구현.2) 도우미 클래스(helper class)  (1) 파일 관련(읽기, 쓰기, 폴더 생성) 기능을 제공하는 클래스  (2) 객체를 생성하지 못하도록 작성    * 모든 메서드들을 public static으로 작성  [m] MVC 아키텍쳐에서는 controller에 import해서 사용함   2. 오늘 배운거 정리...1) 오브젝트 입출력 스트림은 사용순서가 메모리 버퍼 다음에 온다.  * 버퍼에 저장된 오브젝트를 가져오고/내보내는 느낌..?2) 연락처 프로그램 만들면서  (1) VO(혹은 DTO) 클래스를 만든다.    - 저장될 데이터 타입과 데이터에 접근하기 위한 getters ..

JAVA 2024.11.04

241101 Java 21 - Object I/O Stream, try-with-resource 문법, 문자 기반 입출력 스트림, File 클래스

1. 객체 입출력 보조 스트림(Object I/O Stream)1) 메모리에 생성된 객체를 파일 또는 네트워크로 출력2) 흐름  (1) 프로그램 ==> ObjectOutputStream ==> FileOutputStream ==> 파일     * OOS.writeObject(): 자바 객체를 파일에 쓸 수 있는 형태로 변화(직렬화, serialization)  (2) 프로그램     * OIS.writeObject(): 파일에서 읽은 데이터를 자바 객체로 변환(역직렬화, de-serialization)(주의) OIS, OOS에서 읽고 쓰는 자바 객체는 반드시 Serializable 인터페이스를 구현해야 함!   2. try-with-resource 문법1) InputStream, OutputStream과..

JAVA 2024.11.01

241031 Java 20 - I/O Stream, Buffered Stream

1. 입출력 스트림(Input/Output Stream)1) 프로그램에 데이터(값)을 입력받거나 출력하는 통로  * (예) System.in: (콘솔) 입력 스트림 객체.  * (예) System.out: (콘솔) 출력 스트림 객체.2) java.io.InputStream: 프로그램이 데이터를 읽어들이는 통로.     |__ FileInputStream: 프로그램이 파일에서 데이터를 읽어들이는 통로.   (1) FileInputStream 객체 생성.   (2) FIS 객체의 read 관련 메서드 호출.   (3) FIS 객체를 닫음(close).     * 닫지 않으면 메모리에 스트림이 계속 남아있게 되고 다른 프로그램들이 해당 파일을 사용할 수 없다3) java.io.OutputStream: 프로그램..

JAVA 2024.10.31