본문 바로가기

Programming/DB

[DB] iBatis selectKey iBatis selectKey Sequence 사용시 값을 가져와야하는 경우에 사용.SELECT ISNULL(MAX(SEQ) + 1, 1) FROM MEMBERINSERT INTO MEMBER(SEQ, NAME, ADDRESS) VALUES (#seq#, #name#, #address#) insert만 한다면 아래 같이 작성할 수 있다. INSERT INTO MEMBER(SEQ, NAME, ADDRESS) VALUES (SEQ.NEXTVAL, #name#, #address#) 더보기
[DB] iBatis 동적 쿼리 iBatis 동적쿼리 이항연산 property가 compareProperty or compareValue와 같은지 검사 property가 compareProperty or compareValue와 같지 않은지 검사 property가 compareProperty 값 또는 compareValue의 값보다 큰지 검사 property가 compareProperty 값 또는 compareValue의 값보다 크거나 같은지 검사 property가 compareProperty 값 또는 compareValue의 값보다 작은지 검사 property가 compareProperty 값 또는 compareValue의 값보다 작거나 같은지 검사 단항연산 property가 parameter에 있는지 검사. Beans에서는 prop.. 더보기
[DB] MS-SQL INSERT SELECT, UPDATE SELECT 문 MS-SQL INSERT SELECT, UPDATE SELECT 문 일반적인 UPDATE 문UPDATE 테이블명 SET 필드명 = 값 WHERE 조건문 UPDATE - SELECT 문UPDATE 테이블명A SET 피드명 = 테이블명B.필드명FROM 테이블명A JOIN 테이블명B ON 조인조건 (A.필드명 = B.필드명) 일반적인 INSERT 문INSERT INTO 테이블명필드명VALUES값 INSERT - SELECT 문INSERT INTO 테이블명필드명SELECT 필드명, ... FROM 테이블명WHERE 조건문 EX)INSERT INTO MEMBER(NAME, AGE) SELECTNAME,AGEFROM OLD_MEMBERWHERE USE_YN = 'Y' 주의사항은 INSERT하는 컬럼 수, 컬럼 타입.. 더보기
[DB] MSSQL 날짜 계산 MSSQL 날짜 계산 dateadd 월의 마지막 날 / 월의 첫째날select dateadd(month,1,getdate())-day(getdate()) select dateadd(day,-(day(getdate()-1)), getdate()) 하루 후 / 하루 전select dateadd(day,1,getdate())select dateadd(day,-1,getdate()) 한달 뒤 / 한달 전select dateadd(month,1,getdate()) select dateadd(month,-1,getdate()) 1년 뒤 / 1년 전select dateadd(year,1,getdate()) select dateadd(year,-1,getdate()) datediff datediff( 시간단위구분자, .. 더보기
[DB] iBatis resultMap null 처리 iBatis resultMap null 처리 org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [0]; --- The error occurred while applying a result map. --- The error happened while setting a property on the result object. SELECT 구문 실행시 위와 같은 에러가 나왔다. 내 경우는 VO객체에 생성한 getter, setter가 null값일 경우 나는 에러였는데 null 처리 방법은 여러가지가 있겠지만.. 더보기
[DB] iBatis(MyBatis) Map, List 형식으로 받기 iBatis(MyBatis) Map, List 형식으로 받기 보통 루프문으로 List를 돌면서 DAO에 삽입하는데, iBatis(MyBatis)에서 Map이나 List로받아 처리하는 방법도 있다. 뭐가 더 효율적인지는 알아봐야겠다.. iBatis1. Map 형태INSERT INTO EXAMPLE(SEQ, A, B, C, D) ( #List[].seq# , #List[].a#, #List[].b#, #List[].c#, #List[].d#) 2. List 형태INSERT INTO EXAMPLE(SEQ, A, B, C, D) VALUES( #[].seq# , #List[].a#, #List[].b#, #List[].c#, #List[].d#) mybatisINSERT INTO EXAMPLE(SEQ, A, B.. 더보기
[DB] iBatis(MyBatis) + MySQL 다중쿼리 사용하기 iBatis(MyBatis) + MySQL 다중쿼리 사용하기 예제DELETE FROM 테이블명 WHERE USER_ID = #{user_id};DELETE FROM 테이블명 WHERE USER_ID = #{user_id}; 주의할 점은 MySQL에서 다중쿼리 사용시 ; 가 필요하다.그리고 에러 발생 시 DB 주소 정보 뒤에 아래 설정을 해준다.?allowMultiQueries=trueex) jdbc:mysql://IP:Port/DatabaseName?allowMultiQueries=true 더보기
[DB] iBatis CommonDAO DAO에 SqlMapClient Bean 주입 org.apache.ibatisibatis-sqlmap2.3.0org.springframeworkspring-orm3.0.2.RELEASE ibatisDao.javapackage web.common.dao; import java.util.List;import java.util.Map; import org.springframework.dao.DataAccessException; import com.ibatis.sqlmap.client.SqlMapClient;import com.ibatis.sqlmap.client.event.RowHandler; public interface ibatisDao {public Object insert(String statement.. 더보기
[DB] Oracle DB Link 연결 Oracle DB Link 연결 DB LINK 조회SELECT * FROM ALL_DB_LINKS; OWNER : 계정명 or PUBLICDB_LINK : 디비 링크 설정명USERNAME : 계정명HOST : TNS 설정명CREATED : 생성날짜 테이블 접근 ex) SELECT * FROM 테이블명@DBLINK명; 더보기
[DB] OracleTypeHandler - Oracle Characterset Oracle Characterset 개발하던 Oracle nls_characterset 이 KO16MSWIN949 인데고객사 nls_lang 은 AMERICAN_AMERICA.US7ASCII 이다.한글이 지원되지 않는 CHARSET으로 설정된 오라클 데이터베이스를사용할 경우 변환을 도와준다.그래서 간단한 sql-map-config.xml 설정으로 잡아 줄 수 있었다. OracleUsTypeHandler.javapackage web.common.util; import java.io.UnsupportedEncodingException;import java.sql.SQLException; import org.slf4j.Logger;import org.slf4j.LoggerFactory; import com.i.. 더보기
[DB] Eclipse와 MySQL 연동확인하기 Eclipse와 MySQL 연동확인하기 Eclipse Data Source Explorer 설정시 Connection 확인을 할 수 있지만소스를 이용해 확인하는 방법이다. package com.mycompany.sample;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException; public class DriverTest {public static void main(String args[]) { Connection conn; try {Class.forName("com.mysql.jdbc.Driver").newInstance();conn = DriverManager.getConnection("jdbc:mysq.. 더보기
[iBatis] namespace 관련사항 namespace namespace 란 같은 문서내에 있는 Element의 중복을 피하기 위해 XML에 존재하는 문법이다. sqlmap config 파일에서 useStatementNameSpaces 속성을 true로 줬을 때쿼리를 수행할 때에는 반드시 namespace를 통해서 접근을 하게 된다.예를 들면 user.xml 파일이 다음과 같다고 해보자 SELECT USERID, PASSWORD, NAME, EMAIL FROM USERINFOWHERE USERID=#value# 그렇다면 실제 쿼리를 수행할 때에는 접근을 다음과 같이 한다.queryForList("userinfo.selectbyuserid"); 그러나 !!!만일 select id 부분이 "select.by.userid" 이런식으로 점(.)을 .. 더보기