YYYY-MM-DD 형식


1
2
3
4
5
6
SELECT 
TO_DAYS('2017-01-31'
- 
TO_DAYS('2017-01-25')
AS result;
 
cs


1
2
3
4
5
6
SELECT 
TO_DAYS('2017-01-31'
- 
TO_DAYS('2017-01-25')
AS result;
 
cs



서브쿼리 사용도 가능

1
2
3
4
5
6
SELECT 
TO_DAYS((SELECT rental.RETURNDAY from rental WHERE rental.RENTALCODE=1000000)) 
- 
TO_DAYS((SELECT rental.RETURNEXPECTDAY from rental WHERE rental.RENTALCODE=1000000))
AS result;
 
cs


'SQL' 카테고리의 다른 글

oracle date YYYY-MM-DD 변환  (0) 2017.05.11
유효성 검사 쿼리  (0) 2017.03.29
프로시저  (0) 2017.02.26
MySql 테이블 명세서 쿼리  (0) 2017.02.26
[mybatis]like문  (0) 2017.02.26

프로시저

프로시저는 여러개의 쿼리문을 묶어서 함수처럼 실행할수 있게 하는것이다.

db서버측에 저장된다.

매개변수로 bookcodeid를 받아 3가지 작업을 처리하는 프로시져


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//생성
DELIMITER //
CREATE PROCEDURE rent(inputbookcode int(30), inputid varchar(30)) 
BEGIN 
INSERT INTO rental (bookcode,memberid,rentalstartday,RETURNEXPECTDAY) 
VALUES(inputbookcode,inputid,now(),'2017-01-31'); 
UPDATE member  SET member.RENTALCOUNT=1 WHERE MEMBERID='mid001'
UPDATE books  set CURRENTSTATUS='대여불가능' WHERE BOOKCODE=800000;
END// 
DELIMITER ; 
 
//호출
call rent(800000,'mid001'); 
//프로시져 조회
SHOW CREATE PROCEDURE rent_back;
 
 
cs


'SQL' 카테고리의 다른 글

유효성 검사 쿼리  (0) 2017.03.29
mysql 날짜 차이구하기  (0) 2017.02.26
MySql 테이블 명세서 쿼리  (0) 2017.02.26
[mybatis]like문  (0) 2017.02.26
[mybatis]getgeneratedkeys  (0) 2017.02.26

SELECT 

ORDINAL_POSITION '필드순번', 

COLUMN_NAME '필드명', 

DATA_TYPE '데이터 TYPE', 

COLUMN_TYPE '데이터 LENGTH', 

COLUMN_KEY 'KEY', 

IS_NULLABLE 'NULL값여부', 

EXTRA '자동여부', 

COLUMN_DEFAULT '디폴트값', 

COLUMN_COMMENT '필드설명' 

FROM INFORMATION_SCHEMA.COLUMNS 

WHERE 

TABLE_SCHEMA = '사용자가 작성한 데이터베이스이름' 

AND 

TABLE_NAME = '사용자가 작성한 테이블이름' 

ORDER BY TABLE_NAME, ORDINAL_POSITION 

'SQL' 카테고리의 다른 글

유효성 검사 쿼리  (0) 2017.03.29
mysql 날짜 차이구하기  (0) 2017.02.26
프로시저  (0) 2017.02.26
[mybatis]like문  (0) 2017.02.26
[mybatis]getgeneratedkeys  (0) 2017.02.26


Oracle


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int staffNo = 0//생성된 행의 키를 받을 변수
String[] keyCol ={"no"}; //키값이 생성되는 컬럼 명
 
            staffPstmt = conn.prepareStatement //쿼리문 세팅
                    ("INSERT INTO STAFF (no,name,sn,graduateday,schoolno,religionno) VALUES"
                            + "(STAFF_SEQ.nextval,?,?,?,?,?)",keyCol);
            staffPstmt.setString(1,staff.getName());
            staffPstmt.setString(2, staff.getSn());
            staffPstmt.setString(3, staff.getGraduateday());
            staffPstmt.setInt(4, staff.getSchool().getNo());
            staffPstmt.setInt(5, staff.getReligion().getNo());
 
            staffRow = staffPstmt.executeUpdate(); //쿼리실행
            rs=staffPstmt.getGeneratedKeys(); //ResultSet 타입으로 결과 받아옴
            if(rs.next()){
                staffNo = rs.getInt(1); 
                //이부분에서 rs.getInt("컬럼명"); 이렇게하면 키값을 불러올수없다.
                //절대로 rs.getInt(1); 이렇게 해야한다.
            }
cs
 


MySql


1
2
3
4
5
6
pstmt = con.prepareStatement("insert into ......", Statement.RETURN_GENERATED_KEYS);
pstmt.executeUpdate();
rs = pstmt.getGeneratedKeys();
if(rs.next()){
    out.println(rs.getInt(1));
}
cs


'JSP&Servlet' 카테고리의 다른 글

jstl 문자열 자르기 조건문  (0) 2017.03.14
커넥션 풀  (0) 2017.02.26
이벤트 리스너(event listener)  (0) 2017.02.26
ServletContext / ServletConfig init-param 차이점  (0) 2017.02.26
필터  (0) 2017.02.26


스크립트

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<script>
    $(document).on('click','#btn1',function(){  //버튼클릭시이벤트
        $.ajax({ //jquery ajax
            url:'/oneSelectRental'//비동기통신할 주소
            type:'get',   //데이터전송방식
            data:$('form').serialize(), //form 태그 안의 데이터 전송
            dataType : "json"//서버측에서 전송한 데이터 해석할 타입
            success:function(data){ //통신 성공시 실행되는 함수 data는 서버측에서 전송한 데이터
                console.log('success');                                
                $('#bookName').text(data.book.bookName);
                $('#memberId').text(data.memberId);
                $('#rentalStartDay').text(data.rentalStartDay);
                $('#returnExpectDay').text(data.returnExpectDay);
                $('#returnDay').text(data.returnDay);
                $('#returnStatus').text(data.returnStatus);
                $('#rentalPrice').text(data.rentalPrice);
                $('#result1').css("display","");
            }
        });
    });
</script>
cs


pom.xml 

dependency에 json형식으로 변환시켜주는 라이브러리인 jackson을 추가

1
2
3
4
5
6
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.8.5</version>
</dependency>
cs


controller 에서 객체를 json형식으로 변환해 리턴

1
2
3
4
5
6
7
8
9
//하나의 대여정보 대여코드로 조회
@RequestMapping(value = "oneSelectRental", method = RequestMethod.GET)
public @ResponseBody Rental oneSelectRental(Model model, //리턴타입 앞에 @ResponseBody애노테이션을 달면 리턴객체를json형식으로변환해리턴
        @RequestParam(value = "rentalCode") int rentalCode){
    logger.debug("oneSelectRental");
    logger.debug(rentalCode+"");
    Rental rental = libService.oneSelectRental(rentalCode);
    return rental;
}
cs


jquery 에서 each문 사용

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<script>
    $(document).on('click','#btn1',function(){
        $.ajax({
            url:'/booksearch',
            type:'post',
            data:$('form').serialize(),
            dataType : "json",
            success:function(data){
                console.log('success');
                var list = data
                $("#result1").css("display","");
                    
                $.each(list, function(i) {
                    console.log(list[i]);
                    $("#searchList").append("<tr>");
                    $("#searchList").append("<td>" + list[i].bookName + "</td>");
                    $("#searchList").append("<td>" + list[i].writer + "</td>");
                    $("#searchList").append("<td>" + list[i].publisher + "</td>");
                    $("#searchList").append("<td>" + list[i].category + "</td>");
                    $("#searchList").append("<td>" + list[i].genre + "</td>");
                    $("#searchList").append("<td>" + list[i].lib.libName + "</td>");
                    $("#searchList").append("<td>" + list[i].bookLocation + "</td>");
                    $("#searchList").append("<td>" + list[i].currentStatus + "</td>");
                    $("#searchList").append("</tr>");
                   });     
            }
        });
    });
</script>
cs





'Spring' 카테고리의 다른 글

[spring]한글 인코딩 필터  (0) 2017.02.26
1
2
3
4
5
6
7
8
SELECT
    * 
from 
    Books
WHERE 
    books.${searchOption} 
LIKE
    '%${searchValue}%';
cs



#{} 대신 ${} 을 사용한다.

'SQL' 카테고리의 다른 글

유효성 검사 쿼리  (0) 2017.03.29
mysql 날짜 차이구하기  (0) 2017.02.26
프로시저  (0) 2017.02.26
MySql 테이블 명세서 쿼리  (0) 2017.02.26
[mybatis]getgeneratedkeys  (0) 2017.02.26
1
2
3
4
5
    <!-- 대여 -->
    <insert id="insertRental" parameterType="com.naver.blog.valueObject.Rental" 
            useGeneratedKeys="true"  keyProperty="rentalCode">
        Query...
    </insert>
cs


parameterType 으로 받은 dto 객체의 keyProperty="property" 에 setting된다.


'SQL' 카테고리의 다른 글

유효성 검사 쿼리  (0) 2017.03.29
mysql 날짜 차이구하기  (0) 2017.02.26
프로시저  (0) 2017.02.26
MySql 테이블 명세서 쿼리  (0) 2017.02.26
[mybatis]like문  (0) 2017.02.26

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<web-app>
    <!-- 한글인코딩 필터 -->
    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>
cs
 

'Spring' 카테고리의 다른 글

spring jquery ajax 예제  (1) 2017.02.26

+ Recent posts