在queryForList()中使用自定义类

时间:2013-05-02 03:45:51

标签: sql spring jdbctemplate

我试图在 JDBCTemplate.queryForList 方法中使用自定义类作为元素类型,但是没有返回任何数据或任何错误。

自定义类代码为:

public class DocumentCategory {
        private int categoryId;
        private String description;
        private int divnId;
        private int depttId;
        private String revCategory;
        private boolean withBids;
        private boolean withFinalDocuments;
        private boolean editable;
        private int templateId;
        private String templateName;
        private boolean changed;
        private String remarks;
        private boolean withBidsChanged;
        private boolean withFinalDocumentsChanged;
        private int sortOrder;

        private String vdrNumber;

        public int getCategoryId() {
            return categoryId;
        }
        public void setCategoryId(int categoryId) {
            this.categoryId = categoryId;
        }
        public String getDescription() {
            return description;
        }
        public void setDescription(String description) {
            this.description = description;
        }
        public int getDivnId() {
            return divnId;
        }
        public void setDivnId(int divnId) {
            this.divnId = divnId;
        }
        public int getDepttId() {
            return depttId;
        }
        public void setDepttId(int depttId) {
            this.depttId = depttId;
        }
        public String getRevCategory() {
            return revCategory;
        }
        public void setRevCategory(String revCategory) {
            this.revCategory = revCategory;
        }
        public boolean isEditable() {
            return editable;
        }
        public void setEditable(boolean editable) {
            this.editable = editable;
        }
        public int getTemplateId() {
            return templateId;
        }
        public void setTemplateId(int templateId) {
            this.templateId = templateId;
        }
        public String getTemplateName() {
            return templateName;
        }
        public void setTemplateName(String templateName) {
            this.templateName = templateName;
        }
        public boolean isChanged() {
            return changed;
        }
        public void setChanged(boolean changed) {
            this.changed = changed;
        }
        public String getRemarks() {
            return remarks;
        }
        public void setRemarks(String remarks) {
            this.remarks = remarks;
        }
        public boolean getWithFinalDocuments() {
            return withFinalDocuments;
        }
        public void setWithFinalDocuments(boolean withFinalDocuments) {
            this.withFinalDocuments = withFinalDocuments;
        }
        public boolean getWithBids() {
            return withBids;
        }
        public void setWithBids(boolean withBids) {
            this.withBids = withBids;
        }
        public boolean isWithBidsChanged() {
            return withBidsChanged;
        }
        public void setWithBidsChanged(boolean withBidsChanged) {
            this.withBidsChanged = withBidsChanged;
        }
        public boolean isWithFinalDocumentsChanged() {
            return withFinalDocumentsChanged;
        }
        public void setWithFnalDocumentsChanged(boolean withFinalDocumentsChanged) {
            this.withFinalDocumentsChanged = withFinalDocumentsChanged;
        }
        public String getVdrNumber() {
            return vdrNumber;
        }
        public void setVdrNumber(String vdrNumber) {
            this.vdrNumber = vdrNumber;
        }
        public int getSortOrder() {
            return sortOrder;
        }
        public void setSortOrder(int sortOrder) {
            this.sortOrder = sortOrder;
        }

}

查询代码为:

sql = "SELECT -serialno as categoryId, describe as description,16 as divnId, 51 as depttId , NVL2( prnmatter, 'For Review', 'For Record') as revCategory, NVL2( prnquote, 1, 0) as withBids, NVL2( asbuild, 1, 0) as withFinalDocuments, VDRNO as vdrNumber, 0 as editable,100000 as templateId,'Instrumentation' as templateName, 0 as changed, '' as remarks, 0 as withBidsChanged, 0 as  withFinalDocumentsChanged, serialno as  sortOrder from Instreq.VDRData_to_DCTMVIEW WHERE REQNO=? AND PROJECTNO=? and predate= (SELECT * FROM(SELECT PREDATE FROM Instreq.VDRData_to_DCTMVIEW WHERE REQNO=? AND PROJECTNO=? ORDER BY PREDATE DESC) WHERE ROWNUM=1 )";
final List<DocumentCategory> dc = jdbcTemplate.queryForList(sql, DocumentCategory.class, orderNumber, mrNumber, orderNumber, mrNumber);

1 个答案:

答案 0 :(得分:1)

使用query method taking a RowMapper as argument,并通过RowMapper将结果集中返回的每一行转换为DocumentCategory。

当查询返回单个列时,

queryForList()非常有用,例如,返回List<Integer>List<String>