java mapper报错dtd_mybatis直接使用自定义sql查询数据

dao层,增加SqlMapper.java和 对应的SQLMapper.xml

package rg.contacts.mapper;

import java.util.LinkedHashMap;

import java.util.List;

import rg.contacts.vo.SqlVo;

public interface SQLMapper {

List> selectBysql(SqlVo sqlVo);

}

${sql}

其中,使用 java.util.LinkedHashMap 作为返回类型,可以保持结果集本来的字段顺序。

为了避免出现 :there no getter sql in java.lang.String 的异常,需要将sql分装到SqlVo.java

package rg.contacts.vo;

public class SqlVo {

private String sql;

public String getSql() {

return sql;

}

public void setSql(String sql) {

this.sql = sql;

}

}

如果不用sqlV封装的话,可以将mapper改为${value}:即可以不报错,也可以避免使用SqlVo.java

${value}

最后service的调用方式:

@Service

public class GiftServiceImpl implements GiftService {

@Autowired

private SQLMapper sqlMapper;

@Override

public List> selectBySQL(Integer sqlStr) {

// TODO Auto-generated method stub

SqlVo sqlVo = new SqlVo();

sqlVo.setSql(sqlStr);

return sqlMapper.selectBysql(sqlVo);

}

}

为了避免出现值null的列,不能被保存到 LinkedHashMap对象 中,需要在mybatis 的配置文件中加如下配置:


版权声明:本文为weixin_39977934原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。