[ jsp ] mybatis - 설치, 설정, 연동 방법 정리 > jsp&servlet

본문 바로가기
사이트 내 전체검색

jsp&servlet

[ jsp ] mybatis - 설치, 설정, 연동 방법 정리

페이지 정보

작성자 웹지기 댓글 0건 조회 6,389회 작성일 21-01-29 16:13

본문

1) MYBatis

 - SQL Mapping Framewrok for Java

 - download - blog.mybitis.org > Procucts > SQL Mapping Framework for Java > Link ( Download : click )

 버젼에 변화가 크지 않은것으로 하기 위해

 mybatis-3.4.4로 이동 > Assets click > zip 파일 다운로드

 

 - 구조

KakaoTalk_20210201_093042867.png

 

KakaoTalk_20210201_113340560.png

 

 

mybatis 연결에는 세개의 파일이 필요하다.

 config.xml ( 환경 설정 파일 )

 db.properties ( db 설정이 들어가는 파일 )

 MemberMapper.xml ( sql이 저장되는 파일 )


압축을 풀게 되면 설명서와 .jar 파일이 있음.

연결방법은 xml 파일에서 id 를 통해서 연결하고 이 xml 파일을 매퍼 파일이라고 한다.


db정보를 가지고 있는 파일을 properties( 프로퍼티스) 파일이라고 한다.

프로퍼티스파일 만들기

File > New > file > db.properties


driver=oracle.jdbc.driver.OracleDriver

url=jdbc:oracle:thin:@127.0.0.1:1521:XE

username=hr

password=hr


File > New > xml > config.xml 

( kr/smhrd/mybatis/db.properties 이곳은 경로 )

mappers 쪽에 계속 적으로 mapper을 추가해 가면서 파일을 연결한다.

 

2) 실습파일

 https://github.com/freemaster/MVC05 

 

3) 상세설정 방법


<?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">

<configuration>

    <properties resource="kr/shmrd/mybitis/db.properties"/>

    //이 별칭들을 통해서 각 매퍼페이지에서 하나의 별칭씩 사용이 가능해진다.

    //kr.smhrd.model.MemberVO 를 MemberVO라는 alias 에 넣어서 사용 하는 구문

    <typeAliases>

        <typeAlias type="kr.smhrd.model.MemberVO" alias="MemberVO"/>

    </typeAliases>

    <environments default="development">

        <environment id="development">

            <transactionManager type="JDBC" />

            <dataSource type="POOLED">

                <property name="driver" value="${driver}" />

                <property name="url" value="${url}" />

                <property name="username" value="${username}" />

                <property name="password" value="${password}" />

            </dataSource>

        </environment>

    </environments>

    <mappers>

        <mapper resource="kr/shmrd/mybitis/MemberMapper.xml" />

    </mappers>

</configuration>


sql을 관리하는 것은 sqlsessionfactory

MemberDAOImpl.java

package kr.smhrd.model;


import java.io.IOException;

import java.io.InputStream;

import java.util.List;


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 MemberDAOImpl implements MemberDAO{

    

    /* My Batis Start

     * 객체가 한번만 실행되는 것

     * 초기화 블럭 (객체를 생성할 때)

     * My Batis 

     */

    private static SqlSessionFactory sqlSessionFactory;

    

    static {

        String resource = "kr/smhrd/mybatis/config.xml";

        InputStream inputStream;

        try {

            inputStream = Resources.getResourceAsStream(resource);

            //전체 세션을 관리하는 것이 sqlSessionFactory

            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

    

    @Override

    public List<MemberVO> memberList() {

        //세션정보 가져오기

        SqlSession session = sqlSessionFactory.openSession();

        //SQL문장 ( select ~ ) + MemberVO + ArrayList() 

        //List<MemberVO> list = session.selectList("kr.smhrd.mybatis.memberList"); //동일한 이름이 없을 경우 패키지는 적지 않아도 된다.

        List<MemberVO> list = session.selectList("memberList");

        //사용후 사용한 세션에 대한 반납을 실시한다.

        session.close();

        return list;

    }


    @Override

    public int memberInsert(MemberVO vo) {

        SqlSession session = sqlSessionFactory.openSession();

        int cnt = session.insert("memberInsert", vo);

        session.commit();

        session.close();

        return cnt;

    }


    @Override

    public int memberDelete(int num) {

        SqlSession session = sqlSessionFactory.openSession();

        int cnt = session.delete("memberDelete", num);

        session.commit();

        session.close();

        return cnt;

    }


    @Override

    public MemberVO memberContent(int num) {

        SqlSession session = sqlSessionFactory.openSession();

        MemberVO vo = session.selectOne("memberContent", num);

        session.close();

        return vo;

    }


    @Override

    public int memberUpdate(MemberVO vo) {

        SqlSession session = sqlSessionFactory.openSession();

        int cnt = session.update("memberUpdate", vo);

        session.commit();

        session.close();

        return cnt;

    }

}

 

 

MemberMapper.xml

<?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">

<mapper namespace="kr.smhrd.mybatis.MemberMapper">

    <select id="memberList" resultType="MemberVO">

        SELECT * FROM memiot 

        ORDER BY NUM DESC

    </select>

    <insert id="memberInsert" parameterType="MemberVO">

         INSERT INTO memiot 

         VALUES 

         (num_seq.nextval, #{id}, #{pass}, #{mname}, #{mage}, #{memail}, #{mtel})

    </insert>

    <delete id="memberDelete" parameterType="Integer">

         DELETE FROM memiot 

         WHERE 

         num=#{num}

    </delete>

    <select id="memberContent" resultType="MemberVO" parameterType="Integer">

        SELECT * FROM memiot 

        WHERE

        num=#{num}

    </select>

    <update id="memberUpdate" parameterType="MemberVO">

         UPDATE memiot 

         SET 

         mage=#{mage}, memail=#{memail}, mtel=#{mtel}

         WHERE 

         num=#{num}

    </update>

    

 

</mapper>

 

추천0 비추천0

댓글목록

등록된 댓글이 없습니다.

Total 24건 1 페이지
  • 23 [ jsp ] 정부프레임워크 (egovframework) crypto 를 통한 해쉬 만들고 적용하는 방법
  • 정부프레임워크 (egovframework)에서 crypto를 통해 해쉬를 만들고 적용하는 방법 1) 해쉬 만들기 테스트 파일 작성 /src/test/java 에 새로운 패키지 &gt; egovframework.com.crypto.xmlconfig 생성 /src/test/java/egovframework.com.crypto.xmlconfig/ 에 새로운 클래스 파일 EgovEnvCryptoAlgorithmCresteTest 생성 egovframe.go.kr 로 이동 개발프레임워...
  • 웹지기 07-27 2467 0 0 댓글 0
  • 22 [ jsp ] 정부프레임워크 4.0 (egovframework) DB 비번 암호화 사용 미사용 (crypto…
  • 정부프레임워크 4.0 기준 데이터베이스의 비밀번호 암호화 사용 미사용설정 1) pom /pom.xml 의 117줄 ~ 121줄까지 사용된 crypto 설정을 넣어줘야 한다. 2) properties /src/main/resources/egovframework/egovProps/globals.properties 의 41줄 기존 암호화에서 암호화 사용X로 쓸때 Globals.mysql.Password = xz4fmrSdr1vGGl6UtwPLwA%3D%3D 이 구문을 아래 처럼 비밀...
  • 웹지기 07-27 2494 0 0 댓글 0
  • 21 [ jsp ] 정부프레임워크( egovframe )에서 세션 사용 설정
  • 1)pom /pom.xml 파일의 123줄 처럼 access 가 정의 되어 있어야 한다. 2) properties /src/main/resources/egovframework/egovProps/globals.properties 파일의 26줄 권한설정 부분을 Globals.Auth = session 으로 사용 3) access /src/main/webapp/WEB-INF/config/efovframework/springmvc/egov-com-access.xml 파일의 26줄 gl...
  • 웹지기 07-27 2058 0 0 댓글 0
+1
  • 19 [ jsp ] Spring 원리, 사용 설명, 사용 설정
  • ❖ 스프링(Spring) spring container에서 해당 열할을 하고 자동으로 뷰리졸버 하는 api 프론트컨트롤러 api - front controller 대신 DispatcherServlet 가 대체 • DI = 의존성주입(Dependency Injection) - 의존성 주입은 각 객체간의 의존성을 스프링 컨테이너(Srping Container)가 자동으로 연결해 주는것으로 개발자가 빈(Bean) 설정파일에 의존관계가 필요한 정보를 추가하면 스프링 컨테이너가 자동으로 연결...
  • 웹지기 02-04 4662 0 0 댓글 0
+1
  • 18 [ jsp ] 세션(Session) 세션바인딩(Session Binding)
  • ❖ 세션(Session)이란? - 연결 지속성을 제공하기 위해 서버와 클라이언트에 저장되는 정보 - 서버에 정보를 요청 할 때 생성되는 상태정보 ❖ HttpSession 인터페이스 HttpSession 인터페이스는 둘 이상의 page request에서 사용자를 식별하거나, 웹사이트를 방문하고 새당 사용자에 대한 정보를 저장하는 방법을 제공. Servlet container는 HttpSession을 사용하여 HTTP client - HTTP server 간의 세션을 생성한다. 이때, 세...
  • 웹지기 02-02 5398 0 0 댓글 0
+1
  • 열람중 [ jsp ] mybatis - 설치, 설정, 연동 방법 정리
  • 1) MYBatis - SQL Mapping Framewrok for Java - download - blog.mybitis.org &gt; Procucts &gt; SQL Mapping Framework for Java &gt; Link ( Download : click ) 버젼에 변화가 크지 않은것으로 하기 위해 mybatis-3.4.4로 이동 &gt; Assets click &gt; zip 파일 다운로드 - 구조 m...
  • 웹지기 01-29 6390 0 0 댓글 0
  • 15 [ jsp ] Ajax 와 서블릿을 이용하여 통신을 하는 간단한 회원가입 프로그램
  • Ajax 와 서블릿을 이용하여 통신을 하는 간단한 회원가입 프로그램 1) 사용된 파일의 종류 //db 파일 프로젝트/src/kr.mem.db/member.sql //kr.mem.db 는 패키지 //회원수정 프로젝트/src/AjaxContentController.java //AjaxContentController.java 는 서블릿, url mapping은 ajaxcontent.do //회원삭제 프로젝트/src/AjaxDeleteController.java //AjaxControlle...
  • 웹지기 01-29 3650 0 0 댓글 0
  • 13 [ jsp ] JSTL이란? JSTL 다운로드, JSTL 사용법
  • 1) JSTL이란? - JSTL(JavaServer Page Standard Tag Libray) + EL(표현언어(Expression Language )) 의 조합 - JSP 표준 태그 라이브러리( 여러 프로그램이 공통으로 사용하는 코드를 모아놓은 코드의 집합)의 약어 - 자신만의 태그를 추가할 수 있는 기능을 제공 - HTML코드 내에 JAVA 코드인 스크립트릿을 변경해서 사용하게 해줌 (&lt;%=sum %&gt; =&gt; ${sum}, &l...
  • 웹지기 01-19 2513 0 0 댓글 0
  • 12 [ jsp ] HandlerMapping / HashMap
  • handlerMapping - dispatcherServlet로 받은 요청을 Controller로 보내지는데, 이런 요청이 어떤 방식으로 보내지는지(매핑하는지) 그 방법을 정해주는 클래스가 handler - 핸들러 매핑은 프로퍼티스파일(환경설정파일) 을 통해서 유지보수를 더 간소화 할 수가 있다. HashMap이란? - key와 value를 쌍으로 존재하는 자료구조 - HashMap을 사용하면 key값이 무엇이 들었는지 알 수 없다. - HashMap 클래스 내부구조로 Set ...
  • 웹지기 01-19 1869 0 0 댓글 0
  • 11 [ jsp ] servlet 폴더 및 구동 설명
  • jsp 폴더 및 설명 web-inf 경비실 └ lib - 도구(jar) └ class - 서블릿 일반 java-model(class) - dto(vo) - dao - util api(java에서 제공하는 또는 직접만든) └ web.xml - 배치서술자(안내) Servers -&gt; Tomcat v8.5 -&gt; server.xml ...
  • 웹지기 01-19 2256 0 0 댓글 0
  • 10 [ jsp ] 내장객체
  • 내장객체 내장객체 반환값 타입 설명 request javax.servlet.http.httpServletRequest또는javax.servlet.ServletRequest 웹브라우저의 요청 정보를 저장하고 있는 객체 response javax.servlet.h...
  • 웹지기 01-15 2233 0 0 댓글 0
게시물 검색

회원로그인

접속자집계

오늘
5,259
어제
5,809
최대
33,828
전체
8,103,038

그누보드5
Copyright © funyphp.com. All rights reserved.