最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Springmvc調(diào)用存儲(chǔ)過(guò)程,并返回存儲(chǔ)過(guò)程返還的數(shù)據(jù)方式

 更新時(shí)間:2021年11月11日 10:46:49   作者:weixin_39468112  
這篇文章主要介紹了Springmvc調(diào)用存儲(chǔ)過(guò)程,并返回存儲(chǔ)過(guò)程返還的數(shù)據(jù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Springmvc調(diào)用存儲(chǔ)過(guò)程,并返回存儲(chǔ)過(guò)程返還的數(shù)據(jù)

java后端很多時(shí)候都需要和數(shù)據(jù)庫(kù)進(jìn)行交互,并返回業(yè)務(wù)數(shù)據(jù)。一般情況下都會(huì)采用執(zhí)行SQL的方式來(lái)進(jìn)行交互,但有些特別的場(chǎng)景時(shí),也可以直接利用存儲(chǔ)過(guò)程返回?cái)?shù)據(jù)。

存儲(chǔ)過(guò)程返回?cái)?shù)據(jù)的好處是只需要一個(gè)調(diào)用,即可根據(jù)不同的參數(shù)返回不同的業(yè)務(wù)數(shù)據(jù),這些業(yè)務(wù)數(shù)據(jù)有可能列名完全不一樣。

實(shí)現(xiàn)如下

首先要先定義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> 

這里要重點(diǎn)說(shuō)明一下

1、返回的resultClass="java.util.HashMap",一定要是HashMap,如果直接寫(xiě)Map的話(huà)會(huì)報(bào)錯(cuò),因?yàn)镸ap是一個(gè)接口,不能對(duì)接口進(jìn)行實(shí)例化,HashMap是一個(gè)類(lèi),可以進(jìn)行實(shí)例化。

2、一定要加上remapResults="true",否則的話(huà)當(dāng)存儲(chǔ)過(guò)程返回的列不一致時(shí),會(huì)導(dǎo)致系統(tǒng)報(bào)錯(cuò)。

定義基礎(chǔ)類(lèi)api:

public interface YjspgjService {
 String KEY="yjspgj.YjspgjService";
 public ResultCommon selectTest(Map<String,Object> map);
}

定義實(shí)現(xiàn)類(lèi)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;
 } 
}

定義數(shù)據(jù)庫(kù)操作類(lèi)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);     
    } 
}

調(diào)用controller:

@Controller
@RequestMapping("/yjspgj")  
public class YjspgjController extends BaseController { 
 @Autowired 
 YjspgjService yjspgjService; 
  private static Gson gson = new GsonBuilder().serializeNulls().create();//用于json格式的轉(zhuǎn)化
 @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();
 } 
}

Springmvc調(diào)用存儲(chǔ)過(guò)程,entity文件寫(xiě)法

<!--廣告任務(wù)申請(qǐng),被審核通過(guò)-->
	<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>

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用springBoot項(xiàng)目配置文件位置調(diào)整到打包外

    使用springBoot項(xiàng)目配置文件位置調(diào)整到打包外

    這篇文章主要介紹了使用springBoot項(xiàng)目配置文件位置調(diào)整到打包外,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • Java實(shí)現(xiàn)手寫(xiě)乞丐版線(xiàn)程池的示例代碼

    Java實(shí)現(xiàn)手寫(xiě)乞丐版線(xiàn)程池的示例代碼

    在這篇文章當(dāng)中我們主要介紹實(shí)現(xiàn)一個(gè)非常簡(jiǎn)易版的線(xiàn)程池,深入的去理解其中的原理,麻雀雖小,五臟俱全,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)學(xué)習(xí)吧
    2022-10-10
  • 出現(xiàn)java.lang.NoSuchMethodException異常的解決(靠譜)

    出現(xiàn)java.lang.NoSuchMethodException異常的解決(靠譜)

    這篇文章主要介紹了出現(xiàn)java.lang.NoSuchMethodException異常的解決方案(靠譜),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 最新評(píng)論

    承德市| 武清区| 天祝| 永泰县| 汽车| 施秉县| 济南市| 郑州市| 凌海市| 阿鲁科尔沁旗| 博乐市| 右玉县| 卓尼县| 界首市| 红桥区| 华亭县| 华宁县| 漳浦县| 得荣县| 平山县| 威海市| 九寨沟县| 台南市| 郯城县| 万载县| 思茅市| 德令哈市| 德江县| 理塘县| 砚山县| 紫金县| 老河口市| 收藏| 逊克县| 扬州市| 德州市| 安龙县| 宿迁市| 定日县| 增城市| 南召县|