/* code block */
반응형

mysql은 기본적으로 3306포트를 사용한다.

로컬 환경에서 접속을 할 것이기 때문에 주소는 localhost로 적어주었다.

public class App 
{
    private static final String dbid = "root";
    private static final String dbpw = "password";
 
    public static void main( String[] args )
    {
            
            Connection con = null;
            PreparedStatement pstmt = null;
            try {
                Class.forName("com.mysql.jdbc.Driver");
                String url = "jdbc:mysql://localhost/study_db";
                String url2 = "jdbc:mysql://localhost:3306/study_db?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
                con = DriverManager.getConnection(url2, dbid, dbpw);
                System.out.println("연결 성공");
                
                
                String sql = "SELECT * FROM professor";
                pstmt = con.prepareStatement(sql);
                ResultSet rs = pstmt.executeQuery();
                while (rs.next()) {
                    System.out.println(rs.getInt("phone"));
                }
            } catch (ClassNotFoundException e) {
                System.out.println("드라이버 로딩 실패");
                
            } catch (SQLException e) {
                System.out.println("에러 : "+e);
            } finally{
                try{
                    if( con != null && !con.isClosed()){
                        con.close();
                    }
                }
                catch( SQLException e){
                    e.printStackTrace();
                }
            }
            
    }
}
 

 

 

아래는 sql 라이브러리 dependency이다.

   <dependency>

        <groupId>mysql</groupId>

        <artifactId>mysql-connector-java</artifactId>

        <version>8.0.17</version>

    </dependency>

 

 

반응형

' > Java' 카테고리의 다른 글

자동으로 실행되는 WebListener 어노테이션  (0) 2019.10.24
모든 요청을 받는 서블릿  (0) 2019.10.24
jdbc에 mysql 연동시 time zone 에러  (0) 2019.10.11
서블릿 구현 - Hello world  (0) 2019.09.29
tomcat 서버 메인 함수  (0) 2019.09.29
반응형

sql 파일을 실행해서 데이터베이스를 초기화 해주었다.

package next.support.context;
 
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.jdbc.datasource.init.DatabasePopulatorUtils;
import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator;
 
import core.jdbc.ConnectionManager;
 
@WebListener
public class ContextLoaderListener implements ServletContextListener {
    private static final Logger logger = LoggerFactory.getLogger(ContextLoaderListener.class);
 
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        
        ResourceDatabasePopulator populator = new ResourceDatabasePopulator();
        populator.addScript(new ClassPathResource("jwp.sql"));
        DatabasePopulatorUtils.execute(populator, ConnectionManager.getDataSource());
 
        logger.info("Completed Load ServletContext!");
    }
 
    @Override
    public void contextDestroyed(ServletContextEvent sce) {
    }
}
 
 

WebListener 어노테이션을 사용하기 위해서는 서블릿 라이브러리를 추가해줘야한다.

다음 maven dependency를 추가해준다.

<dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>

 

반응형

' > Java' 카테고리의 다른 글

자바 mysql 연동하기  (0) 2019.10.24
모든 요청을 받는 서블릿  (0) 2019.10.24
jdbc에 mysql 연동시 time zone 에러  (0) 2019.10.11
서블릿 구현 - Hello world  (0) 2019.09.29
tomcat 서버 메인 함수  (0) 2019.09.29
반응형

@WebServlet(name = "dispatcher", urlPatterns = "/", loadOnStartup = 1)

 

서블릿은 "/"로 설정함으로써 모든 요청을 하나의 서블릿으로 매핑할 수 있다.

반응형

' > Java' 카테고리의 다른 글

자바 mysql 연동하기  (0) 2019.10.24
자동으로 실행되는 WebListener 어노테이션  (0) 2019.10.24
jdbc에 mysql 연동시 time zone 에러  (0) 2019.10.11
서블릿 구현 - Hello world  (0) 2019.09.29
tomcat 서버 메인 함수  (0) 2019.09.29
반응형

connection url 뒤에 시간대 명시.

String url = "jdbc:mysql://localhost:3306/study_db?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";

반응형

' > Java' 카테고리의 다른 글

자동으로 실행되는 WebListener 어노테이션  (0) 2019.10.24
모든 요청을 받는 서블릿  (0) 2019.10.24
서블릿 구현 - Hello world  (0) 2019.09.29
tomcat 서버 메인 함수  (0) 2019.09.29
정규표현식  (0) 2019.08.26
반응형

서블릿 컨테이너가 @WebServlet 애노테이션의 값을 읽어 요청 URL과 서블릿을 연결하는 Map을 생성한다.

 

 
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
 
@WebServlet("/hello")
public class HelloWorldServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        PrintWriter out = resp.getWriter();
        out.print("<h1>Hello World</h1>");
    }
}
 
 

 

반응형

' > Java' 카테고리의 다른 글

자동으로 실행되는 WebListener 어노테이션  (0) 2019.10.24
모든 요청을 받는 서블릿  (0) 2019.10.24
jdbc에 mysql 연동시 time zone 에러  (0) 2019.10.11
tomcat 서버 메인 함수  (0) 2019.09.29
정규표현식  (0) 2019.08.26
반응형

기본 포트로 8080 사용, webapp 폴더를 루트 디렉토리로 사용한다.

 

 
 
public class WebServerLauncher {
    public static void main(String[] args) throws Exception {
        String webappDirLocation = "webapp/";
        Tomcat tomcat = new Tomcat();
        String webPort = System.getenv("PORT");
        if(webPort == null || webPort.isEmpty()) {
            webPort = "8080";
        }
         
        tomcat.setPort(Integer.valueOf(webPort));
        Connector connector = tomcat.getConnector();
        connector.setURIEncoding("UTF-8");
        tomcat.addWebapp("/"new File(webappDirLocation).getAbsolutePath());
        System.out.println("configuring app with basedir: " + new File("./" + webappDirLocation).getAbsolutePath());
        tomcat.start();
        tomcat.getServer().await(); 
    }
}
 
반응형

' > Java' 카테고리의 다른 글

자동으로 실행되는 WebListener 어노테이션  (0) 2019.10.24
모든 요청을 받는 서블릿  (0) 2019.10.24
jdbc에 mysql 연동시 time zone 에러  (0) 2019.10.11
서블릿 구현 - Hello world  (0) 2019.09.29
정규표현식  (0) 2019.08.26

+ Recent posts