반응형

replace(치환)


var 변수;

변수.replace(,);


g : 모든 패턴 체크(global)

i : 대소문자를 구별없이 체크

m : 여러줄 체크


^ : 처음

$ : 끝

. : 한문자


.replace(' ','')          : 첫번째 공백 제거

.replace(/\-/g,'')        : - 제거

.replace(/[-]/g,'')        

.replace(/,/g,'')         : , 제거

.replace(/^\s+/,'')       : 앞의 공백 제거

.replace(/\s+$/,'')       : 뒤의 공백 제거

.replace(/^\s+|\s+$/g,'') : 앞뒤 공백 제거

.replace(/\s/g,'')        : 문자열 내의 모든 공백 제거

2가지 이상사용시 .replace(/[-]|\s/gi, ''); 등으로 |(or)을 가지고 사용가능 (-,공백제거)



정규표현식



var Patten = /^[0-9\-]{12,12}$|^[0-9]{10,10}$/;   // 0~9의 숫자와 특수문자 -사용가능한 12자리수 or 0~9의 숫자의 10자리수


var Patten = /^[a-zA-Z0-9]{1,20}$/;   // a~z,A~Z,0~9인 1~20자리수까지


var Patten = /^.*(?=^.{8,15}$)(?=.*\d)(?=.*[a-zA-Z])(?=.*[!@#$%^&+=]).*$/;  // 영문,숫자,특수문자로 이루어진 8~15자리 (비밀번호에 많이사용)


테스트시

var test="abc1234";

if( !Patten.test( test ) ){}


반응형
반응형

도로명주소 API - 팝업형 주소 API 적용


주소 api를 사용하려면 아래 링크에서 샘플 및 정보를 받을수 있습니다.

https://www.juso.go.kr/addrlink/main.do

접속해서 api키를 발급받아야 사용이 가능하니 api키를 발급 받으시길 바랍니다.

기본적인 정보만 입력하면 쉽게 발급받으실수 있습니다.

sample과 api활용 가이드도 있으니 참고하시면 좋을것 같습니다.

저는 팝업형 주소검색을 사용했고 제가 적용한것을 작성하겠습니다.



JAVA - Controller


@RequestMapping("/jusoPopup")

    public String jusoPopup(@ModelAttribute("paramVO") ParamVO paramVO) throws Exception {

        return " 경로/jusoPopup";

    }


아래 jusoPopup 경로에 맡게 리턴을 설정해주시고 리퀘스트 맵핑을 해줍니다.




조회할 페이지 - jsp


자바스크립트


function goPopup(){

// 주소검색을 수행할 팝업 페이지를 호출합니다.

// 호출된 페이지(jusopopup.jsp)에서 실제 주소검색URL(http://www.juso.go.kr/addrlink/addrLinkUrl.do)를 호출하게 됩니다.

var pop = window.open("/cnsgn/entpr/jusoPopup.do","pop","width=590,height=420, scrollbars=yes, resizable=yes"); 

// 모바일 웹인 경우, 호출된 페이지(jusopopup.jsp)에서 실제 주소검색URL(http://www.juso.go.kr/addrlink/addrMobileLinkUrl.do)를 호출하게 됩니다.

    //var pop = window.open("/popup/jusoPopup.jsp","pop","scrollbars=yes, resizable=yes"); 

}


function jusoCallBack(roadFullAddr,roadAddrPart1,addrDetail,roadAddrPart2,engAddr, jibunAddr, zipNo, admCd, rnMgtSn, bdMgtSn,detBdNmList,bdNm,bdKdcd,siNm,sggNm,emdNm,liNm,rn,udrtYn,buldMnnm,buldSlno,mtYn,lnbrMnnm,lnbrSlno,emdNo){

    // 팝업페이지에서 주소입력한 정보를 받아서, 현 페이지에 정보를 등록합니다.

document.form.roadAddrPart1.value = roadAddrPart1; // 도로명주소

document.form.addrDetail.value = addrDetail; // 상세주소

document.form.zipNo.value = zipNo; // 우편번호

self.close();

}


위와같이 작성후 html에 button을 만들어 goPopup() 스크립트를 호출해주면 됩니다.


josoCallBack에서 원하는 주소방식을 원하는 id값에 넣어주면됩니다. 

또는 제이쿼리를 이용해서 $("#id").val(파라메터); 형식으로 넣어줄수도 있습니다.

파라메터 정보는 아래 사진 첨부하겠습니다.

설명으로 부족하다면 각 파라메터를 console.log()에 넣어서 직접 확인하는 방법이 있습니다.

주소검색후 상세주소를 입력하고 확인을 누르면 각 form에있는 id값에 데이터를 넣어주고 self.close();로 팝업을 닫아줍니다.







jusoPopup.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

<% 

//request.setCharacterEncoding("UTF-8");  //한글깨지면 주석제거

//request.setCharacterEncoding("EUC-KR");  //해당시스템의 인코딩타입이 EUC-KR일경우에

String inputYn = request.getParameter("inputYn"); 

String roadFullAddr = request.getParameter("roadFullAddr"); 

String roadAddrPart1 = request.getParameter("roadAddrPart1"); 

String roadAddrPart2 = request.getParameter("roadAddrPart2"); 

String engAddr = request.getParameter("engAddr"); 

String jibunAddr = request.getParameter("jibunAddr"); 

String zipNo = request.getParameter("zipNo"); 

String addrDetail = request.getParameter("addrDetail"); 

String admCd    = request.getParameter("admCd");

String rnMgtSn = request.getParameter("rnMgtSn");

String bdMgtSn  = request.getParameter("bdMgtSn");

String detBdNmList  = request.getParameter("detBdNmList");

/** 2017년 2월 추가제공 **/

String bdNm  = request.getParameter("bdNm");

String bdKdcd  = request.getParameter("bdKdcd");

String siNm  = request.getParameter("siNm");

String sggNm  = request.getParameter("sggNm");

String emdNm  = request.getParameter("emdNm");

String liNm  = request.getParameter("liNm");

String rn  = request.getParameter("rn");

String udrtYn  = request.getParameter("udrtYn");

String buldMnnm  = request.getParameter("buldMnnm");

String buldSlno  = request.getParameter("buldSlno");

String mtYn  = request.getParameter("mtYn");

String lnbrMnnm  = request.getParameter("lnbrMnnm");

String lnbrSlno  = request.getParameter("lnbrSlno");

/** 2017년 3월 추가제공 **/

String emdNo  = request.getParameter("emdNo");


%>

</head>

<script language="javascript">

// opener관련 오류가 발생하는 경우 아래 주석을 해지하고, 사용자의 도메인정보를 입력합니다. ("주소입력화면 소스"도 동일하게 적용시켜야 합니다.)

//document.domain = "abc.go.kr";


function init(){

var url = location.href;

var confmKey = "api키값";  // 위에서 발급받은 api키값을 넣어줍니다.

var resultType = "4"; // 도로명주소 검색결과 화면 출력내용, 1 : 도로명, 2 : 도로명+지번, 3 : 도로명+상세건물명, 4 : 도로명+지번+상세건물명

var inputYn= "<%=inputYn%>";

if(inputYn != "Y"){

document.form.confmKey.value = confmKey;

document.form.returnUrl.value = url;

document.form.resultType.value = resultType;

document.form.action="http://www.juso.go.kr/addrlink/addrLinkUrl.do"; //인터넷망

//document.form.action="http://www.juso.go.kr/addrlink/addrMobileLinkUrl.do"; //모바일 웹인 경우, 인터넷망

document.form.submit();

}else{

opener.jusoCallBack("<%=roadFullAddr%>","<%=roadAddrPart1%>","<%=addrDetail%>","<%=roadAddrPart2%>","<%=engAddr%>","<%=jibunAddr%>","<%=zipNo%>", "<%=admCd%>", "<%=rnMgtSn%>", "<%=bdMgtSn%>", "<%=detBdNmList%>", "<%=bdNm%>", "<%=bdKdcd%>", "<%=siNm%>", "<%=sggNm%>", "<%=emdNm%>", "<%=liNm%>", "<%=rn%>", "<%=udrtYn%>", "<%=buldMnnm%>", "<%=buldSlno%>", "<%=mtYn%>", "<%=lnbrMnnm%>", "<%=lnbrSlno%>", "<%=emdNo%>");

window.close();

}

}

</script>

<body onload="init();">

<form id="form" name="form" method="post">

<input type="hidden" id="confmKey" name="confmKey" value=""/>

<input type="hidden" id="returnUrl" name="returnUrl" value="<c:url value='/cnsgn/entpr/insertCnsgnEntprMngmeView.do'/>"/>

<input type="hidden" id="resultType" name="resultType" value=""/>

<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 START-->

<!-- 

<input type="hidden" id="encodingType" name="encodingType" value="EUC-KR"/>

-->

<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 END-->

</form>

</body>

</html>

반응형
반응형

JSP - 페이징 처리


ajax통신을 통해서 List와 List의 갯수를 가져와 페이징처리를 적용해봤습니다.

생각보다 게시물수와 리스트페이지수만 바꾸면 자동으로 되게 하려했으나 생각보다 어지러워서 되는대로 짜버렸습니다....

일단 게시물 5개에 리스트 5개띄우는거에서 사용가능하며 아래는 레이어 팝업으로 ajax통신을 통해 데이터를 가져와 띄우는 형식이라 

소스가 더러우실수도있으나 참고하시려면... 참고하시길 바랍니다. 



SQL

아래와같이 SELECT를 3번해서 가져오는게 오라클 대용량 처리라고합니다.


List 쿼리문

SELECT 

no, id, nm 

FROM (

SELECT 

no, id, nm, ROWNUM as rnum

FROM (

SELECT 

no, id, nm

FROM List테이블;

ORDER BY no

) WHERE ROWNUM <= #{lastIndex}

)WHERE rnum > #{firstIndex}


List 개수가져오는 쿼리문

SELECT COUNT(*) FROM List테이블




JSP-자바스크립트


function fn_List_popup(data,num) {

var id = data;

var page = num; //현재페이지

var countList = 5; // 페이지에 게시물 수 (고정)

var countPage = 5; // 리스트 페이지수 (고정)

var totalCount; // 총게시물갯수 = selectListTotCnt

var totalPage; // 생성될 전체 페이지 수

var startPage;

var endPage;

$.ajax({

    type:"POST",

    url:_ctx+"/usr/selectListTotCnt.json",

    data: {'id':id },

    success: function(data) {

    totalCount=data.resultTotCnt; // 총게시물 갯수 설정

    totalPage = Math.floor(totalCount / countList); // 게시물의 리스트갯수 계산

    if (totalCount % countList > 0) {

    totalPage++; // 나머지가 있으면 전체페이지수가 +1이 된다.

}

    var pageMath= Math.floor(page/5.0000001)+1;

    startPage = (pageMath-1)*5+1;//((page - 1) / 10) * 10 + 1; 

    endPage = totalPage;

    var totalPageMath = Math.floor(totalPage/5.0000001)+1;

   

    if(totalPage<6){

    $("#paging2").html("");

    for(var i=startPage; i<=totalPage; i++){

    $("#paging2").append("<a href='#' onclick='fn_List_popup

("+id+","+i+")'>&nbsp;"+i+"&nbsp;</a>");

    }

    } else if( totalPageMath == pageMath ){

    $("#paging2").html("");

    $("#paging2").append("<a href='#' onclick='fn_List_popup("+dprtmId+",1)'> << </a>");

    $("#paging2").append("<a href='#' onclick='fn_List_popup("+dprtmId+","+(startPage-5)+")'> &nbsp;<&nbsp; </a>");

    for(var i=startPage; i<=totalPage; i++){

    $("#paging2").append("<a href='#' onclick='fn_List_popup("+dprtmId+","+i+")'>&nbsp;"+i+"&nbsp;</a>");

    }

    } else if(totalPage > countPage){

    $("#paging2").html("");

    if(pageMath != 1){

    $("#paging2").append("<a href='#' onclick='fn_List_popup("+dprtmId+",1)'> << </a>");

    $("#paging2").append("<a href='#' onclick='fn_List_popup("+dprtmId+","+(pageMath-1)+")'> &nbsp;<&nbsp; </a>");

    }

    for(var i=startPage; i<=startPage+4; i++){

    $("#paging2").append("<a href='#' onclick='fn_List_popup("+dprtmId+","+i+")'>&nbsp;"+i+"&nbsp;</a>");

    }

    $("#paging2").append("<a href='#' onclick='fn_List_popup("+dprtmId+","+(startPage+5)+")'> &nbsp;>&nbsp; </a>");

    $("#paging2").append("<a href='#' onclick='fn_List_popup("+dprtmId+","+endPage+")'> >> </a>");

    }

   

    var firstIndex = countList*(page-1)+1;

    var lastIndex = page*countList;

   

    $(".List").html("");

    $(".popup").show(); //팝업오픈

    //데이터 가져오기

    $.ajax({

        type:"POST",

        url:_ctx+"/usr/selectList.json",

        data: {'dprtmId':dprtmId, 'firstIndex':firstIndex, 'lastIndex':lastIndex },

        success: function(data) {

        $.each(data.resultList,function(index,value){

        $(".popup .popupTable tbody").append('<tr class="List"><td>'+(firstIndex)+'</td><td>'+value.id+'</td><td class="bor_r_0">'+value.nm+'</td></tr>');

        firstIndex++;

        });

        }

    })

   

   

    }

})

}


JSP-HTML


<a href="#" class="grayBtn2" onclick="fn_List_popup('<c:out value="${result.id}"/>','1')">조회</a></td>


<!-- 팝업 -->

<div class="popup" style="display:none;">

    <h1 class="popupT">유저정보<span class="closeBtn"></span></h1>

    <div class="popupCon">

        <table class="popupTable">

            <caption class="blind"></caption>

            <colgroup>

                <col width="20%">

                <col width="40%">

                <col width="40%">

            </colgroup>

            

            <thead class="">

                <tr>

                    <th scope="col">NO</th>

                    <th scope="col">ID</th>

                    <th scope="col"  class="bor_r_0">이름</th>

                </tr>

            </thead>

            

        </table>

            <div id="paging2"></div>

   

    </div>

</div>

<!-- //팝업 -->




반응형

'IT > JSP' 카테고리의 다른 글

JSP - JSTL 데이터 포맷  (0) 2017.11.15
JSTL - c:forEach 리스트 합계구하기  (0) 2017.11.02
JSP - 아이디 중복 체크  (0) 2017.11.01
JSTL - c:forEach문, c:if문, c:choose문(else문)  (0) 2017.10.27
반응형

RDBMS (Relational DataBase Management System)


RDBMS는 관계형 데이터베이스를 관리하기위한 소프트웨어입니다.

테이블(Table based)기반의 DBMS로 데이터를 조건에 따라서 테이블의 행과 열로 나누어 관리하는 시스템입니다.

E-R(Entity Relationship)모델을 사용하며 RDBMS으로 MSSQL, Oracle, MySQL, MariaDB, CUBRID 등이 있습니다.



RDB (Relational DataBase)


RDB는 관계형 데이터베이스를 뜻하며 모든 데이터를 계층구조가 아닌 2차원의 단순한 표(관계)로 표현하는 형식의 데이터베이스입니다.

관계형 데이타 모델에 기초를 둔 데이타베이스로서 수학적 이론에 기반을 두고있습니다.



RDBMS의 기능


데이터베이스 언어

데이터베이스 언어는 DBMS에 대해 다양한 지시를 전달하기위한 언어입니다. 

개념적으로, 데이터정의언어(DDL), 데이터조작언어(DML), 데이터제어언어(DCL)의 구성되있습니다. 

DDL은 데이터베이스의 구조를 정의합니다. 

DML은 데이터베이스에 대한 검색 및 업데이트 등의 작업을 실시합니다. 

DCL은 데이터에 대한 액세스 제어를 실시합니다.

RDBMS에서는 관계모델을 기반으로 데이터베이스언어를 갖추고 있으며, RDBMS의 데이터조작언어는 관계모델의 관계대수와 관계논리에 근거합니다.

RDBMS로하는 시스템의 대부분은 데이터베이스 언어 SQL을 갖추고있습니다.


물리적 데이터 독립성

데이터베이스를 저장하는 저장 장치를 변경할 때, 그에 따라 RDBMS에 액세스하는 방법을 변경할 필요는 없습니다. 

RDBMS에 액세스하는 사용자나 응용프로그램 소프트웨어에 대한 RDBMS는 저장 장치의 변경을 은폐할 수있습니다.


논리적 데이터 독립성

RDBMS에서는 도출관계(뷰)에 따라 논리적 데이터 독립성을 지원합니다.

파생관계는 관계대수 또는 관계논리 식으로 이름을 붙인 것입니다. 파생 관계는 관계의 일종이며, 뷰라고도 불립니다. 

또한 도출 관계를 사용하면 복잡한 검색 및 업데이트 등의 데이터 조작을 단순화하여 설명 할 수있습니다.


데이터 무결성

데이터 무결성은 잘못된 데이터가 등록되는 것이나, 잘못된 데이터로 업데이트되는 것을 방지하는 것을 말합니다. 

RDBMS는 정의역, 데이터 형식, 고유 제한 조건, 참조 무결성 제약, CHECK 제약 조건, 트리거 등의 기능을 갖추고있습니다.


트랜잭션 처리

ACID 속성을 기반으로 트랜잭션 처리를 실시합니다. 

여러 사용자가 동시에 동일한 데이터를 참조, 갱신 한 경우에도 일관성있게 제대로 처리 합니다.


보안

대부분의 RDBMS는 보안 (안전)에 대해 임의의 액세스제어 또는 강제액세스제어 를 제공하고, 

일부 RDBMS는 데이터 암호화 기능도 제공합니다. 

많은 RDBMS에서는 임의의 액세스 제어를 채용하고있다 ( SQL 에서는 임의 액세스 제어만을 규정하고있다). 

SQL의 임의 액세스 제어에서는 GRANT 문을 사용하여 이용자 (인증 식별자)를 지정하여 

그 이용자가 액세스 할 수있는 개체 (관계 등) 및 액세스유형 (검색, 업데이트 등)을 정의합니다.

데이터 암호화 기능은 RDBMS를 우회 한 잘못된 데이터 액세스에 대한 대책으로 RDBMS에서 관리. 전송되는 데이터를 암호화합니다.


복구

트랜잭션 장애, 시스템 장애, 기억 매체 의 장애 복구를 실시합니다.


최적화

데이터조작언어에 의한 고차관계대수와 관계논리에서 작성된 데이터 처리요구를 저수준 절차에 최적화 실행합니다.


분산 데이터베이스

분산 데이터베이스는 네트워크로 연결된 여러 대의 컴퓨터를 사용하여 

각각의 컴퓨터에서 DBMS의 프로세스를 작동시키고 움직 전체로 가상으로 하나의 DBMS를 실현하는 기술입니다. 

여러 대의 컴퓨터를 사용하기 때문에 가용성과 성능을 향상시킬 수있습니다.

클라이언트서버의 데이터베이스는 분산데이터베이스 간단하고 특수한 형태로 자리 매김 할 수있습니다.

반응형
반응형

네이티브 앱

통화, 카메라, 진동, GPS 등 모바일기기에서 지원하는 고유기능들을 사용가능하며, OS에서 제공되는 모든API에 액세스할 수 있습니다.

OS제조사에서 제공하는 개발언어와 툴을 사용하며 UI 등 앱제작에 필요한 다양한 요소가 패키지화 되어있고, 편리한 개발툴 제공 및 라이브러리나 함수들이 내장되어있어 개발이 편리합니다.

네이티브 앱은 성능과 디바이스의 액세스 가용성이 높아 고성능의 어플리케이션 개발시에 유리합니다.

인터넷이 사용 가능하지 않은 환경에서도 일부 기능을 작동할 수 있습니다.

하지만 모바일 OS에서 제공하는 언어, 툴 등이 달라 해당언어와 툴에 전문적인 지식이 필요하며, 높은 비용과 많은 시간이 걸리는 단점이 있습니다.

배포는 앱스토어, 플레이스토어 등에서 다운로드받거나 패키지로 직접 설치할수 있습니다.


OS의 종류로는 ios, android, 블랙베리 os, window 등이 있습니다.


각 스토어, 패키지, 언어, 툴 등은 다음과 같습니다.


 

 스토어

 패키지 

 언어 

 툴 

 ios

 App Store

 .app

 Object-C, C, C++

 Xcode

 android

 Play Store

 .apk

 JAVA, C, C++

 android SDK

 블랙베리 os

 Blackberry App world

 .cod

 JAVA

 BB JACA EELIPSE 플러그인

 window

 Window Phone MarketPlace

 .xap

 C#, VB.NET

 비쥬얼 스튜디오, window 개발툴




모바일 웹 앱

모바일 웹의 특징을 가지면서도 네이티브앱의 특징도 가지고 있는 웹을 기반으로한 앱입니다.

통화, 카메라, 진동, GPS 등 모바일기기에서 지원하는 고유기능들을 사용이 불가능합니다.

실행 속도는 빠르지만 인터넷 접속 속도에 영향을 받으며, 인터넷 사용이 안되는 환경에서 사용할 수 없습니다.

웹 방식은 네이티브앱과 하이브리앱보다는 간단하며 비용이 적게 들지만 웹기반이라 기능상으로 많은 제한이 있는 단점이 있습니다.

 



하이브리드 앱

하이브리드 방식은 위 두방식을 합친 것으로, 여러 OS를 한 번에 지원해야 할 경우 선호되는 방식입니다

모바일 기기에서 지원하는 고유정보를 이용가능하며, 배포 또한 앱스토어나 마켓에서 다운로드받아 설치 가능합니다.

네이티브앱 안에 웹뷰 기능을 통해 웹을 얹어서 화면을 구성하며 , 현재 개발툴로 하이브리드 앱 프레임워크 Ionic, Famo.us 등을 사용하여 더 편하게 앱을 만들수도 있습니다.

중요한 화면은 웹으로 구성되기 때문에 개발기간이 상대적으로 적게 걸리고, 개발 비용 또한 상대적으로 적은 편입니다.



반응형

'IT' 카테고리의 다른 글

IT 계층구조  (0) 2018.01.25
css - 긴글 자동 줄바꿈  (0) 2018.01.12
JSP / 자바스크립트 / 자바 데이터 및 함수호출  (0) 2017.11.10
[JAVA/JS/JSP] 문자와 숫자 길이 구하기 - length  (0) 2017.11.08
ERD 표기방법  (0) 2017.09.29
반응형


SELECT문


조건식

SELECT [* | DISTINCT] 컬럼

FROM TABLE명

[ WHERE 조건 ]

[ GROUP BY 컬럼 ]

[ HAVING 검색조건 ]

[ ORDER BY 컬럼 [ ASC | DESC ] 


데이터 처리순서

1. FROM

2. ON

3. JOIN

4. WHERE

5. GROUP BY

6. WITH CUBE 또는 WITH ROLLUP

7. HAVING

8. SELECT

9. DISTINCT

10. ORDER BY

11. TOP


*기본

SELECT * FROM TABLE명;  // TABLE명에 있는 모든 컬럼의 데이터를 찾는다.

SELECT 컬럼1, 컬럼2, 컬럼3 FROM TABLE명 // TABLE의 컬럼1, 컬럼2, 컬럼3의 데이터를 찾음

SELECT 컬럼1 AS 별칭 FROM TABLE명 // 컬럼1 AS 별칭 데이터를 뽑을때 컬럼1의 컬럼명이 별칭으로 바뀜


*집계 함수(숫자 데이터)

SUM() // 컬럼 데이터의 합

AVG() // 컬럼 데이터의 평균

COUNT() // 컬럼의 데이터 갯수

MAX() // 컬럼 데이터의 MAX값

NIN() // 컬럼 데이터의 MIN값


EX) SELECT SUM(컬럼1) FROM TABLE명 // 컬럼1의 모든데이터의 합을 가져옴.


*수치함수(숫자 데이터)

ROUND(데이터, 반올림위치) //반올림 및 자릿수

ABS() // 절대값

SIGN() // 부호

SQRT() // 제곱근

POWER(데이터, n) // n승


*문자열 함수(문자 데이터)

Ascii() // 문자열의 제일 왼쪽 문자의 아스키 코드 값을 반환(Integer형)

Char() // 정수 아스키 코드를 문자로 반환(Char형)

Charindex(찾을문자, 데이터, 찾을시작위치) // 문자열에서 지정한 식의 위치를 반환

Left() // 문자열에서 왼쪽에서부터 지정한 수만큼의 문자를 반환

Len() // 문자열의 길이 반환

Lower() // 대문자를 소문자로 반환

Ltrim() // 문자열의 왼쪽 공백 제거

Nchar()  // 지정한 정수 코드의 유니코드 문자 반환

Replace(데이터, 바꾸고싶은문자, 바꿀문자) -  문자열에서 바꾸고 싶은 문자 다른 문자로 변환

Replicate() // 문자식을 지정한 횟수만큼 반복

Reverse() // 문자열을 역순으로 출력

Right(데이터, 지정수) // 문자열의 오른쪽에서 부터 지정한 수 만큼 반환(Left() 와 비슷 )

Rtrim() // 문자열의 오른쪽 공백 제거

Space() // 지정한 수만큼의 공백 문자 반환

Substring(데이터,가져올자릿수, 길이) // 문자,이진,텍스트 또는 이미지 식의 일부를 반환

Unicode() // 식에 있는 첫번째 문자의 유니코드 정수 값을 반환

Upper() // 소문자를 대문자로 반환

Isnumeric() // 해당 문자열이 숫자형이면 1 아니면 0을 반환

Isdate() // 해당 문자열이 Datetime이면 1 아니면 0


WHERE 조건

SELECT * FROM TABLE명 WHERE 컬럼1=1; // 모든 컬럼의 데이터에서 컬럼1의 데이터가 1인 모든 컬럼의 데이터 값을 찾음


조건 함수

IS NULL // 데이터가 NULL인 값 가져오기 

BETWEEN A AND B // A와 B사이에 있는걸 가져옴

LIKE a% // a로 시작되는

LIKE %a% // a를 포함하는

LIKE a% // a로 끝나는

LIKE a_ // a로 시작하는 2자리

LIKE a___ // a로 시작하는 4자리

LIKE __a // a로 끝나는 3자리  

컬럼 IN (a, b) // 컬럼이 a이거나 b인 데이터 가져오기


SELECT DISTINCT 컬럼 FROM TABLE명 // 중복되지 않는 데이터만 가져옴

SELECT TOP n * FROM TABLE명 // 상위 n개의 데이터만 가져오기


ORDER BY 컬럼1 ASC  // 컬럼1 기준으로 오름차순

ORDER BY 컬럼1 DESC // 컬럼1 기준으로 내림차순



※HAVING이나 빠진부분은 추후 업데이트하겠습니다.


반응형
반응형

형변환 + 데이터 포맷


import { DatePipe } from '@angular/common';


var datePipe = new DatePipe("en-US");

var date2 = datePipe.transform(new Date(), 'yyyyMMddHHmm'); // 현재 시간 가져와서 date포맷

var result= Number.parseInt(date2); // date를 int로 형변환 


1. y represents year. 

2. M represents month. 

3. d represents day. 

4. E represents week day. 

5. h represents hour(12). 

6. H represents hour(24). 

7. m represents minute. 

8. s represents seconds. 

9. z represents timezone. 





Timer


import { Observable } from 'rxjs/Observable';


 this.data = new Observable(observer => {

  setTimeout(() => {

},1000); // 1초에 실행됨


setTimeout(() => {


observer.complete();


        },15000); // 15초에 실행됨.

       });





Date Number타입변환


*Date는 Number로 변환해서 시간연산가능


var nowTime = Number(new Date());

반응형
반응형

ERD표기 방법과 해석







은 하나의 로 구성되어 있다.




은 하나 이상의 로 구성되어 있다.




은 하나 이하의 로 구성되어 있다.




은 0 또는 하나 이상의 로 구성되어 있다.





ERD란



반응형
반응형

id, class, name으로 접근


$("#id") // id는 1개만가능

$(".class") // class는 중복가능

$("tag_name[name=name]") // 



값 가져오기 및 값변경하기


.val();  // 값을 가져올때나 변경할때

.text(); // text만 가져오거나 변경

.html(); // text+html태그 가져오거나 변경


.empty(); // 값 비우기 .val("");랑 비슷하다고 보면됩니다.

.remove(); // tag까지 제거



포커스


.focus(); // focus 줄때

.blur(); // focus 벗어날때



클릭


.click(); // click 이벤트



마우스이벤트


.mouseenter(); // 마우스on 이벤트

.mouseleave(); // 마우스out 이벤트

.hover(); // 마우스오버이벤트



애니메이션


.fadeIn() // 애니메이션 서서히 생기는 (값안에 시간 or slow fast입력시 속도조절가능)

.fadeOut() // 서서히 사라지는

.slideUp() // 위로 사라짐 시간조절 가능

.slideDown() // 아래로 나타남


animate({},시간값);

animate({},function(){}); // 애니메이션이 끝나고 함수안에 또 애니메이션을 넣을수있음



클래스 css


.addClass('추가할 클래스 이름')

.removeClass('제거할 클래스 이름');


.attr('속성','속성값'); // src="", alt="", title="" 값 변경


.css('css속성','값'); // float, display, width, height, color, background, margin, padding 등 여러 속성 제어가능 



태그


.hide(); // 숨기기

.show(); // 나타내기


대상1.append(대상2); // 대상1 태그안에 대상2 태그를 넣을수있음

대상2.appendTo(대상1); // 대상1 태그안에 대상2 태그를 넣을수있음


text창 활성화 비활성화

$("input").prop('disabled', true); // 비활성화

$("input").prop('disabled', false);  // 활성화

반응형

'IT > Jquery' 카테고리의 다른 글

Jquery 사용하기  (0) 2017.09.28
반응형

Jquery 사용하기


제이쿼리란?

jQuery는 HTML 속 클라이언트 사이드 스크립트 언어를 단순화 하도록 설계된 브라우저 호환성이 있는 JavaScript 라이브러리입니다. 존 레식에 의해, 2006년 뉴욕 시 바캠프(Barcamp NYC)에서 공식적으로 소개되었습니다. 현재 가장 인기있는 JavaScript 라이브러리이며 표준에 가까운 점유율을 자랑합니다.

기능적으로야 더 좋은 라이브러리들도 많지만, jQuery가 순식간에 업계를 장악한 특장점은 바로 무지하게 쉽고 간편하다는 점입니다. 

비프로그래머인 웹디자이너들도 어렵지않게 이해할 수 있을 만큼 쉬운 편이며, DOM구조와 CSS에 대한 지식만 있다면 애니메이션 같은 건 바로 이해가 가능할정도입니다.


제이쿼리 다운로드

제이쿼리를 사용하기 위해서는 js파일을 다운로드 받아서  직접 import해주거나 url로 import해주시면 됩니다.

https://jquery.com/download/ 

위에서 다운로드 받을 수 있습니다.


import하기

다운로드를 받으셨다면 프로젝트 폴더에 넣어주시고 경로에 맞게 작성해주시면 됩니다.


<script src="/js/jquery-1.12.4.js"></script>


다운로드 없이 사용하시려면 아래를 입력해주시면 됩니다.


<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 

반응형

'IT > Jquery' 카테고리의 다른 글

Jquery 기본적인 명령어 및 이벤트  (0) 2017.09.29

+ Recent posts