• 티스토리 홈
  • 프로필사진
    조별하
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
조별하
  • 프로필사진
    조별하
    • 분류 전체보기 (124)
      • 1. 공부 (0)
        • 기술 면접 (0)
      • 2. 웹개발 (7)
        • Java (1)
        • IT 정보 (5)
        • Error 모음 (1)
      • 3. 개인관심 (1)
        • 전자 (1)
      • GITHUB (5)
      • IT 기술 면접 (3)
      • COMPUTER (2)
      • TASK (1)
      • LANGUAGES (20)
        • Python (3)
        • Django (6)
        • Java (7)
        • Node (1)
        • Jsp (2)
        • R (1)
      • 데이터과학 (2)
        • 머신러닝 및 딥러닝 (2)
      • DATABASE (5)
        • Oracle (2)
      • ISSUE (10)
        • Django (4)
        • Drf (2)
        • Javascript (1)
        • Git (1)
      • JAVA 교육 (65)
        • Java (3)
        • Jquery (2)
        • Sql (16)
        • Jdbc (1)
        • Db (2)
        • Jsp (9)
        • myWeb (15)
        • Servlet (4)
        • Spring (12)
        • Crawling (0)
        • Hosting (1)
      • 정보처리산업기사 (1)
      • EDUCATION (2)
        • IoT 서비스 (2)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • Framework (myBatis)
        2019년 11월 20일
        • 조별하
        • 작성자
        • 2019.11.20.오후06:33

        1. Java Framework 란?
        개발에 있어 구조화된 기술 방식

        - Spring Framework
        - Struts Framework : 잘 사용되지 않고 있음(기존에 사용하던 기업은 아직까지 사용하는 경우가 있음)
        - my Batis Framework :데이터베이스 관련

        ※ Framework의 기술방식은  프로젝트를 진행 중에 그 구조화된 방식을 바꿀 수가 없습니다.

        2. 자바 기반 프로젝트 개발방식 
        - Model1 방식
        - MVC 패턴(Model2) 방식
          ->MyController
          ->Spring Framework
          ->MyController+mybatis Framework
          ->Spring Framework+myBatis Framework (전자정부 표준 프레임 워크)

         

        3. myBatis 
        개발환경 구축이 복잡!!(단, 에러 없이 한 번만 구축해 놓으면 계속 사용할 수 있는 장점이 있습니다.)

        전자정부 표준 프레임 워크 tool

        http://spring.io 

         

        spring.io

        Let's build a better Enterprise. Spring helps development teams everywhere build simple, portable, fast and flexible JVM-based systems and applications.

        spring.io

         위의 페이지에 들어가서 TOOLS 에 들어가 전에 있던 버전을 다운받아봅시다

         


        1

         

         

        2

         

         

        3

         

         

        4

         

         

        4. 전자정부 표준프레임워크 3.8 기반 개발 시작하기(Getting Started)

        https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:dev3.8:gettingstarted

         

        egovframework:dev3.8:gettingstarted [eGovFrame]

        본 가이드는 전자정부 표준프레임워크 기반의 단순한 응용프로그램(HelloWorld)를 직접 실습해 봄으로써 빠른 시간 내에 전자정부 프레임워크의 기본 기능을 파악하기 위하여 제공한다. 본 가이드의 사용자는 java 및 spring framework에 대한 기본적인 지식이 있다는 것을 가정하였다. 아래의 3가지 단계에 따라 순서대로 따라하기 방식으로 진행된다. 개발환경 설치 : 실습을 위한 개발환경을 구축한다. 프로젝트 생성 : 제공한 샘플 프로젝트를 이용

        www.egovframe.go.kr

        1

         

        2

         

        3

         

        이렇게 web.xml에 insert 태그나 update 태그를 이용해서 SQL문을 작성하는 것이 myBatis 이다

         

        ※ Spring 버전 4, 5 버전을 설치해서 사용을 할 때는 프러그인 설치를 해서 사용해야 합니다.

         


        1. myBatisTest

         eclipse 사용하던 JSP 와 거의 동일한 기능을 할 수 있지만, Spring 을  더 이용할 수 있다는 장점이 있다.

         

        ▶ JSP 사용할 때와 마찬가지로, Dynamic Web Project를 생성하여 이용할 수 있습니다.

         

        [MyBatis 라이브러리]

        https://blog.mybatis.org 

         

        The MyBatis Blog

        A blog about the the MyBatis data mapper framework.

        blog.mybatis.org

        mybatis 이용하기 위한 lib를 다운로드.
        경로 : Products->MyBatis 3-> mybatis-3.5.2.zip

        ▶ 다운로드한 라이브러리를  WEB-INF/lib 에 넣어두고

        ▶ myBatis는 DB에 관련된 구조화된 기술이기 때문에 JSP에서 사용하던 DBOpen을 사용하지 않을 것입니다.

        ▶ 이제는 DBOpen 기능을 web.xml 에 코딩하여 사용해 봅시다.

         

        1) jdbc.xml

         

        ▶ 일반적인 폴더를 생성하여 생성한 폴더 안에 jdbc.xml을 생성
        jdbc.xml 파일은  DB를 연동시켜 주면서 SQL 문을 적은. xml 파일을 불러오는 역할을 합니다.

        라이브러리를 다운받았을 때  같이 다운된 mybatis에 대한 설명이 있는 pdf에 있는 소스를 복사해 오자  3p

         

        <?xml version="1.0" encoding="UTF-8" ?>
        <!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
        
        <!-- jdbc.xml 데이터베이스 연결 (DBOpen.java 와동일)  -->
        <configuration>
        	
        	<!--  오라클 DB -->
        	<environments default="development">
        		<environment id="development">
        			<transactionManager type="JDBC" />
        			<dataSource type="POOLED">
        				<property name="driver"
        					value="oracle.jdbc.driver.OracleDriver" />
        				<property name="url"
        					value="jdbc:oracle:thin:@localhost:1521:xe" />
        				<property name="username" value="java0514" />
        				<property name="password" value="1234" />
        			</dataSource>
        		</environment>
        	</environments>
        	<mappers>
        		<mapper resource="config/mem.xml" />
        	</mappers>
        </configuration>

         

        ▶ DBOpen에 코딩했던 방식으로 dataSource에 코딩

        ▶ mapper 에는 DB 연동 시에 가져올  SQL 문을 가지고 있는. xml 파일 경로를 넣어줍니다.

         

        2) mem.xml

        라이브러리를 다운받았을 때  같이 다운된 mybatis에 대한 설명이 있는 pdf에 있는 소스를 복사해 오자  21p
        <?xml version="1.0" encoding="UTF-8"?>
        <!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
        
        <!-- mem.xml 실행한 SQL 문을 정의해 놓은 파일 -->
        <mapper namespace="mem">
        
        </mapper>

         

        ▲ 위에서 mapper에 연결해준 경로는 mem.xml이니다
        <mapper></mapper>태그에는 mem이라는 테이블의 SQL 문을 작성하겠습니다.

         

        3) MemMainTest.java

        package net.mem;
        
        import java.io.InputStream;
        
        import org.apache.ibatis.io.Resources;
        import org.apache.ibatis.session.SqlSession;
        import org.apache.ibatis.session.SqlSessionFactory;
        import org.apache.ibatis.session.SqlSessionFactoryBuilder;
        
        public class MemMainTest {
        
        	public static void main(String[] args) {
        		// MyBatis-3기반 JDBC 연습
        		try {
        			// 1) DB 환경 설정 관련 파일 가져오기
        			String resource="config/jdbc.xml";
        			InputStream is=Resources.getResourceAsStream(resource);
        			
        			// 2) DB 연결하기 위한 펙토리빈 생성
        			//-> 기존의 DBOpen + MemberDAO 의 합성한 버전이라 생각하면 된다
        			SqlSessionFactory ssf=new SqlSessionFactoryBuilder().build(is);
        			System.out.println("DB연결 성공");
        			
        			// 3) 쿼리문 생성
        			//PreparedStatement 와 비슷한 기능
        			SqlSession sql=ssf.openSession(true);
        			
        			
        			// 4) 쿼리문 실행
        			
        		}catch(Exception e) {System.out.println("실패"+e);}
        	}//main() end
        
        }//class end
        16~17 line  DB 환경 설정에 관한 파일 resource를 inputStream 참조변수 is 에 할당 
        21~22 line  (JSP : Connection con=DBOpen.connection()) 역할을 하는 부분
        26      line  preparedStatement 와 같은 기능

        ▶ mem이라는 테이블을 만든 후, mem에 맞는 DTO(MemDTO)를 작업을 진행
        (단, DTO의 생성자 함수를 overloading 해주어 모든 매개변수가 들어가는 경우로 코딩)

         

        <code>  public MemDTO() {}//기본 생성자 
            // 매개변수가 다른 각각의 생성자 함수 추가
            //1) num
            public MemDTO(int num) {
                this.num=num;
            }
            //2) num,age
            public MemDTO(int num,int age ) {
                this.num=num;
                this.age=age;
            }
            //3) name,age
            public MemDTO(String name,int age ) {
                this.name=name;
                this.age=age;
            }
            //4) num, name, age
            public MemDTO(int num, String name, int age ) {
                this.num=num;
                this.name=name;
                this.age=age;
            }
        </code>

           

         -행추가

        4) MemmainTest.java

        // 4) 쿼리문 실행
        //	가) 행추가
        		//mem.xml 에가서 mem mapper의 insertRow 를 찾아라
        int cnt=sql.insert("mem.insertRow",new MemDTO("사계절",80));
        System.out.println("행추가결과: "+cnt);

        생성한 sql에에 mem.insetRow 라는 함수에 MemDTO() 에 매개변수를 담아서 보내줍니다

        5) mem.xml

        <mapper namespace="mem">
        	<insert id="insertRow" parameterType="memDTO">
        		INSERT INTO mem(num,name,age)
        		values(mem_seq.nextval,#{name},#{age} )
        								<!-- DTO 의 name,age 에 접근  -->
        	</insert>
        </mapper>

        id를 insertRow,  parameterType 를 memDTO 로 설정을 해준 후  <insert> 태그 안에 SQL 문을 적어 줍니다

         

         

        -행목록

         

        1) MemmainTest.java

         

        //    나) 전체목록
            List list=sql.selectList("mem.selectAll");
            for(int idx=0;idx<list.size();idx++) {
            MemDTO dto=list.get(idx);
            System.out.println(dto.getNum()+"");
            System.out.println(dto.getName()+"");
            System.out.println(dto.getAge()+"");
            System.out.println();
           

        2)mem.xml

        <mapper namespace="mem">
        <resultMap type="" id="rs">
        		<!--<id/> PK칼럼 지정  -->	
        		<!-- resultSet 에 있는 값을 불러 왔다.  -->
        		<result column="num" property=""/>
        		<result column="name" property=""/>
        		<result column="age" property=""/>
        </resultMap>
            
            <select id="selectAll" resultMap="rs">
        		SELECT num,name,age
        		FROM MEM
        		RODER BY num DESC
        	</select>
         </mapper>

         

        결과

         

        ※ mapper 에서 일반적으로 <![CDATA[  ]]> 안에 mapper 영역을 설정을 해 주어야합니다
        (delete TEST 에서는 <>= 수식기호들을 사용해야 하기 때문에 영역을 지정)

        'JAVA 교육 > Spring' 카테고리의 다른 글

        Spring 프로젝트생성 및 환경구축 (사칙연산 test)  (0) 2019.11.20
        Spring 파일 업로드  (0) 2019.11.20
        2019/10/17 mymelon  (0) 2019.10.17
        2019/10/17 AJax 사용법 2 (JSON, Cookie)  (0) 2019.10.17
        2019/10/16 Ajax 사용법  (0) 2019.10.16
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
      • 1. myBatisTest
      • 1) jdbc.xml
      • 2) mem.xml
      • 3) MemMainTest.java
      • 4) MemmainTest.java
      • 5) mem.xml
      • 1) MemmainTest.java
      • 2)mem.xml
      • 안녕하세요
      • 감사해요
      • 잘있어요

      티스토리툴바

      개인정보

      • 티스토리 홈
      • 포럼
      • 로그인

      단축키

      내 블로그

      내 블로그 - 관리자 홈 전환
      Q
      Q
      새 글 쓰기
      W
      W

      블로그 게시글

      글 수정 (권한 있는 경우)
      E
      E
      댓글 영역으로 이동
      C
      C

      모든 영역

      이 페이지의 URL 복사
      S
      S
      맨 위로 이동
      T
      T
      티스토리 홈 이동
      H
      H
      단축키 안내
      Shift + /
      ⇧ + /

      * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.