초지
Jiyeon's IT note
초지
전체 방문자
오늘
어제
  • 분류 전체보기 (144)
    • JAVA (1)
    • 아두이노 (5)
    • HTML,CSS (0)
    • 데이터베이스 (0)
    • 자바 페스티벌 (29)
    • JSP (6)
    • 자바 스크립트 (15)
    • Maven Project (23)
    • jQuery (4)
    • Ajax (3)
    • 파이썬 (10)
    • 자바스프링 (9)
    • 안드로이드 (18)
    • 머신러닝 (5)
    • 라즈베리파이 (0)
    • 1차 프로젝트 (4)
    • 2차 프로젝트 (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
초지

Jiyeon's IT note

2차 프로젝트

DAO 코드

2022. 7. 22. 11:43

<DAO>

package com.smhrd.dao;




import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

import com.smhrd.dao.SqlSessionManager;
import com.smhrd.domain.Member;

public class DAO {
	private SqlSessionFactory sqlSessionFactory = SqlSessionManager.getSqlSession();
	private SqlSession sqlSession = null;
	
	// 회원가입 메소드
	public int Join(Member vo) {
		int row = 0;
		try {
		sqlSession = sqlSessionFactory.openSession(true);
		row = sqlSession.insert("com.smhrd.dao.DAO.Join", vo);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			sqlSession.close();
		}
		return row;
	}
	
	// 로그인 메소드

	public Member login(Member vo) {
		Member result = null;
		try {

			sqlSession = sqlSessionFactory.openSession(true);
			result = sqlSession.selectOne("com.smhrd.dao.DAO.Login", vo);

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			sqlSession.close();
		}
		return result;
	}
	
}

<MemberDAO>

package com.smhrd.dao;

import java.util.ArrayList;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

import com.smhrd.domain.HelmetVO;
import com.smhrd.domain.Member;
import com.smhrd.domain.UlocationVO;



public class MemberDAO {
	private SqlSessionFactory sqlSessionFactory = SqlSessionManager.getSqlSession();
	private SqlSession sqlSession = null;
	
	
	//회원관리 메소드
	public ArrayList<Member> getAllList() {
		ArrayList<Member> list = new ArrayList<Member>();
		try {
			sqlSession = sqlSessionFactory.openSession(true);
			list = (ArrayList) sqlSession.selectList("com.smhrd.dao.MemberDAO.getAllList");
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			sqlSession.close();
		}
		return list;
	}

	// 사용자 위치 메소드 
	public UlocationVO Ulocation(String mem_id) {
		UlocationVO vo = new UlocationVO();
		try {
			sqlSession = sqlSessionFactory.openSession(true);
			vo = sqlSession.selectOne("com.smhrd.dao.MemberDAO.Ulocation", mem_id);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			sqlSession.close();
		}
		return vo;
	}
	
	public HelmetVO whereHelmet(String hel_number) {
		HelmetVO vo = new HelmetVO();
		try {
			sqlSession = sqlSessionFactory.openSession(true);
			vo = (HelmetVO)sqlSession.selectOne("com.smhrd.dao.MemberDAO.Hlocation", hel_number);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			sqlSession.close();
		}
		
		return vo;
	}

}

<ModuleDAO>

package com.smhrd.dao;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

import com.smhrd.domain.moduleVO;

public class moduleDAO {

	private SqlSession sqlSession = null;
	private SqlSessionFactory sqlSessionFactory = SqlSessionManager.getSqlSession();
	
	public int updateGPS(moduleVO vo) {
		
		int row =0;
		try {
			sqlSession = sqlSessionFactory.openSession(true);
			row = sqlSession.update("com.smhrd.dao.moduleDAO.updateGPS", vo);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			sqlSession.close();
		}
		if(row>0) {
			System.out.println("updateGPS 성공");
		}
		return row;
		
	}
	
	public int updateLost(String hel_number) {
		int row = 0;
		try {
			sqlSession = sqlSessionFactory.openSession(true);
			row = sqlSession.update("com.smhrd.dao.moduleDAO.updateLost", hel_number);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			sqlSession.close();
		}
		return row;
	}
}

<SqlSessionManager>

package com.smhrd.dao;


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 SqlSessionManager {
	

	static SqlSessionFactory sqlSession;
	
	// 객체 생성시 실행되는 구간(객체를 부르기만 해도 동일하게 실행되는 구간이다.)
	// 생성자 : 인스턴스를 생성하는 메소드
	// 서로 다른 인스턴스(주소 값이 서로 다른 객체)도 동일한 내용을 공유한다.
	// static(정적인 or 공유변수)
	
	// 내용 전체 복붙해서 쓰는데 resource 내용만 바꿔주기! --> "com/smhrd/database/mybatis-config.xml";
	
	static {
		// 1) 연결할 설정 정보 가져오기--> .이아닌 /로 표시 주의!
		String resource = "com/smhrd/dao/mybatis-config.xml";
		
		// 2) 문자열을 읽어서 진짜 파일로 되돌려준 도구를 하나 꺼내오기
		Reader reader;

		try {
			// 3) config파일을 읽어서 class path 경로형태를 가진 Reader객체로 반환
			// 문자열로 된 config파일을 진짜 해석할 수 있게 도와주는 역할
			reader = Resources.getResourceAsReader(resource);
			
			// 4) config파일안에 있는 데이터베이스 정보를 기반으로
			// DB랑 연결통로를 가지고 있을수 있게 해주는 구간
			sqlSession = new SqlSessionFactoryBuilder().build(reader);

		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	// 5) DB랑 연결하고 있는 연결통로에 대한 정보를 갖고있는 객체 반환
	// 	  DB연결, 종료, 실행 세션관리
	public static SqlSessionFactory getSqlSession() {
		return sqlSession;
	}
}

<UseDAO>

package com.smhrd.dao;

import java.util.ArrayList;

import org.apache.coyote.http11.upgrade.UpgradeServletOutputStream;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

import com.smhrd.domain.AccVO;
import com.smhrd.domain.HelmetVO;
import com.smhrd.domain.Member;
import com.smhrd.domain.UseVO;

public class UseDAO {
	private SqlSession sqlSession = null;
	private SqlSessionFactory sqlSessionFactory = SqlSessionManager.getSqlSession();
	
	public int useInsert(UseVO vo) {
		int row = 0;
		try {
			sqlSession = sqlSessionFactory.openSession(true);
			row = sqlSession.insert("com.smhrd.dao.UseDAO.useInsert", vo);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			sqlSession.close();
		}
		return row;
	}
	
	public AccVO accView(String hel_number) {
		AccVO vo = null;
		try {
			sqlSession = sqlSessionFactory.openSession(true);
			vo = (AccVO)sqlSession.selectOne("com.smhrd.dao.UseDAO.accSelectOne", hel_number);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			sqlSession.close();
		}
		return vo;
	}

	public UseVO useList(String mem_id) {
		UseVO result = new UseVO();			
		
		try {
			sqlSession = sqlSessionFactory.openSession(true);
			result = sqlSession.selectOne("com.smhrd.dao.UseDAO.useList", mem_id);
			
		} catch (Exception e) {
			e.printStackTrace();
		
		}finally {
			sqlSession.close();
		}
		
		return result;
		
	}

	
	public UseVO useList2(String hel_number) {
		UseVO result = new UseVO();
		try {
			sqlSession = sqlSessionFactory.openSession(true);
			result = (UseVO)sqlSession.selectOne("com.smhrd.dao.UseDAO.useList2", hel_number);
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			sqlSession.close();
		}
		return result;
	}
	
	
	public int stop(String mem_id) {
		
		int row = 0;
		
		try {
			
			sqlSession = sqlSessionFactory.openSession(true);
			row =sqlSession.update("com.smhrd.dao.UseDAO.stop", mem_id);
			
		} catch (Exception e) {
			e.printStackTrace();
		
		}finally {
			sqlSession.close();
		}
		
		return row;
	}
	
	public HelmetVO startGPS(String hel_number) {
		HelmetVO vo = null;
		try {
			sqlSession = sqlSessionFactory.openSession(true);
			vo = sqlSession.selectOne("com.smhrd.dao.UseDAO.helSelectOne", hel_number);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			sqlSession.close();
		}
		return vo;
	}
	
	public int stopGPS(UseVO vo) {
		int row = 0;
		try {
			sqlSession = sqlSessionFactory.openSession(true);
			row = sqlSession.update("com.smhrd.dao.UseDAO.stopGPS", vo);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			sqlSession.close();
		}
		return row;
	}

	public int accList(AccVO accvo) {
		int row = 0;
		try {
			sqlSession = sqlSessionFactory.openSession(true);
			row = sqlSession.insert("com.smhrd.dao.UseDAO.accList", accvo);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			sqlSession.close();
		}
		
		return row;
	}

	public ArrayList<UseVO> usinglist(String mem_id) {
		ArrayList<UseVO> list = new ArrayList<UseVO>();
		try {
			sqlSession = sqlSessionFactory.openSession(true);
			list = (ArrayList)sqlSession.selectList("com.smhrd.dao.UseDAO.usinglist", mem_id);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			sqlSession.close();
		}
		return list;
	}
	
	public AccVO accListView(int use_number) {
		AccVO vo = null;
		try {
			sqlSession = sqlSessionFactory.openSession(true);
			vo = (AccVO)sqlSession.selectOne("com.smhrd.dao.UseDAO.accListView", use_number);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			sqlSession.close();
		}
		return vo;
	}
}

<ListMapper>

<?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="com.smhrd.dao.MemberDAO" >
		
		
		<select id="getAllList" resultType="Member">
			select * from member
		</select>
		
		<select id="Ulocation" parameterType="String" resultType="UlocationVO">
		 	select u.mem_id, u.kick_using, h.hel_number, h.hel_loc_lat, h.hel_loc_long from use_list u, helmet h
		 	where h.hel_number = u.hel_number and mem_id = #{mem_id} and kick_using = 1
		</select>
		
  		<select id="Hlocation" parameterType="String" resultType="HelmetVO">
  			select * from helmet where hel_number=#{hel_number}
  		</select>
  		
        </mapper>

<MemberMapper>

<?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="com.smhrd.dao.DAO" >
		
		<insert id="Join" parameterType="Member" >
			insert into member
    		values(2, #{mem_id}, #{mem_pw}, #{mem_name}, #{mem_gender}, #{mem_blood}, #{mem_phone}, #{mem_subphone}, #{mem_birth}, #{drivenum})
		
		</insert>
		
		<select id="Login" parameterType="Member" resultType="Member">
			select * from member where mem_id = #{mem_id} and mem_pw = #{mem_pw}
		</select>
		

  		
        </mapper>

<moduleMapper>

<?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="com.smhrd.dao.DAO" >
		
		<insert id="Join" parameterType="Member" >
			insert into member
    		values(2, #{mem_id}, #{mem_pw}, #{mem_name}, #{mem_gender}, #{mem_blood}, #{mem_phone}, #{mem_subphone}, #{mem_birth}, #{drivenum})
		
		</insert>
		
		<select id="Login" parameterType="Member" resultType="Member">
			select * from member where mem_id = #{mem_id} and mem_pw = #{mem_pw}
		</select>
		

  		
        </mapper>

<mybatis-config>

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
   <typeAliases>
      <typeAlias type="com.smhrd.domain.Member" alias="Member"/>
      <typeAlias type="com.smhrd.domain.HelmetVO" alias="HelmetVO"/>
	  <typeAlias type="com.smhrd.domain.UseVO" alias="UseVO"/>
	  <typeAlias type="com.smhrd.domain.AccVO" alias="AccVO"/>
	  <typeAlias type="com.smhrd.domain.UlocationVO" alias="UlocationVO"/>
	   <typeAlias type="com.smhrd.domain.moduleVO" alias="moduleVO"/>
   </typeAliases>

   <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:@project-db-stu.ddns.net:1524:xe"/>         
            <property name="username" value="cgi_1_0516_4"/>         
            <property name="password" value="smhrd4"/>         
         </dataSource>
      </environment>
   </environments>

   <mappers>
      <mapper resource="com/smhrd/dao/MemberMapper.xml"/>
      <mapper resource="com/smhrd/dao/ListMapper.xml"/>
      <mapper resource="com/smhrd/dao/UseMapper.xml"/>
      <mapper resource="com/smhrd/dao/moduleMapper.xml"/>
   </mappers>



</configuration>

<UseMapper>

<?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="com.smhrd.dao.UseDAO">
	<insert id="useInsert" parameterType="UseVO">
		INSERT INTO use_list(use_number, kick_number, hel_number, mem_id, start_loc_lat, start_loc_long)
		VALUES (use_seq.NEXTVAL, #{kick_number}, #{hel_number}, #{mem_id}, #{start_loc_lat}, #{start_loc_long})
	</insert>
	
	<select id="accSelectOne" parameterType="String" resultType="AccVO">
		SELECT * FROM acc_view WHERE hel_number = #{hel_number} and kick_using = 1
	</select>

	<select id="useList" parameterType="String" resultType="UseVO">
		SELECT use_number, kick_using, kick_number, hel_number, mem_id, start_time  
		FROM use_list 
		where mem_id = #{mem_id} and kick_using = 1
	</select>
	
	<select id="useList2" parameterType="String" resultType="UseVO">
		SELECT use_number from use_list where hel_number = #{hel_number} and kick_using = 1
	</select>
	
	<update id="stop">
	    UPDATE use_list set kick_using = 2 
        where mem_id =#{mem_id} AND kick_using = 1
	</update>
	
	<select id="helSelectOne" parameterType="String" resultType="HelmetVO">
		SELECT * FROM helmet WHERE hel_number = #{hel_number}
	</select>

	<update id="stopGPS" parameterType="UseVO">
		UPDATE use_list SET end_loc_lat = #{end_loc_lat}, end_loc_long = #{end_loc_long}, end_time = TO_CHAR(SYSDATE, 'YYYY-MM-DD, HH24:MI:SS')
		WHERE use_number =  #{use_number}
	</update>
	
	<insert id="accList" parameterType="AccVO">
		insert into acc_list(acc_num, use_number, acc_loc_lat, acc_loc_long) values(acc_seq.NEXTVAL, #{use_number}, #{acc_loc_lat}, #{acc_loc_long})
	</insert>
	
	<select id="usinglist" resultType="UseVO" parameterType="String">
		select * from used_list where kick_using = 2 and mem_id = #{mem_id}
	</select>
	
	<select id="accListView" parameterType="int" resultType="AccVO">
		SELECT * FROM acc_list WHERE use_number = #{use_number}
	</select>
	

</mapper>

'2차 프로젝트' 카테고리의 다른 글

아두이노 Module 코드  (0) 2022.07.22
FrontController 코드  (0) 2022.07.22
Domain 코드  (0) 2022.07.22
Controller 코드  (0) 2022.07.22
프로젝트 산출문서  (0) 2022.07.22
    '2차 프로젝트' 카테고리의 다른 글
    • FrontController 코드
    • Domain 코드
    • Controller 코드
    • 프로젝트 산출문서
    초지
    초지

    티스토리툴바