Notice
Recent Posts
Recent Comments
Link
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Archives
Today
Total
관리 메뉴

memo6759 님의 블로그

2025-10-1(JDBC - final , DBA, 라즈베이파이 , MQTT) 본문

HDC 학습일지

2025-10-1(JDBC - final , DBA, 라즈베이파이 , MQTT)

heewon09 2025. 10. 1. 23:35

 

JDBC 연동 

 

mysql 계정 설정
mysql과 이클립스 버전이 맞지 않았는데 저장

  • dbc.closetest
  • jdbc.step1.MemberDAO
  • JDBC.txt
finally { //자원반납
		// Result -> Statment -> Connectiont순으로 반납하기
		
		try {
		if(rs!=null)rs.close();
		if(stmt!=null)stmt.close();
		if(con!=null)con.close();
	}	catch(SQLException e){
		
	}
	}

 

자원반납 

  • 클라이언트가 점유해서 사용하던 자원을 반납해야한다.
  • Connection, Statement, ResultSet까지 모든 자원을 반납 해야함.
  • close 메소드를 이용해서 처리
  • 가장 마지막에 생성된 객체부터 반납

 


 

[DAO 패턴을 적용해서 구현하기]

-DAO(Data Access Object) 패턴은 데이터베이스를 엑세스하는 기능을 담당하는 객체를 따로 분리해서 설계하는 패턴

테이블명 + DAO

ex) MemberDao

MemberDAO.java

  • DAO는 데이터베이스 엑세스하는 기능만 담당 ( 다른 객체에서 DB관련된 작업을 하지 않는다.)
  • 비지니스로직이 필요하면 비지니스로직을 구현할 객체를 따로 정의해서 사용
  • => 서비스단
  • => 클라이언트가 입력한 데이터를 가고, DB에서 조회한 데이터를 가공
  • => 비지니스로직을 적용
  • => 트랜젝션처리의 단위

- 비지니스로직과 데이터베이스 처리 부분을 분리해서 코드의 재사용성, 유지보수, 테스트의 편리함을 높일 수 있다.

package jdbc.step1;
// 데이터베이스 엑세스 역할을 당담하는 상위클래스 
public interface MemberDAO {
	//회원 등록
	public void Insert(String pass, String name, String addr, String point, String deptno);
	// 회원정보수정
	public void Update(String addr, String name);
	//로그인
	public void login(String id, String pass);
	//회원탈퇴
	public void delete(String id);
	//회원 등록조회
	public void select(String user1, String pass);
	
	
	
	
	
	
	
	public static void main(String[] args) {
		

	}

}

Preparestatement 기능 메서드를 MemberDAO 클래스에 담기

 

클래스명을 상위클래스명으로 설정 후 인터페이스 설정에 MemverDAO 를 추가함

package jdbc.step1;
//Mybatis로 member테이블에 엑세스하는 기능 - member테이블에 CLRUD하는 기능을 수행하는 클래스
public class MemberMyBatisDAOImp implements MemberDAO {

	@Override
	public void Insert(String pass, String name, String addr, String point, String deptno) {
		System.out.println("member1테이블로 MyBatis를 이용해서 insert하기");

	}

	@Override
	public void Update(String addr, String name) {
		System.out.println("member1테이블로 MyBatis를 이용해서 Update하기");

	}

	@Override
	public void login(String id, String pass) {
		System.out.println("member1테이블로 MyBatis를 이용해서 로그인하기");

	}

	@Override
	public void delete(String id) {
		System.out.println("member1테이블로 MyBatis를 이용해서 delete하기");

	}

	@Override
	public void select(String user1, String pass) {
		System.out.println("member1테이블로 MyBatis를 이용해서 select하기");

	}

}

Windows IP 구성
나의 76번 MAC 주소 2C:CF:67:95:25:20
Advanced IP Scanner 에서 로컬 찾아서 라즈베리파이 접속

 

MQTT : text기반

MQTT 과정
IP Scanner
2C에 있는 맥주소 확인 후
나의 mac주소 ip 주소 입력

  1. pi@raspberrypicwy:~ $ ls - 아이디 호스트명 현재 실행중인 디렉토리
  2.  라즈베리파이 전원끄는 명령어 --   sudo shutdown -h now

CMD 창을 띄운 후 메세지 통신 작업

메세지 경량화 작업

  • 구독 신청한 대상에게 알림 메시지 전송
  • 패스 설정 작업 X
  • LED 토픽을 이용한 전송 작업
  • 경로를 카피 후 CD를 주고 CLS 지워버리고 모스키토로 경로를 바꾸라고 작업
  • 서브를 이용해서 구독 진행