일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- ORACLE #TIGER #SCOTT #SCOTT계정 #오라클학습계정 #프로그래밍 #SQL #SQLORACLE #오라클 #오라클연습 #오라클연습계정 #오라클연습문제 #WHERE절 #오라클조건절
- 서블릿선언 #서블릿선언방법 #
- QUERY #DML #SQL문 #내림차순정렬 #오름차순정렬
- 정처기3회 #정보처리기사2023
- 서블릿 #자바모델1 #자바모델2 #mvc #mvc패턴
- java #array #자바 #배열 #프로그래밍 #코딩 #자바프로그래밍
- union #sql99 #외부조인 #오라클조인 #sql조인 #자체조인 #비등가조인 #비등가조인 #테이블복사 #오라클테이블 #null인데이터출력
- cos.jar #cos드라이버 #파일업로드드라이버 #루피는귀여워 #마이바티스 #MyBatis #마이바티스sql #마이바티스DB #마이바티스jsp #마이바티스이클립스 #mapper #config.xml #마이바티스다운로드
- 기말고사 #방통대기말고사 #방통대후기 #방통대기말고사후기 #방통대2023년1학기 #방통대1학기 #방통대C프로그래밍 #방통대장학금 #방통대영어회화1
- 마이바티스환경설정
- 정처기필기합격 #정처기합격후기
- Controller
- Init-param #context-param #
- 정처기 #정처기필기 #정보처리기사 #정보처리기사필기 #정보처리기사2023 #정처기2023 #정처기3회 #정보처리기사3회 #정보처리기사실기 #정처기실기 정처기합격
- web.xml #배포지시자 #서블릿테스트
- View #
- 8 실무에서 가장 많이 사용하는 SQL
- 갤러리제작 #갤러리만들기 #jsp갤러리 #jsp게시판 #jsp프로그래밍 #jsp웹프로그래밍 #jsp웹 #jsp모델1방식 #사진업로드 #jsp사진업로드 #jdbc6 #jdbc드라이버다운 #jdbc드라이버무료다운
- 방통대 #방송통신대학교 #컴퓨터과학 #컴퓨터과학과 #컴과 #방통대컴퓨터과학과 #방통대컴과 #방통대파이썬 #방통대C #방통대자바
- tern다운로드 #메이븐다운로드 #maven #스프링라이브러리 #자바라이브러리 #톰캣설정 #WAS #웹어플리케이션서버
- html #자바와서블릿 #자바와웹연결 #웹연결
- jsp #게시판만들기 #자바로게시판만들기 #웹테스트 #JNDI #myora #Oracle #오라클 #DAO #DTO #아파치톰캣 #웹자바셋팅 #모델1 #모델1방식 #모델1방식웹프로그래밍 #웹프로그래밍
- spring #스프링 #전자정부표준프레임워크 #표준프레임워크 #자바스프링 #스프링다운로드 #자바스크립트 #웹프로그래밍설정 #웹프로그래밍셋팅
- 자바웹프로그래밍
- Model #
- 어노테이션 #@WebServlet #WebServlet #
- 자바 #웹자바 #webJava #java #코딩 #코딩초보 #ojdbc #서블릿 #자바서블릿 #javaServelet #servelet #httpServlet
- 자바 #웹자바 #JAVA #WEB #WEBJAVA #WEBPROGRAMMING #웹 #웹프로그래밍 #코딩 #CODING #모델1 #모델2 #모델1방식 #모델2방식
- Doit #Doit오라클 #Doit시리즈 #연습문제
- sql #오라클 #불리언형 #boolean #webjava #java #jsp #Mybatis #마이바티스 #마이바티스환경설정 #모델1 #모델1프로그래밍 #Batis #마이바티스다운로드 #web설정 #웹프로그래밍 #게시판 #게시판제작 #게시판만
- Today
- Total
장미의 개발일기
Mybatis 마이바티스 다운로드 및 환경 설정 본문
** 아래 포스팅의 예제 => model 1 타입의 게시판 사이트를 제작한 후, 그걸 복사해와서
마이바티스를 테스트 해보는 포스팅 입니다. **
아래 모델1방식으로 웹 게시판 만들기
JSP 프로그래밍: 모델1 방식의 웹 개발하기(게시판 만들기) - 1 FBoard (tistory.com)
JSP 프로그래밍: 모델1 방식의 웹 개발하기(게시판 만들기) - 1 FBoard
*Model 1 방식: JSP 프로그래밍에서 Model과 View를 따로 분리하지 않고 같이 섞어서 개발하는 방식이다. => UI(디자인)와 비즈니스 로직을 함께 처리하는 방식이라 코드의 재사용성이 떨어진다 => 유지
jangmicoding.tistory.com
JSP 프로그래밍: 모델1 방식의 웹 개발하기(게시판 만들기) - 2 FBoard (tistory.com)
JSP 프로그래밍: 모델1 방식의 웹 개발하기(게시판 만들기) - 2 FBoard
모델 1 방식은 이제는 거의 안 쓰고 매우 번거로운 과정이지만 개념이해를 위해서 반드시 코딩을 해봐야 한다. 그 다음으로 모델2 방식, 스프링 프레임워크, 부트 순으로 넘어가면 된다. 이번 포
jangmicoding.tistory.com
==============================================================
0. 오라클 DB에 테이블 및 시퀀스 생성:
--fboard
/*1.요구사항
미니게시판
-번호, 제목, 작성자,내용,
-조회수,
-작성자의 아이피,비밀번호
-작성날짜
*/
CREATE TABLE FBOARD(
NUM NUMBER CONSTRAINT FBOARD_NUM_PK PRIMARY KEY,
SUBJECT VARCHAR2(100) NOT NULL,
WRITER VARCHAR2(30) NOT NULL,
PWD VARCHAR2(10) NOT NULL,
CONTENT VARCHAR2(200),
HIT NUMBER(10),
REIP VARCHAR2(34),
FDATE DATE
);
CREATE SEQUENCE FBOARD_SEQ
INCREMENT BY 1
START WITH 1;
1. 마이바티스 사이트에서 zip파일 다운로드
Releases · mybatis/mybatis-3
MyBatis SQL mapper framework for Java. Contribute to mybatis/mybatis-3 development by creating an account on GitHub.
github.com
https://github.com/mybatis/mybatis-3/releases


2. Java(EE) 프로젝트의 WEB-INF/ lib 에 드라이버 복붙

3. META-INF 에 context.xml 저장
context.xml 의 코드:
username, passwrod에는 오라클 DB에 접속계정의 아이디와 비번을 적으면 된다.
=> web.xml에 context-param으로 설정하는 방법도 있다.
web.xml 파일에서 <context-param> 이 부분을 따로 context.xml 파일로 설정이 가능하다고 이해하면 된다.
**web-inf / meta-inf 둘 다 중요한 폴더 1. web-inf -web-inf 의 lib 폴더 :웹 애플리케이션에서 사용되는 외부 라이브러리(jar)을 삽입하는 곳 -web.xml이 여기에 존재 2. meta-inf -java 애플리케이션의 메타데이터 정보를 포함하는 디렉토리 -meta-inf폴더의 MANIFEST.MF: JAR 파일의 메타데이터 정보를 포함하는 파일 - context.xml : 특정 웹 애플리케이션에 대한 컨텍스트 설정을 정의하는 파일 (오라클 연결 설정 정보를 여기에 작성) |
**context.xml과 web.xml
context.xml | web.xml |
웹 애플리케이션의 개별적인 컨텍스트 설정을 포함 | 웹 애플리케이션의 전체 구성 정보를 포함 |
특정 웹 애플리케이션의 컨텍스트에만 적용 | 특정 웹 애플리케이션에 대한 전체 설정 |
개별로 따로 만들어주고(파일 이름도 반드시 context) meta-inf 폴더 안에 위치 시켜야한다. |
다이나믹 프로젝트 생성시, xml 옵션을 체크하면 자동으로 생성되고, web-inf 폴더 안에 위치한다. |
주로 데이터베이스 연결, 리소스 설정, 환경 변수 등과 같은 웹 애플리케이션의 컨텍스트 관련 설정을 포함 |
마이바티스가 제공하는 객체 목록

<?xml version="1.0" encoding="UTF-8"?>
<Context> <!-- myora는 내가 지어줄수있지만, jdbc는 바꾸면안됌 -->
<Resource name="jdbc/myora"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:orcl"
username=""
password=""
maxActive="20"
maxIdle="10"
maxWait="-1"
/>
</Context>
--뺴먹은 거 : !!
3-2. FactoryService class 생성
package factory;
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class FactoryService {
private static SqlSessionFactory factory;
//config.xml이 mapper 즉 sql문까지 포함되고 있기 때문에 불러와서 사용가능한 객체
// sqlsession 을 반환*******8
static {
try(Reader reader = Resources.getResourceAsReader("config/config.xml");) {
factory = new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSessionFactory getFactory() {
return factory;
}
}
4. VO 객체 생성을 위해 VO 클래스 제작
package vo;
public class FBoardVO {
/* NUM NUMBER CONSTRAINT FBOARD_NUM_PK PRIMARY KEY,
SUBJECT VARCHAR2(100) NOT NULL,
WRITER VARCHAR2(30) NOT NULL,
PWD VARCHAR2(10) NOT NULL,
CONTENT VARCHAR2(200),
HIT NUMBER(10),
REIP VARCHAR2(34),
FDATE DATE
); **복붙을 이용하라
*/
private int num;
private String subject;
private String writer;
private String pwd;
private String content;
private int hit; //조회수
private String reip; //사용자의 ip
private String fdate;
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getWriter() {
return writer;
}
public void setWriter(String writer) {
this.writer = writer;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public int getHit() {
return hit;
}
public void setHit(int hit) {
this.hit = hit;
}
public String getReip() {
return reip;
}
public void setReip(String reip) {
this.reip = reip;
}
public String getFdate() {
return fdate;
}
public void setFdate(String fdate) {
this.fdate = fdate;
}
}//pu
5. config.xml 환경설정
https://mybatis.org/mybatis-3/ko/getting-started.html
에서 코드를 복사해온다.
마이바티스 드라이버와 같이 있는 라이브러리 파일(pdf)에서 복사해와도 된다.
MyBatis – 마이바티스 3 | 시작하기
mybatis.org
아래의 "~~congig.dtd" 까지 만 복사해와서 그 뒤는 작성해도 좋고, 전부 작성해와도 무관
<?xml version="1.0" encoding="UTF-8" ?>
<!-- src/config/config.xml -->
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="">
<environment id="">
<transactionManager type="JDBC"/>
<dataSource type="JNDI">
<property name="data_source" value="java:comp/env/jdbc/myora"/>
</dataSource>
</environment>
</environments>
<!-- 작업할 매퍼는 꼭 등록 해줘야 한다!!! -->
<mappers>
<mapper resource="mapper/tboard.xml"/>
</mappers>
</configuration>
<mappers> 이부분 작성 전에
mapper로 사용 할 tboard.xml 파일을 작성해줘야한다. (스프링으로 넘어가면 할 필요 없음)
6. mapper 설정 : fboard.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
역시 위의 사이트나 라이브러리 PDF 파일에서 코드를 찾아 복붙해온다.
여기까지 한 후에 위의 config.xml로 돌아가서
<mappers>
<mapper resource="mapper/tboard.xml"/>
</mappers>
이 부분을 작성해준다.
=================== 여기까지가 마이 바티스 기본 설정 ==============================
7. mapper : fboard.xml 에서 sql문 작성
DB에 데이터 저장하기 : 게시판에 글 작성하기! => 테스트
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="tboard">
<insert id="add" parameterType="vo.FBoardVO">
INSERT INTO FBOARD VALUES(FBOARD_SEQ.NEXTVAL, #{subject},#{writer},#{pwd},#{content}, 0, #{reip},SYSDATE)
</insert>
</mapper>
* namespace => 오라클 DB에 저장되어 있는 테이블 이름
* < > 안에 insert, update, delete 등 SQL 명령문 / id 지정
*parameterTpye => 자바의 메소드에서 필요한 인자 값의 자료형
*resultType => 자바의 메소드에서 반환되는 값의 자료형
ex) 위 코드의 경우
자바의 메소드가 => public void addFBoard(FBoardVO vo) { } 일 때 ,
FBoardVO vo => (인자값) , 즉 parameterTpye 은 FBoardVO 다.
mapper 파일에 "vo.FBoardVO" 로 넣어주면 된다.
ex)
자바의 메소드가 => public FBoardVO detailFBoard(int num) { return v; } 일 때,
이 메소드의 반환형은 FBoardVO형이다.
즉 parameterTpye을 "v.FBoardVO"로 작성해주면 된다.
+추가 포인트 ****: 자바에서의 메소드 반환형이 불리언형인 경우:
public boolean checkPwd(FBoardVO vo) { return false; }
오라클에서는 불리언 자료형이 없으니 true = 1, false= 0 으로 생각하면 된다.
즉 반환형 parameterTpye을 "int"로 작성해줘야 한다.
미리 만들어놓은 게시판 jsp 파일들로 테스트를 해보자.
(나중에 따로 게시판 제작 포스팅을 할 예정)
1 write.jsp 을 실행하여 글 작성

2 list.jsp로 넘어가며 글이 생성

3 sql로 테이블 안에 저장 됐는지 확인 (비번은 1이다)

'개발일기 > JSP 프로그래밍 (Java 웹프로그래밍)' 카테고리의 다른 글
JSP 프로그래밍: 모델1 방식의 웹 개발하기(게시판 만들기) - 2 FBoard (0) | 2023.06.04 |
---|---|
JSP 프로그래밍: 모델1 방식의 웹 개발하기(게시판 만들기) - 1 FBoard (0) | 2023.06.04 |
Web java => Servelet 서블릿 선언 방법 2가지 / 2번째 (0) | 2023.06.04 |
Java/ Web java => Servelet 서블릿 선언 방법 2가지 (0) | 2023.06.04 |
서블릿 기초 : html 파일 1개 + 서블릿 클래스 1개로 간단한 예제 (0) | 2023.06.04 |