欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Springmvc調用存儲過程,并返回存儲過程返還的數據方式

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

Springmvc調用存儲過程,并返回存儲過程返還的數據

java后端很多時候都需要和數據庫進行交互,并返回業(yè)務數據。一般情況下都會采用執(zhí)行SQL的方式來進行交互,但有些特別的場景時,也可以直接利用存儲過程返回數據。

存儲過程返回數據的好處是只需要一個調用,即可根據不同的參數返回不同的業(yè)務數據,這些業(yè)務數據有可能列名完全不一樣。

實現如下

首先要先定義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();
 } 
}

Springmvc調用存儲過程,entity文件寫法

<!--廣告任務申請,被審核通過-->
	<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>

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 解決logback的日志文件路徑問題

    解決logback的日志文件路徑問題

    這篇文章主要介紹了解決logback的日志文件路徑問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • IDEA 2019.2.2配置Maven3.6.2打開Maven項目出現 Unable to import Maven project的問題

    IDEA 2019.2.2配置Maven3.6.2打開Maven項目出現 Unable to import Maven

    這篇文章主要介紹了IDEA 2019.2.2配置Maven3.6.2打開Maven項目出現 Unable to import Maven project的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Java中StringTokenizer的用法簡介匯總

    Java中StringTokenizer的用法簡介匯總

    StringTokenizer?是出于兼容性的原因而被保留的遺留類(雖然在新代碼中并不鼓勵使用它),建議所有尋求此功能的人使用?String?的?split?方法或?java.util.regex?包,本文給大家整理了Java?StringTokenizer用法,感興趣的朋友一起看看吧
    2022-07-07
  • Java面試題-實現復雜鏈表的復制代碼分享

    Java面試題-實現復雜鏈表的復制代碼分享

    這篇文章主要介紹了Java面試題-實現復雜鏈表的復制代碼分享,小編覺得還是挺不錯的,具有參考價值,需要的朋友可以了解下。
    2017-10-10
  • 如何解決@NotBlank不生效的問題

    如何解決@NotBlank不生效的問題

    這篇文章主要介紹了如何解決@NotBlank不生效的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Spring?Security權限管理實現接口動態(tài)權限控制

    Spring?Security權限管理實現接口動態(tài)權限控制

    這篇文章主要為大家介紹了Spring?Security權限管理實現接口動態(tài)權限控制,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 手把手帶你理解java線程池之工作隊列workQueue

    手把手帶你理解java線程池之工作隊列workQueue

    這篇文章主要介紹了java線程池之工作隊列workQueue,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • @JsonSerialize注解的使用示例教程

    @JsonSerialize注解的使用示例教程

    在開發(fā)中,有時候某些字段需要特殊處理,比如我們有一個日期字段,當日期為NULL時給前端不返回NULL而返回為其他等信息,就需要自定義字段的序列化,這就是@JsonSerialize的用處,本文給大家介紹@JsonSerialize注解的使用,感興趣的朋友一起看看吧
    2023-11-11
  • 如何使用Sentry 監(jiān)控你的Spring Boot應用

    如何使用Sentry 監(jiān)控你的Spring Boot應用

    這篇文章主要介紹了如何使用Sentry 監(jiān)控你的Spring Boot應用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • Java虛擬機調用Java主類的main()方法

    Java虛擬機調用Java主類的main()方法

    這篇文章主要介紹了Java虛擬機調用Java主類的main()方法,前一篇文章我們介紹了關于Java虛擬機HotSpot
    2021-11-11

最新評論