Springmvc调用存储过程,并返回存储过程返还的数据方式

网友投稿 726 2022-11-23

Springmvc调用存储过程,并返回存储过程返还的数据方式

Springmvc调用存储过程,并返回存储过程返还的数据方式

目录Springmvc调用存储过程,并返回存储过程返还的数据实现如下这里要重点说明一下Springmvc调用存储过程,entity文件写法

Springmvc调用存储过程,并返回存储过程返还的数据

java后端很多时候都需要和数据库进行交互,并返回业务数据。一般情况下都会采用执行SQL的方式来进行交互,但有些特别的场景时,也可以直接利用存储过程返回数据。

存储过程返回数据的好处是只需要一个调用,即可根据不同的参数返回不同的业务数据,这些业务数据有可能列名完全不一样。

实现如下

首先要先定义SqlMap.xml文件:

{call sp_test_returnmap(?,?)}

这里要重点说明一下

1、返回的resultClass="java.util.HashMap",一定要是HashMap,如果直接写Map的话会报错,因为Map是一个接口,不能对接口进行实例化,HashMap是一个类,可以进行实例化。

2、一定要加上remapResults="true",否则的话当存储过程返回的列不一致时,会导致系统报错。

定义基础类api:

public interface YjspgjService {

String KEY="yjspgj.YjspgjService";

public ResultCommon selectTest(Map map);

}

定义实现类service:

@Service(YjspgjService.KEY)

public class YjspgjServiceImpl extends SubService implements YjspgjService {

@Autowired

private YjspgjDao yjspgjDao;

public ResultCommon selectTest(Map map) {

// TODO Auto-generated method stub

ResultListData result=new ResultListData(PasCloudCode.SUCCESS);

List listData=yjspgjDao.selectTest(map);

result.setRows(listData);

return result;

}

}

定义数据库操作类dao:

@Repository

public class YjspgjDao {

private static final Logger log = LoggerFactory.getLogger(YjspgjDao.class);

@Autowired

private IBaseDAO ibaseDAO;

public List selectTest(Map map){

String sqlKey="yjspgj_test";

return (List)ibaseDAO.selectInfoByPara(sqlKey, map);

}

}

调用controller:

@Controller

@RequestMapping("/yjspgj")

public class YjspgjController extends BaseController {

@Autowired

YjspgjService yjspgjService;

private static Gson gson = new GsonBuilder().serializeNulls().create();//用于json格式的转化

@RequestMapping("/showData")

@ResponseBody

public void showData(HttpServletRequest request, HttpServletResponse response){

Map map=new HashMap();

setMap(map,request);//自行定义Map的值

ResultListData rc= (ResultListData) yjspgjService.selectTest(map);

List list=rc.getRows();

for(int i=0;i

try {

response.getWriter().write(list.get(i).toString()+"\n");

http://} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

@Override

protected Class setClass() {

// TODO Auto-generated method stub

return this.getClass();

}

}

Springmvc调用存储过程,entity文件写法

{call approveAdTask(

#{sn,mode=IN,jdbcType=VARCHAR}

,#{ssn,mode=IN,jdbcType=VARCHAR}

,#{psn,mode=IN,jdbcType=VARCHAR}

,#{sname,mode=IN,jdbcType=VARCHAR})}

try {

response.getWriter().write(list.get(i).toString()+"\n");

http://} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

@Override

protected Class setClass() {

// TODO Auto-generated method stub

return this.getClass();

}

}

Springmvc调用存储过程,entity文件写法

{call approveAdTask(

#{sn,mode=IN,jdbcType=VARCHAR}

,#{ssn,mode=IN,jdbcType=VARCHAR}

,#{psn,mode=IN,jdbcType=VARCHAR}

,#{sname,mode=IN,jdbcType=VARCHAR})}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:echarts常用饼图、圆环图示例
下一篇:企业钟情于混合App开发,小程序容器技术能让效率提升100%
相关文章

 发表评论

暂时没有评论,来抢沙发吧~