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

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

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

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

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

存儲(chǔ)過程返回?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)說明一下

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

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

定義基礎(chǔ)類api:

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

定義實(shí)現(xiàn)類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ù)操作類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ǔ)過程,entity文件寫法

<!--廣告任務(wù)申請(qǐng),被審核通過-->
	<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)整到打包外,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • Java實(shí)現(xiàn)手寫乞丐版線程池的示例代碼

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

    在這篇文章當(dāng)中我們主要介紹實(shí)現(xiàn)一個(gè)非常簡(jiǎ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)論

    唐海县| 普格县| 南宫市| 襄垣县| 启东市| 明水县| 香河县| 文昌市| 三都| 曲麻莱县| 泸西县| 夏津县| 永胜县| 乾安县| 班戈县| 彩票| 通榆县| 湟中县| 胶州市| 青龙| 邻水| 株洲市| 南乐县| 雷州市| 兰坪| 黎城县| 栖霞市| 龙江县| 青河县| 新津县| 康保县| 罗源县| 汝城县| 三台县| 濮阳县| 通江县| 民和| 日土县| 武威市| 天台县| 囊谦县|