GDJ 9/14

Yongha Hwang·2023년 9월 14일
0

Spring Framework

1. Spring project

new -> Spring Legacy Project -> 이름 설정-> Spring MVC project -> 저장될 패키지 입력 (3단 구성 - 한번 정한 패키지명은 절대 바꾸지 말것)

  • 초기 설정
    • Project Facets -> (java 1.8)
    • pom.xml 버전 수정
      java-version 1.8 / RELEASE 4.3.14
      plugin version 3.7.0
      source 1.8
      target 1.8
  • Multi URL
@Controller // 이 클래스는 컨트롤러이다.
public class HomeController {
// Syso 같은 녀석
	// 어느 클래스에서 발생한 로그인지 알려준다.
	// 설정에 따라서 파일 저자도 가능하다.
Logger logger =LoggerFactory.getLogger(HomeController.class);
	// 이전에 addr 역할(uri-ctx = addr 이런거 안해도 된다.)
	// GET, POST 방식도 지정할 수 있다. (생략 = 둘다 받아준다)
	@RequestMapping(value = "/", method = RequestMethod.GET)
    public String home(Model model) {
    // 메서드명은 아무거나 해도 되지만 일반적으로 요청명과 통일 시킨다.
   // MVC 의 모델 아님,RequestDispatcher 의 역할
    model.addAttribute("msg","스프링 시작 테스트"); // view에 보낼 이름과 값을 담는다.
		return "home"; // webapp/web-inf/views/home.jsp 로 보내라
  • 파라메타 값 받아오기
// @RequestParam 은 요청의 파라메터를 특정 변수에 담아주는 역할을 한다.
	// 이때 보내는 파라메터 명과 변수명은 일치해야 한다.
	@RequestMapping(value = "/calc")
	public String calc(Model model,
			@RequestParam String val1, @RequestParam String val2,@RequestParam String oper)
  • DAO & DTO

2.DB

JAVA 와 DB 를 연결 해보는 법을 알아보자.

  1. JAVA 와 DB 연결 프로그래밍
  2. DB 쿼리 실행 프로그래밍
  3. DB 쿼리 반환 값 추출 프로그래밍

위와 같이 복잡한 과정을 하기 보다는 누군가의 코드를 가져다 쓰는 것이 효율 적이다.

  • JDBC (Java Data Base Connectivity)

  • 라이브러리 추가

    pom.xml -> dependencies 태그안에 가져올 라이브러리를 추가해 준다.

//Controller
@RequestMapping(value = "/", method = RequestMethod.GET)
	public String home(Model model) {	
		logger.info("컨트롤러 접근");
		// DB 에 접근해서 접속이 성공되었는지 확인
		// 1. Service 에게 일을 시킨다.
		HomeService service = new HomeService();
		boolean success= service.dbConnect();
		model.addAttribute("result", success);
		// 성공여부를 VIEW 에 전송
		return "home";
        --------------------------------------
        //Service
        public boolean dbConnect() {
		logger.info("서비스 명령 받음!!");
		// DB 를 사용해야 하는일인가?
		HomeDAO dao = new HomeDAO();
		return dao.dbConnect(); // 서비스에서는 DAO에게 접속후 성공여부를 받아서 바로 Controller 에게 던진다.
	}
    -------------------------------------
    //DAO
    public boolean dbConnect() {
		logger.info("DAO 접근 완료");
		// DB 접근 순서
		// 1. DB 접근을 위한 정보를 준비
		String username="web_user";
		String pw = "pass";
		String url = "jdbc:mariadb://localhost:3306/gdj70";
		String driver = "org.mariadb.jdbc.Driver";
		boolean success =false;
		
		try {
			// 2. DM에게 내용을 전달 한다.
			Class.forName(driver); // DB 접속시 사용할 라이브러리 클래스를 알려준다.
			// 3. DB를 다룰 권한을 가져온다.
			Connection conn =DriverManager.getConnection(url, username, pw);
			// Connection 객체를 얻어온다면 접속 성공
			if (conn !=null) {
				success=true;
				logger.info("접속 성공 : "+conn);
				// 4. 할일을 다 하면 자원을 반납 한다.
				conn.close();
			}			
		} catch (Exception e) {
			e.printStackTrace();
			// 예외가 발생 하면 실패
		}
		return success;
	}
  • Connection Pool

    Thread 와 마찬가지로 Connection 또한 Pool을 사용하여 Connection 을 조금 더 효율 적으로 사용 할 수 있다.

  • context.xml 의 Resource 태그 안 정보 읽어 오는법
			// 1-1. context.xml 자체를 자바 객체로 변환
			Context ctx = new InitialContext();
			// 1-2. Context.xml 안에 있는 Resource 태그를 찾아 온다.(이름을 이용해서)
			// java:comp/env/ 자바 컴파일 환경에서 사용하겠다.		
			DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/MariaDB");
			
			// 2. 그걸로 DB 접속 요청(커넥션 가져오기)
			Connection conn=ds.getConnection();

0개의 댓글

관련 채용 정보