controller
package kr.co.gudi.Controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import kr.co.gudi.service.HomeService;
@Controller
public class HomeController {
Logger logger = LoggerFactory.getLogger(HomeController.class);
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Model model) {
logger.info("Controller 접근");
HomeService service = new HomeService();// 객체 생성
boolean success =service.dbConnect();
model.addAttribute("result",success); // homeservice에서 반환 받은 값을 여기세엇 success로 출력한다
return "home";
}
@RequestMapping(value="/stmt")
public String stmt(Model model) {
logger.info("stmt 요청");
//서비스 한테 요청
HomeService service = new HomeService();
String msg = service.stmt();
logger.info(msg);
return "home";
}
}
/*import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import kr.co.gudi.service.HomeService;
@Controller
public class HomeController {
Logger logger = LoggerFactory.getLogger(HomeController.class);
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Model model) {
logger.info("Controller 접근");
HomeService service = new HomeService();
boolean success = service.dbConnect();
model.addAttribute("result", success);
return "home";
}
}*/
HomeDAO
package kr.co.gudi.DAO;
import java.sql.Connection;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class HomeDAO {
Logger logger = LoggerFactory.getLogger(HomeDAO.class); //로그가 맞는지도 잘 확인하기
public boolean dbConnect() {
//DAO를 객체화하는것은 DB를 사용하는것이다 == 클래스 객체화 할때 항상 호출되는거는 생성자이다 == 생성자를 통해 초기화를 해준다
logger.info("DAO 접근");
boolean success = false;
//dB 연결작업
//1.context.xml 에서 정보를 가져온다
//우리가 찾는 정보는 context.xml resourec 태그 안에 있다(문제는 xml 을 어떻게 읽어 오나?)
try {
//1-1. context.xml 자체를 자바 객체로 변환
Context ctx = new InitialContext();
//1-2. context.xml 안에 있는 resource 태그를 찾아 온다(이름을 이용해서)
//lookup == 찾는다는 것이다 == object반환타입
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/MariaDB") ;
//2.그걸로 DB 접속 요청(커넥션 가져오기)
Connection conn = ds.getConnection(); // 캐치에서 excetion으로 받아주기
//3.커넥션이 있으면 성공
if(conn != null) {
success = true;
logger.info("connection:"+conn);// logger는 문자열이 아니면 찍을 수 없다
//4.자원반납 == connection 안달아주면 나중에 점점 느려진다
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
return success; //반환해서 homeservice로 가고 리턴값은 밑에꺼가 맞음
}
}
/*public class HomeDAO {
Logger logger = LoggerFactory.getLogger(HomeDAO.class);
public boolean dbConnect() {
logger.info("DAO 접근");
boolean success = false;
// 1. context.xml 에서 정보를 가져온다.
// 우리가 찾는 정보는 context.xml 의 Resource 태그 안에 있다.(문제는 xml 을 어떻게 읽어 오나?)
try {
// 1-1. context.xml 자체를 자바 객체로 변환
Context ctx = new InitialContext();
// 1-2. Context.xml 안에 있는 Resource 태그를 찾아 온다.(이름을 이용해서)
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/MariaDB");
// 2. 그걸로 DB 접속 요청(커넥션 가져오기)
Connection conn = ds.getConnection();
// 3. 커넥션이 있으면 성공
if(conn != null) {
success = true;
logger.info("connection : "+conn);//logger 는 문자열이 아니면 찍을 수 없다.
// 4. 자원반납
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
return success;
}
}*/
homeservice
package kr.co.gudi.service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import kr.co.gudi.Controller.HomeController;
import kr.co.gudi.DAO.HomeDAO;
public class HomeService {
Logger logger = LoggerFactory.getLogger(HomeService.class);
public boolean dbConnect() {
logger.info("Service 접근");
HomeDAO dao = new HomeDAO();
return dao.dbConnect();// 이값을 HomeController로 반환된다
}
public String stmt() {
// TODO Auto-generated method stub
return null;
}
}
home.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
<head>
<title>Home</title>
</head>
<body>
<h1>
Hello world!
</h1>
<P> The time on the server is ${serverTime}. </P>
</body>
</html>