react 前端框架如何驱动企业数字化转型与创新发展
726
2022-11-23
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
}
定义实现类service:
@Service(YjspgjService.KEY)
public class YjspgjServiceImpl extends SubService implements YjspgjService {
@Autowired
private YjspgjDao yjspgjDao;
public ResultCommon selectTest(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 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
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~