본문 바로가기

자바 웹을 다루는 기술

0804 servlet [Class.forName없이 오라클연결하기][MariaDB설치]

서블릿은 was에서 동작 
규칙이 있어 규칙을 맞춰줘야한다.

 

MIME숙제

 

 

오라클드라이버 등록하기

 

https://atoz-develop.tistory.com/entry/Tomcat-%EC%84%9C%EB%B2%84-DataSource-%EC%84%A4%EC%A0%95-%EB%B0%A9%EB%B2%95-JNDI

 

Tomcat 서버 DataSource 설정 방법 (+JNDI)

환경 정보 IntelliJ IDEA 2019.3 Ultimate, Amazon Corretto 11, Tomcat 9, JDBC 4.2, 의존성 관리 환경 X Tomcat 서버 DataSource 설정 방법 (+JNDI) ❕ 포스트 상단에는 DataSource, JNDI의 이론적인 내용이 포함되어 있으므로

atoz-develop.tistory.com

 

context.xml

 

resource부분 복사 붙여넣기

 

maxㅑㅇㄷ 쉬고 있을때 30개가지ㅡㄴ해 10000개까지는 기달려줘

오라클 데이터 베이스를 넣을 때 적어주어야하는 부분

Resource의 name은 사용하려는 웹프로젝트에서 web.xml 태그로 넣어줘야하는 ㅜ부

 <Resource name="jdbc/kosa" auth="Container" type="javax.sql.DataSource"
          maxActive="100" maxIdle="30" maxWait="10000"
          username="오라클계정이름" password="계정비밀번호"
          driverClassName="Class.forName()해서 맨날 적어줬던 부분"
          url="연결을위해 DriverManager.getConnection에 적어줬던 부분"
          closeMethod="close" />
 <Resource name="jdbc/kosa" auth="Container" type="javax.sql.DataSource"
              maxActive="100" maxIdle="30" maxWait="10000"
              username="kosa" password="1004"
              driverClassName="oracle.jdbc.OracleDriver"
              url="jdbc:oracle:thin:@localhost:1521:XE"
              closeMethod="close" />

마리아 dB에서 적어줘야하는 부분

 <Resource name="jdbc/kosa_mariadb" auth="Container" type="javax.sql.DataSource"
          maxActive="100" maxIdle="30" maxWait="10000"
          username="root" password="1004"
          driverClassName="org.mariadb.jdbc.Driver"
          url="jdbc:mariadb://127.0.0.1:3306/kosa"
          closeMethod="close" />

 

 

사용하려는 웹 프로젝트에서 추가해야하는 web.xml 에서 넣어줘야할부분

이름으로 구별하기 때문에 나중에 연결하려고 할때는 <res-ref-name>값을 참조한다.

  <resource-ref>
    <res-ref-name>jdbc/kosa</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>
<resource-ref>
    <res-ref-name>jdbc/kosa_mariadb</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

 

많은 사람이 접속했을 때 효과를 볼 수있다.

public Connection getConnection() {
		InitialContext initialContext = new InitialContext();
		DataSource ds = (DataSource) initialContext.lookup(" 약속/ context의 이름");
		return ds.getConnection;
	}

DAO 인터페이스를 재정의한 java코드에서는 이렇게 작성해 주어야한다. 

	public Connection getConnection() throws Exception {
		// 톰캣 서버에서 자원을 찾기 위해 InitialContext 인스턴스 생성
		InitialContext initialContext = new InitialContext();
		// lookup() 메소드로 JNDI 이름으로 등록돼있는 서버 자원 찾음
		// @name : 서버 자원의 JNDI 이름
		// 찾으려는 자원이 JDBC DataSource이므로 java:comp/env...
		DataSource ds = (DataSource) initialContext.lookup("java:comp/env/jdbc/kosa");
		return ds.getConnection();
	}

 

 

코드에서 dB 연결을 위해서 사용법

conn = getConnection();

이제 서비스 파일에서 객체 생성시 DAO변수를 초기화해주는 방법으로 사용하면 된다.

final private MemoDAO memoDAO;

public MemoService(MemoDAO memoDAO) {
    this.memoDAO = memoDAO;
}

final로 선언한 변수는 생성자를 통해 초기화 할수있다. 그리고 안에들어간 객체를 다른 객체로 변경하거나 null값이 들어가는 오류를 범하지 않기 위해 final로 선언해준다.

 

 

maria db 설치하기

 

https://mariadb.org/download/?t=mariadb&p=mariadb&r=11.2.0&os=windows&cpu=x86_64&pkg=msi&m=blendbyte 

 

Download MariaDB Server - MariaDB.org

REST API Release Schedule Reporting Bugs … Continue reading "Download MariaDB Server"

mariadb.org

 

 

다음다음다음하고 Enable access from remote machines for 'root' user를 선택해서 외부에서 접속 가능하게 한다. 패스워드는 1004(집에는 1234)로 설정해줬다. 그리고 기본 글자를 UTF-8로 설정해주었다

 

오라클은 포트번호가 1521이고 마리아는 3306이다. 여기서는 가만히 냅두고 다른거설정할거 없이 다음

 

설치 버튼 뜨면 누르면 땡~

 

MariaDB를 설치하게 되면 자동으로 SQLDeveloper와 같은 기능을 갖는 HeidiSQL이 설치되게 되는데 여기 들어가서 계정도 만들고 새로운 데이터베이스를 생성해주고 테이블을 만들수 있다.

 

 

아까 설치할때 만들어뒀던 root계정에 비밀번호를 넣고 접속한다.

새 데이터베이스 생

쿼리가 자동으로 생성된다.

 

테이블 생성

 

 

PK생성

저장 누르면 테이블 자동 생성된다.

 

PK는 기본값 없음으로 해야 테이블 생성이 되더라....

 

테이블의 데이터 탭에서 위의 초록색 동그란 +버튼을 누르면 테이블에 데이터를 추가할 수있다 mariaDB는 자동 commit 되므로 테이터를 추가하기만 하면된다.

 

 

 

마리아도 오라클처럼 tomcat 서버에 context.xml파일에 연결 소스를 등록해서 필요할때마다 풀에서 가져올수있다.