3:1:01 ~ 3:1:13

<인터페이스의 다형성>

하위 객체들에서 구현해야 하는 기능을 정리해 놓은것 ( 강제적인 규정임 )

주의: 이번 챕터의 내용은 읽는 분들을 위해 정리 되어 있는게 아닌. 제가 모르는 것 위조로 정리 해 놓았기 때문에. 읽다보면 맨탈이 위험 합니다 ^ω^! 

 

오류 : UserInfo cannot be resolved to a type :참조하려는 값이 같은 페키지가 아니기 때문에 . 오류가 발생함.

해결책 : import로 해당값이 있는 객체를 넣는다. 

 

DAO파일작성법

  • 접근하려는객채+접근하려는DB형태+Dao
  • 인터페이스를 구현하는 dao 라서 그런지 모르겠지만 구현하려는 DB형태의 페키지를 만들고 내부에 Dao작성함. 상위 클레스에 인터페이스 가 있는셈이다.
  • 이클립스에서는 인터페이스 파일 위에 i라는 글자 라는 벳지가 있다.
  • 인터페이스를 구현하는 객체에서 구현하지 않는 메소드가 있으면
  • The type UserInfoMySqlDao must implement the inherited abstract method userInfoDao.deleteUserInfo(UserInfo) 이라는 에러가 뜬다.
  • 에러가 뜨는 대상에게 ctrl+1을 선택하면
  • 어떤 메소드가 부족한지 코드 계층으로 표시 해준다.

 

  • protected는 상속관게 뿐만 아니라 다른 페키지에서 인스트된 된 객체에도 통한다.
  • MySQl DB로 userID를 보낸다 : insert into MySql DB userId
  • 파일 IO를 사용하기 위해 파일명으로 파일을 탐색하게 할때. 가장 먼서 프로젝트의 폴더 루트 영역부터 찾기 때문에 속도를 줄일떄는 루트 공간에 넣으면 좋다고 한다
  • 파일 IO
    1. FileInputStream 참조변수명A = new FileInputStream("파일명.확장자");
    2. import java.io.FileinputStream;
    3. import java.FileNotFoundException; →1번 타이핑후 빨간줄에서 쓰로우 선택. 1.
    4. properties 참조변수명B = new properties();
      1. 파일에 “값A”=”값B” 으로 페어로 입력되어 있는 값을 불러올수 있다.
      2. 값A는 key. 값B는 value 라고 하여 .key를 입력하면 value가 나온다.
    5. 참조변수명.load(참조변수명A)
      1. load코드의 빨간줄에서 throws 선택

package ch13.domain.userInfo.dao.mysql;

import ch13.domain.userInfo.UserInfo;
import ch13.domain.userInfo.dao.userInfoDao;

public class UserInfoMySqlDao implements userInfoDao {

	@Override
	public void insertUserInfo(UserInfo userInfo) {
		System.out.println("insert into MySQL DB userID = "+userInfo.getUserId());
	}

	@Override
	public void updateUserInfo(UserInfo userInfo) {
		System.out.println("update into MySQL DB userID = "+userInfo.getUserId());
		
	}

	@Override
	public void deleteUserInfo(UserInfo userInfo) {
		System.out.println("delete from MySQL DB userID = "+userInfo.getUserId());
	}

}
package ch13.domain.userInfo.dao.oracle;

import ch13.domain.userInfo.UserInfo;
import ch13.domain.userInfo.dao.userInfoDao;

public class UserInfoOracleDao implements userInfoDao {
	@Override
	public void insertUserInfo(UserInfo userInfo) {
		System.out.println("insert into Oracle DB userID = "+userInfo.getUserId());
	}

	@Override
	public void updateUserInfo(UserInfo userInfo) {
		System.out.println("update into Oracle DB userID = "+userInfo.getUserId());
		
	}

	@Override
	public void deleteUserInfo(UserInfo userInfo) {
		System.out.println("delete from Oracle DB userID = "+userInfo.getUserId());
	}
}
package ch13.domain.userInfo.dao;

import ch13.domain.userInfo.UserInfo;

public interface userInfoDao {
	void insertUserInfo(UserInfo userInfo);
	void updateUserInfo(UserInfo userInfo);
	void deleteUserInfo(UserInfo userInfo);
}
package ch13.domain.userInfo;

public class UserInfo {
	protected String userId;
	protected String password;
	protected String userName;
	public String getUserId() {
		return userId;
	}
	public void setUserId(String userId) {
		this.userId = userId;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	
}
package ch13.web.userInfo;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;

import ch13.domain.userInfo.UserInfo;
import ch13.domain.userInfo.dao.userInfoDao;

public class UserInfoClient {
	public static void main(String[] args) throws IOException {
		FileInputStream fis = new FileInputStream("db.properties");
		Properties prop = new Properties();
		prop.load(fis);
		String dbType= prop.getProperty("DBTYPE");
//		System.out.println(dbType);
		UserInfo userInfo = new UserInfo();
		userInfoDao userInfoDao = null; //why?
	}
}
DBTYPE=MYSQL

 


전문 용어


 

에러 메세지


학습 시간


 

캠 스터디

 


공부 모임

1) 카카오톡 오픈 채팅방

  - 모르는것을 질문하거나

  - 이해가 가지 않는 부분을 다른 분들의 블로그에서 참고하기 용도

2) 구루미 온라인 독서실

  - 학습 시간을 관리 하거나 경쟁 하는 용도 

 

온라인 강의 주소

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

 

직장인인강, 직장인자기계발, 패스트캠퍼스, 패스트캠퍼스후기, 패캠챌린지, 한번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지 Online.강의

+ Recent posts