takin17
3k
2015-12-24 18:22:45
2
1257

마이바티스와 자바 연동 바인딩 질문드립니다..


아래 예제보면 tb_bbs.read를 명시하고 , bbsno 변수에 int형을 mybatis 쿼리에 던지면

bbsno와 동일한 sql변수 #bbsno와 매칭이 되어 값이 바인딩된 후 실행이 되는지요?


자바에서 해당 sql 콜할때 넘겨지는 자바변수명과 xml의 sql변수 #으로 선언된 변수가 이름이 일치하는 방식으로

1:1 매칭이 되는 건지 궁금합니다


퇴근 전까지 간단한 select 작성해서 view단에 뿌렸는데 이제 조건절 동적 sql 예제 만들기만 남았네요..

퇴근시간이 되어서 부득이하게 캡쳐로 질문드립니다 ^^




0
  • 답변 2

  • lazer
    1k
    2015-12-24 19:12:18

    VO 나 map 을 인자로 넘기면 field 명이나 key 값 과 바인딩할 부분을 일치시켜야 하고

    인자가 하나면 명칭은 아무렇게 넣어도 알아서 바인딩 됩니다

  • dlqorgod
    396
    2015-12-26 10:21:47

    /godsoft.ibatis/src/main/java/godsoft/ibatis/bbs/service/BbsVO.java

    package godsoft.ibatis.bbs.service;
    
    public class BbsVO {
    
    	private Integer bbsno;
    	private String wname;
    	private String subject;
    	private String content;
    	private Integer readcnt;
    	private String ip;
    	private Integer grpno;
    
    	public Integer getBbsno() {
    		return bbsno;
    	}
    
    	public void setBbsno(Integer bbsno) {
    		this.bbsno = bbsno;
    	}
    
    	public String getWname() {
    		return wname;
    	}
    
    	public void setWname(String wname) {
    		this.wname = wname;
    	}
    
    	public String getSubject() {
    		return subject;
    	}
    
    	public void setSubject(String subject) {
    		this.subject = subject;
    	}
    
    	public String getContent() {
    		return content;
    	}
    
    	public void setContent(String content) {
    		this.content = content;
    	}
    
    	public Integer getReadcnt() {
    		return readcnt;
    	}
    
    	public void setReadcnt(Integer readcnt) {
    		this.readcnt = readcnt;
    	}
    
    	public String getIp() {
    		return ip;
    	}
    
    	public void setIp(String ip) {
    		this.ip = ip;
    	}
    
    	public Integer getGrpno() {
    		return grpno;
    	}
    
    	public void setGrpno(Integer grpno) {
    		this.grpno = grpno;
    	}
    
    }
    

    int: 0

    Integer: null


    /test.test/src/main/resources/godsoft/sqlmap/ibatis/bbs/Bbs_SQL_Oracle.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
    
    <sqlMap namespace="godsoft.ibatis.bbs.service.impl.BbsDAO">
    
    	<select id="godsoft.ibatis.bbs.service.impl.BbsDAO.selectBbsList" parameterClass="godsoft.ibatis.bbs.service.BbsVO" resultClass="java.util.HashMap">
    		<![CDATA[
    select
    	TB_BBS.BBSNO
    	, TB_BBS.WNAME
    	, TB_BBS.SUBJECT
    	, TB_BBS.CONTENT
    	, TB_BBS.READCNT
    	, TB_BBS.IP
    	, TB_BBS.GRPNO
    from TB_BBS
    where 1 = 1
    		]]>
    
    		<isNotEmpty property="bbsno">
    			and TB_BBS.BBSNO = #bbsno#
    		</isNotEmpty>
    
    		<isNotEmpty property="wname">
    			and TB_BBS.WNAME = #wname#
    		</isNotEmpty>
    
    		<isNotEmpty property="subject">
    			and TB_BBS.SUBJECT like '%' || #subject# || '%'
    		</isNotEmpty>
    
    		<isNotEmpty property="content">
    			and TB_BBS.CONTENT like '%' || #content# || '%'
    		</isNotEmpty>
    
    		<isNotEmpty property="readcnt">
    			<![CDATA[
    				and TB_BBS.READCNT > #readcnt#
    			]]>
    		</isNotEmpty>
    
    	</select>
    
    </sqlMap>



    파라미터는 VO 리절트는 map 사용 추천합니다.







  • 로그인을 하시면 답변을 등록할 수 있습니다.