서블릿은 was에서 동작
규칙이 있어 규칙을 맞춰줘야한다.
MIME숙제
오라클드라이버 등록하기
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
다음다음다음하고 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파일에 연결 소스를 등록해서 필요할때마다 풀에서 가져올수있다.
'자바 웹을 다루는 기술' 카테고리의 다른 글
[페이징 - 상속관계없는][제목으로 게시글 검색하기] (0) | 2023.08.18 |
---|---|
[DI] (0) | 2023.08.16 |
Ajax (0) | 2023.08.09 |
0803날 servlet 직전의 수업[웹프로젝트를 이클립스 없이 띄우기] (0) | 2023.08.03 |
git[이클립스에 git연동하고 GUI로 이용하기] (0) | 2023.07.31 |