Sql Code Generate
透過native 產生相關物件
Last updated
Was this helpful?
透過native 產生相關物件
Last updated
Was this helpful?
通常複雜查詢對於ORM資料庫工具,常常不容易使用, 因此常常需要使用複雜sql 產生 po 與 mapper程式, 透過該程式可簡化物件產生
PO
/**
* 2023-03-23 generate 說明SQL:select s.*,to_char(sysdate,'HH24') time, sysdate from syscode s where
* type_id=?
*/
public class SampleDTO
implements Serializable
{
private String typeId;
private String codeId;
private String codeData1;
private String codeData2;
private String codeData3;
private String codeData4;
private String time;
private Timestamp sysdate;
public void setTypeId(String typeId) {
this.typeId = typeId;
}
public String getTypeId() {
return typeId;
}
public void setCodeId(String codeId) {
this.codeId = codeId;
}
public String getCodeId() {
return codeId;
}
public void setCodeData1(String codeData1) {
this.codeData1 = codeData1;
}
public String getCodeData1() {
return codeData1;
}
public void setCodeData2(String codeData2) {
this.codeData2 = codeData2;
}
public String getCodeData2() {
return codeData2;
}
public void setCodeData3(String codeData3) {
this.codeData3 = codeData3;
}
public String getCodeData3() {
return codeData3;
}
public void setCodeData4(String codeData4) {
this.codeData4 = codeData4;
}
public String getCodeData4() {
return codeData4;
}
public void setTime(String time) {
this.time = time;
}
public String getTime() {
return time;
}
public void setSysdate(Timestamp sysdate) {
this.sysdate = sysdate;
}
public Timestamp getSysdate() {
return sysdate;
}
}
public class SampleMapper {
private final JdbcOperations jdbcOperations;
public SampleMapper(JdbcOperations jdbcOperations) {
this.jdbcOperations = jdbcOperations;
}
private static io.github.h8000572003.domain.SampleDTO to(ResultSet rs, int index) {
io.github.h8000572003.domain.SampleDTO po = new io.github.h8000572003.domain.SampleDTO();
try {
po.setTypeId(rs.getString(SampleMapper.SampleDTOColumn.TYPE_ID.name()));
po.setCodeId(rs.getString(SampleMapper.SampleDTOColumn.CODE_ID.name()));
po.setCodeData1(rs.getString(SampleMapper.SampleDTOColumn.CODE_DATA1 .name()));
po.setCodeData2(rs.getString(SampleMapper.SampleDTOColumn.CODE_DATA2 .name()));
po.setCodeData3(rs.getString(SampleMapper.SampleDTOColumn.CODE_DATA3 .name()));
po.setCodeData4(rs.getString(SampleMapper.SampleDTOColumn.CODE_DATA4 .name()));
po.setTime(rs.getString(SampleMapper.SampleDTOColumn.TIME.name()));
po.setSysdate(rs.getTimestamp(SampleMapper.SampleDTOColumn.SYSDATE.name()));
return po;
} catch (final SQLException ex) {
throw new RuntimeException("error", ex);
}
}
private String getSql() {
final StringBuilder builder = new StringBuilder();
builder.append("select s.*,to_char(sysdate,'HH24') time, sysdate from syscode s where ");
builder.append(" type_id=? ");
return builder.toString();
}
public List<io.github.h8000572003.domain.SampleDTO> query() {
final List<Object> list = new ArrayList();
list.add("//TODO");
return jdbcOperations.query(getSql(), list.toArray(), SampleMapper::to);
}
public enum SampleDTOColumn {
TYPE_ID,
CODE_ID,
CODE_DATA1,
CODE_DATA2,
CODE_DATA3,
CODE_DATA4,
TIME,
SYSDATE;
}
}