springboot + mybatis call oracle stored procedure

A stored procedure parameter is VARCHAR

Code logic: controller Layer Entity class object definition entities, and to store the input parameters entity.set assignment procedure, the entity class assignment after passed through the service layer dao layer, and then call the stored procedure through the layer dao

1-1 stored procedure parameters

IN_STR IN VARCHAR,
OUT_STR OUT VARCHAR
View Code

1-2 controller layer

@RequestMapping ( "/ TestPro" ) 
@ResponseBody 
public String TestPro () {
     // perform oracle stored procedure
     // entity class are the input parameters an output parameter write
     // Write less parameters given: (wrong number or types of arguments in call to 'stored procedure') 
    HelloProEntity entity = new new HelloProEntity (); 
    entity.setIN_STR ( ". 1"); // configuration input parameters 
    controllerService.GetTestPro (entity); // the entity with input parameters passed Service layer, Service layer calls Dao layer, Dao sql layer entity corresponding to find 
    the try { 
        String STR = entity.getOUT_STR ();
         return STR; 
    } the catch (Exception e) {
        return "null";
    }
}
View Code

 1-3 service layer

public HelloProEntity GetTestPro (HelloProEntity testproentity) {
     return dao.GetTestPro (testproentity); 
}
View Code

1-4 dao layer

public HelloProEntity GetTestPro (HelloProEntity testproentity);
View Code

1-5 entity class

public class HelloProEntity implements Serializable {
    private static final long serialVersionUID = -6556793741331167103L;
    private String IN_STR;
    private String OUT_STR;

    public String getIN_STR() {
        return IN_STR;
    }

    public void setIN_STR(String iN_STR) {
        IN_STR = iN_STR;
    }

    public String getOUT_STR() {
        return OUT_STR;
    }

    public void setOUT_STR(String oUT_STR) {
        OUT_STR = oUT_STR;
    }

}
View Code

1-6 mapper

<select id="GetTestPro" parameterType="com.kh.zzkanban1.Entyties.HelloProEntity" useCache="false"
       statementType="CALLABLE">
   <![CDATA[ 
    {call JCG_TEST(
    #{IN_STR,mode=IN,jdbcType=VARCHAR},
    #{OUT_STR,mode=OUT,jdbcType=VARCHAR}
    )}
]]> 
</select>
View Code

 

2 is a stored procedure parameter DATE

Based on the configuration of the first point, service layer dao layer need not be changed, change Controller, entity class, Mapper

The main note: the stored procedure output parameter is an input parameter DATE format, mapper jdbcType defined as DATE, entity classes Timestamp format to use custom attributes, or minutes and seconds will turn 00:00:00.

After the resulting output timestamp, then new SimpleDateFormat. ( "Yyyy-MM-dd HH: mm: ss") format (entity.getM_GROUP_END ()) transformed into the time format string.

Stored procedure parameter 2-1

M_DATETIME            IN DATE,
M_SEGMENT_BEGIN OUT DATE,
M_SEGMENT_END    OUT DATE,
M_GROUP_BEGIN     OUT DATE,
M_GROUP_END        OUT DATE,
M_SEGMENT_NO      OUT INTEGER, 
M_GROUP_CODE      OUT VARCHAR2, 
RES                         OUT VARCHAR2 
View Code

2-1 controller layer

@RequestMapping ( "/ GETPRO" ) 
@ResponseBody 
public PGetTimeSlotInfoEntity TestPro () throws SQLException { 
    PGetTimeSlotInfoEntity Entity = new new PGetTimeSlotInfoEntity (); 
    the SimpleDateFormat DF = new new the SimpleDateFormat ( "the MM-dd-YYYY HH: mm: SS" ); 
    String Time = DF .format ( new new a Date ()); 
    timestamp TS = Timestamp.valueOf (time); // get the current time timestamp 
    entity.setM_DATETIME (TS); // to DATE stamp to the input parameter assignment 
    service.GetPro (entity );
     return Entity; 
}
View Code

2-2 entity class

public class PGetTimeSlotInfoEntity implements Serializable {
    private static final long serialVersionUID = -6556793741331167103L;
    private Timestamp M_DATETIME;
    private Timestamp M_SEGMENT_BEGIN;// 这里不用Date,应为传不了时分秒
    private Timestamp M_SEGMENT_END;
    private Timestamp M_GROUP_BEGIN;
    private Timestamp M_GROUP_END;
    private String M_SEGMENT_NO;
    private String M_GROUP_CODE;
    private String RES;

    public Timestamp getM_DATETIME() {
        return M_DATETIME;
    }

    public void setM_DATETIME(Timestamp m_DATETIME) {
        M_DATETIME = m_DATETIME;
    }

    public Date getM_SEGMENT_BEGIN() {
        return M_SEGMENT_BEGIN;
    }

    public void setM_SEGMENT_BEGIN(Timestamp m_SEGMENT_BEGIN) {
        M_SEGMENT_BEGIN = m_SEGMENT_BEGIN;
    }

    public Date getM_SEGMENT_END() {
        return M_SEGMENT_END;
    }

    public void setM_SEGMENT_END(Timestamp m_SEGMENT_END) {
        M_SEGMENT_END = m_SEGMENT_END;
    }

    public Timestamp getM_GROUP_BEGIN() {
        return M_GROUP_BEGIN;
    }

    public void setM_GROUP_BEGIN(Timestamp m_GROUP_BEGIN) {
        M_GROUP_BEGIN = m_GROUP_BEGIN;
    }

    public Timestamp getM_GROUP_END() {
        return M_GROUP_END;
    }

    public void setM_GROUP_END(Timestamp m_GROUP_END) {
        M_GROUP_END = m_GROUP_END;
    }

    public String getM_SEGMENT_NO() {
        return M_SEGMENT_NO;
    }

    public void setM_SEGMENT_NO(String m_SEGMENT_NO) {
        M_SEGMENT_NO = m_SEGMENT_NO;
    }

    public String getM_GROUP_CODE() {
        return M_GROUP_CODE;
    }

    public void setM_GROUP_CODE(String m_GROUP_CODE) {
        M_GROUP_CODE = m_GROUP_CODE;
    }

    public String getRES() {
        return RES;
    }

    public void setRES(String rES) {
        RES = rES;
    }

}
View Code

2-3 mapper

    <select id="GetPro" parameterType="com.kh.zzkanban1.Entyties.PGetTimeSlotInfoEntity" useCache="false"
        statementType="CALLABLE">
    <![CDATA[ 
        {call P_GET_TIME_SLOT_INFO(
        #{M_DATETIME,mode=IN,jdbcType=DATE},
        #{M_SEGMENT_BEGIN,mode=OUT,jdbcType=DATE},
        #{M_SEGMENT_END,mode=OUT,jdbcType=DATE},
        #{M_GROUP_BEGIN,mode=OUT,jdbcType=DATE},
        #{M_GROUP_END,mode=OUT,jdbcType=DATE},
        #{M_SEGMENT_NO,mode=OUT,jdbcType=INTEGER},
        #{M_GROUP_CODE,mode=OUT,jdbcType=VARCHAR},
        #{RES,mode=OUT,jdbcType=VARCHAR}
        )}
    ]]> 
    </select>
View Code

 

Guess you like

Origin www.cnblogs.com/JICG/p/10985268.html