반응형

[name이 같은 여러개의 dom 요소]

<input class="setNum" type="number" value="0" name="myItem" >
<input class="setNum" type="number" value="0" name="myItem" >
<input class="setNum" type="number" value="0" name="myItem" >
<input class="setNum" type="number" value="0" name="myItem" >

 

[ name으로 dom 찾기 ]

//4개의 dom요소가 선택된 상태
document.getElementsByName('myItem');

 

[ name으로 찾은 dom의 개수 ]

document.getElementsByName('myItem').length;

 

[ i번째 item 선택하기 ]

document.getElementsByName('myItem').item(i);


//변수에 넣어서 사용할 때
var myItem=document.getElementsByName('myItem'); 
myItem[i];

 

[ i번째 item value 설정 ]

document.getElementsByName('myItem').item(i).value=0

 

 

반응형
반응형

가만있다가도 아래와 같은 에러 발생. 이클립스랑 tomcat조합은 정말이지 너무싫다

java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]

Failed to start component [StandardEngine[Catalina]

Caused by: java.lang.NoClassDefFoundError: FilterConfig

Failed to start component [StandardServer[8005]]

이것저것 다 해봐도 안 되다가 아래 방법으로 해결함

 

1. 프로젝트 우클릭 > [Build Path] > [Configure Build Path]

[Libraries] 에서 [JDK]가 잘 들어가 있는지 보고 [Server Runtime]도 확인. 나는 Server Runtime에 문제가 있어서 에러가 났던것임.

 

 

2. 프로젝트 우클릭 > [Run As] > [Run Configurations]

왼쪽의 [Apache tomcat] 에서 맞는 서버가 선택되어 있는지 확인하고 Arguments도 올바르게 들어갔는지 확인.

반응형
반응형

유튭 영상 우클릭 > 소스코드 복사하여 iframe을 따온다.
소스에 붙여넣기 하면 됨.

 

PC 웹에 추가 

* 자동재생을 하려면 링크 끝에 아래 텍스트 추가
?autoplay=1&mute=1

<iframe width="1000" height="562.5" src="https://youtu.be/aBcDEFGh3IJ?autoplay=1&mute=1" title="영상제목" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen>
</iframe>

 

모바일버전 웹에 추가 


* 모바일에서 자동재생을 하려면 IFame Player API를 사용하면 됨.
참고)https://developers.google.com/youtube/iframe_api_reference

//youtube 영상을 표시할 div
<div id="player1" style="width:100%">

//youtube 스크립트 파일 url 추가
<script src="https://www.youtube.com/iframe_api"></script>

//자동재생 함수 추가
<script>
var player;
function onYouTubeIframeAPIReady() {
	player = new YT.Player('player1', {
		videoId: 'aBcDEFGh3IJ', //유튭 영상ID
		playerVars: {   
				'autoplay': 1, //자동재생
				'rel': 0,
				'showinfo': 0,
				'modestbranding': 1,
				'playsinline': 1,
				'rel': 0,
				'controls': 1,	//youtube 콘트롤 표시
				'color':'white',
				'loop': 1, //반복 여부  
		},
		events: {
		'onReady': onPlayerReady,
		}
	});
}

function onPlayerReady(event) {
	player.playVideo();
	player.mute(); //자동재생하려면 mute해야함
}

</script>
반응형
반응형

group 별로 컬럼 내용 합치고 싶을때...

오라클에서는 LISTAGG mysql에서는 GROUP_CONCAT 을 썼었는데...

MSSQL에서는 또 다르다..

 

[TABLE]

ID NAME
ab 사과
ab 포도
cd
cd 곶감
cd 호떡

이런 테이블이 있다고 칩시다.

아래 쿼리를 수행하면 다음과 같이 결과가 나온다. 

SELECT DISTINCT ID
STUFF( (select ','+name from table p where p.id = b.id for xml path('') ),1,1,'') AS NAME2
FROM table B
ID NAME
ab 사과,포도
cd 귤,곶감,호떡

 

 

** STUFF : 문자열의 시작위치와 크기를 지정하여 원하는 문자로 치환
STUFF('[문자열]','[시작위치]','[크기]','[치환문자]')

** FOR XML PATH : 쿼리의 결과 데이터를 XML 형태로 표현

 

반응형
반응형

[MEMBER] 테이블

NAME ID
루피 LUFFY
뽀로로 PORORO
크롱 CRONG
포비 POBY

 

>> 예를 들어 외부에서 이름을 받아 해당하는 이름과 ID를 출력(반환)하는 프로시저를 생성하기 

(한 행만 반환하는 경우)

CREATE PROCEDURE PS_GETID(

@NAME VARCHAR(10) --파라미터로 받을 값

@NAME_OUTPUT VARHCAR(10) OUTPUT, --반환할 값은 OUTPUT을 붙여준다.
@ID VARCHAR(10) OUTPUT 	--반환할 값은 OUTPUT을 붙여준다.

)

AS
BEGIN
SET NOCOUNT ON 

--실행할 쿼리
SELECT @NAME_OUTPUT = NAME, @ID = ID FROM MEMBER WHERE NAME = @NAME FROM MEMBER
--@NAME을 매개변수로 @NAME_OUT과 @ID를 반환하기 

SET NOCOUNT OFF
RETURN
END
--실행을 시켜 생성해준다.

* SET NOCOUNT ON : SELECT, INSERT, UPDATE, DELETE의 영향을 받은 행의 개수를 출력하지 않도록 설정.

 

>> 생성한 프로시저 확인

SP_HELPTEXT PS_GETID

 

>> 생성한 프로시저 수정

ALTER PROCEDURE PS_GETID(

-- 아래 내용은 같되 CREATE만 ALTER로 바꿔주면 됨

 

>> 생성한 프로시저를 사용하여 결과값을 변수에 담기

DECLARE @ID VARCHAR(10) --결과값을 받아올 변수 생성
DECLARE @NAME_OUTPUT VARCHAR(10) --결과값을 받아올 변수 생성

--프로시저 생성. 파라미터와 결과값변수 넘겨주기
--프로시저 결과가 변수에 담긴다.
EXEC PS_GETID 'LUFFY',@ID OUTPUT, @NAME_OUTPUT OUTPUT;


SELECT @ID, @NAME --EXEC 결과 조회

 

>> 프로시저에서 반환한 여러 행을 받을 경우

테이블 변수에 프로시저 결과를 담아 사용한다.

-- 여러 행을 반환하는 프로시저를 만든다.
CREATE PROCEDURE PS_GETTABLE
AS 
BEGIN
	SELECT * FROM MEMBER
END
DECLARE @TEMP TABLE(
	NAME VARCHAR(10),
	ID VARCHAR(10)
) --테이블 변수를 만든다.

-- 프로시저 결과를 테이블변수에 담는다.
INSERT INTO @TEMP EXEC PS_GETTABLE

-- 조회
SELECT * FROM @TEMP

 

여러개의 변수를 프로시저 파라미터로 넘기고 싶은 경우

위와 비슷하게 테이블 변수를 매개변수로 넘겨보자...

반응형
반응형

table에서 특정 행만 출력하기.

예를 들어 아래 테이블에서 2번째 행만 가져오기.

[MEMBER] 테이블

ID NAME
HONG 길동
PI 카츄
DUL

요약) 순번 열을 만들어 준 후 SELECT 하면 됨.

 

1. ROW_NUMBER()로 순번 열을 만들어 주기

SELECT ROW_NUMBER() OVER(order by ID asc) as 'NO', ID, NAME 
FROM MEMBER;

쿼리 결과

NO ID NAME
1 DUL
2 HONG 길동
3 PI 카츄

 

 

2. 순번 열을 만들어준 테이블을 임시테이블로 생성하거나 테이블 변수에 넣어서 거기서 select 하면 댐.

A) 임시테이블로 생성한 후에 SELECT하기 

WITH TEMP AS 
(
  SELECT ROW_NUMBER() OVER(order by ID asc) as 'NO', ID, NAME 
  FROM MEMBER
) --임시테이블 생성

SELECT * FROM TEMP WHERE NO=2; --2번째 열 SELECT

 

B) 테이블 변수에 넣어서 SELECT하기

DECLARE @TEMP TABLE( --테이블 변수 생성
	NO INT,
	ID VARCHAR(10),
	NAME VARCHAR(10)
)

--테이블 변수에 SELECT결과 넣기
INSERT INTO @TEMP 
SELECT ROW_NUMBER() OVER(order by ID asc) as 'NO', ID, NAME FROM MEMBER


SELECT * FROM @TEMP WHERE NO=2; --2번째 열 SELECT

 

머가 편한지는 선택 

반응형
반응형

기간 검색 날짜 시작일이 20220101, 종료일이 20220301인경우

검색하려는 기간이 유효 범위 안에 있는지 검사하는 함수.

예를 들어 시작일로부터 한달까지만 검색할 수 있는 경우.

$('#startdate').val()		//20220101 
$('#enddate').val()		//20220301


//시작일로부터 days 일 뒤 까지는 검색이 유효함.
function dateValiChk(days){	
	//new Date(2022,0,1)를 사용하여 날짜 세팅.
	var sdate = new Date($('#startdate').val().substring(0,4),$('#startdate').val().substring(4,6)-1,$('#startdate').val().substring(6,8));
		
	//new Date(2022,2,1)를 사용하여 날짜 세팅.
	var edate = new Date($('#srchedate').val().substring(0,4),$('#enddate').val().substring(4,6)-1,$('#enddate').val().substring(6,8));
		
	//출력 결과 Sat Jan 01 2022 00:00:00 GMT+0900    
	console.log('sdate : ' + sdate);
	//출력 결과 Tue Mar 01 2022 00:00:00 GMT+0900
	console.log('edate : ' + edate); 
		
        
	//검사 기준 date 만들기
	var validDate = sdate;
	//시작날짜에서 유효한 days를 더해줌 ex)31일
	validDate.setDate(validDate.getDate()+days);
        
	//출력 결과 Tue Feb 01 2022 00:00:00 GMT+0900
	console.log('validDate : ' + validDate);  
        
	if(validDate < edate ){ //끝날짜가 검사기준 날짜보다 큰 경우
		return '검색 기간은 최대 1개월입니다.';		
	}else{
		return 'success';
	}
}


dateValiChk(31); //결과 fail

 

javascript date 기본 

var myDate1 = new Date(); // 현재 date 구하기
var myDate2 = new Date(2022,2,3); // 2022년 3월 3일 날짜세팅
var myDate3 = new Date('2022-03-03'); // 2022년 3월 3일 날짜세팅

var myDate4 = myDate3.getDate(); //날짜 get
myDate4.setDate();
반응형
반응형

 

INSERT INTO myTable (ID, Name) VALUES ('2', 'myName')

테이블에 insert를 하려는데 이런 에러가 뜬다... 

[ IDENTITY_INSERT가 OFF로 설정되면 .... 명시적 값을 삽입할 수 없습니다. ]

 

 

* identity 속성 : 숫자형식의 컬럼에 대해 지정된 초기값과 증가치를 주어 insert시 마다 자동으로 증가되며 값이 발생된다. 

 

예를 들어 table 생성시에

CREATE TABLE myTable(
	[ID] [decimal](9, 0) IDENTITY(1,1) NOT NULL --1부터 1씩증가
)

IDENTITY 속성을 주면  INSERT시에 ID값을 주지 않아도 

즉 자동으로  들어간다고 생각하면 됨..

이걸 임의로 값을 넣으려고 하니 에러가 나는 것. 

 

-> INSERT시에 해당 컬럼에 임의로 값을 넣고 싶다면

 

SET IDENTITY_INSERT [테이블이름] ON

 

->ON설정을 해주고 INSERT 후에 다시 OFF를 해주자.

SET IDENTITY_INSERT [테이블이름] OFF

 

 

 

 

반응형
반응형

vanilla js로 radio 타입 체크 여부 control

<input type="radio" name="pick" value="1">
<input type="radio" name="pick" value="2">
<input type="radio" name="pick" value="3">
document.getElementsByName('pick').item(3).checked=true
반응형
반응형

eclipse에서 SVN을 사용하는경우에

레포지토리에 소스를 업로드 하거나(commit) 내 로컬의 소스를 업데이트하는 방법(git의 경우 pull)

 

1. 프로젝트 우클릭 > Team > Synchronize With Repository

원격 레포지토리와 싱크를 맞추기 위함.  commit해야 하거나 땡겨와야 하는 소스를 확인할 수 있다. 

perspective 모드가 아래와 같이 Team Synchronizing 로 바뀐다.

 

2. Team Synchronizing 모드에서는 왼쪽 창에 파일이 아래와 같이 표시된다.

파일에 달린 화살표의 의미는 아래와 같다.

레포지토리에 update 된 파일
local에 반영 안 된 파일
내가 땡겨와야(update)  할 파일임

 local에서 수정된 파일
레포지토리에 반영 안 된 파일
commit해야 할 파일

local에서도 수정되고
레포지토리에서도
수정되어서 충돌이 난 파일.
해당 파일을 우클릭하여
update를 눌러 땡겨오면 됨
해당 파일을 우클릭하여
commit(업로드) 
혹은
Override and Update
파일 내용을 비교하여 편집한뒤
파일을 우클릭하여 update

 

* 파일 비교/편집하는 법? 

파일을 더블클릭하면 내 로컬 파일과 원격저장소에 있는 파일을 비교할 수 있는 창이 열림

왼쪽이 내 Local 파일, 오른쪽이 원격저장소 파일임.

추가된 부분이 있으면 저렇게 파란줄, 충돌나는 부분은 빨간색으로 표시되며 가운데 네모에 커서를 눌러서 왼쪽/오른쪽 내용을 가지고 덮을 수 있음.

편집 및 확인을 다 했으면 파일 우클릭하여 commit이나 update 진행

 

* 파일 나눠보는 법? 

왼쪽 상단 모드 아이콘 확인. 

왼쪽부터 Incoming Mode,   Outgoing Mode,   Incoming/Outgoing Mode

* update 할 파일만 보기 : Incoming Mode 선택

* commit 할 파일만 보기 : Outgoing Mode 선택

* 둘 다 보기 : Incoming/Outgoing Mode

 

반응형

+ Recent posts