Python 官方文档:入门教程 => 点击学习
目录springMVC调用存储过程,并返回存储过程返还的数据实现如下这里要重点说明一下springmvc调用存储过程,entity文件写法Springmvc调用存储过程,并返回存储过
java后端很多时候都需要和数据库进行交互,并返回业务数据。一般情况下都会采用执行sql的方式来进行交互,但有些特别的场景时,也可以直接利用存储过程返回数据。
存储过程返回数据的好处是只需要一个调用,即可根据不同的参数返回不同的业务数据,这些业务数据有可能列名完全不一样。
首先要先定义SqlMap.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "Http://ibatis.apache.org/dtd/sql-map-2.dtd" >
<sqlMap namespace="YjsPGJ">
<parameterMap id="yjspgj_test" class="java.util.Map">
<parameter property="v_dxlx" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN" />
<parameter property="i_qsrq" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN" />
</parameterMap>
<procedure id="yjspgj_test" resultClass="java.util.HashMap" remapResults="true" parameterMap="yjspgj_test">
{call sp_test_returnmap(?,?)}
</procedure>
</sqlMap>
1、返回的resultClass="java.util.HashMap",一定要是HashMap,如果直接写Map的话会报错,因为Map是一个接口,不能对接口进行实例化,HashMap是一个类,可以进行实例化。
2、一定要加上remapResults="true",否则的话当存储过程返回的列不一致时,会导致系统报错。
定义基础类api:
public interface YjspgjService {
String KEY="yjspgj.YjspgjService";
public ResultCommon selectTest(Map<String,Object> map);
}
定义实现类service:
@Service(YjspgjService.KEY)
public class YjspgjServiceImpl extends SubService implements YjspgjService {
@Autowired
private YjspgjDao yjspgjDao;
public ResultCommon selectTest(Map<String, Object> 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<String,Object> 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<String,Object> map=new HashMap();
setMap(map,request);//自行定义Map的值
ResultListData rc= (ResultListData) yjspgjService.selectTest(map);
List list=rc.getRows();
for(int i=0;i<list.size();i++){
try {
response.getWriter().write(list.get(i).toString()+"\n");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
@Override
protected Class setClass() {
// TODO Auto-generated method stub
return this.getClass();
}
}
<!--广告任务申请,被审核通过-->
<select id="approveAdTask" statementType="CALLABLE" parameterType="java.util.Map">
{call approveAdTask(
#{sn,mode=IN,jdbcType=VARCHAR}
,#{ssn,mode=IN,jdbcType=VARCHAR}
,#{psn,mode=IN,jdbcType=VARCHAR}
,#{sname,mode=IN,jdbcType=VARCHAR})}
</select>
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
--结束END--
本文标题: Springmvc调用存储过程,并返回存储过程返还的数据方式
本文链接: https://lsjlt.com/news/157029.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0