日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

java访问数据库视图_java 访问数据库视图

發(fā)布時間:2023/12/20 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java访问数据库视图_java 访问数据库视图 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

工作多年調(diào)用視圖到多次,自己寫代碼使用視圖還是頭一回,也覺得新鮮,那就開始唄, 數(shù)據(jù)庫系統(tǒng)是Oracle

1 我用的數(shù)據(jù)庫連接客戶端是Navicat ,首先創(chuàng)建視圖,其實(shí)視圖就是調(diào)用表的操作,提取自己需要的數(shù)據(jù)放到視圖下面,相對于java來說,可以把視圖看成是特殊的表對待,這里說的特殊指的是 通過hql語句調(diào)用訪問數(shù)據(jù)庫的時候涉及到關(guān)聯(lián)表的問題.? 創(chuàng)建視圖如下:

然后通過myeclipse的 hiberange reverse engineering 生成pojo和hbm.xml文件. 生成后發(fā)現(xiàn)生成了兩個pojo和一個hbm.xml文件,如下:

然后在代碼中使用的時候部分代碼如下:

if (idNumberStr.equals("")){

StringBuffer wherePart = new StringBuffer();

List parmaters = new ArrayList();

wherePart.append(" id.hrid = ? ");

parmaters.add(uniquedId);

wherePart.append(" and id.datetime >=? ");

parmaters.add(_startDate);

wherePart.append(" and id.datetime <=? ");

parmaters.add(_endDate);

cdaList = this.cdaDao.queryObjectsByWhere(

VICdaSummary.class, wherePart.toString(), parmaters.toArray(),

null, startRow, rowCount);

為什么代碼中要使用 id.hrid ,id.datetime? 等等,而不是直接使用hrid,datetime呢,查的也是VICdaSummary這個視圖啊, 原因是(hql語句的視圖查詢)使用的是聯(lián)合主鍵查詢,sql語句的視圖查詢不需要使用id.hrid等, 和查詢表一樣, 在 VICdaSummary.java 類中引用了 VICdaSummaryId.java類 ,且作為主鍵 ,參見下圖:

在參加下圖:

在視圖中我們應(yīng)該保證視圖中的每個字段都不為空(null ) ,因此我做了如下處理:

將可能為空的字段賦值為 empty ,字符串類型的 .

下面附上sql語句的視圖查詢部分代碼:

上圖中并沒有使用 id.HRID 是吧. ok 搞定.

補(bǔ)充:視圖的執(zhí)行是在,java調(diào)用該視圖的時候觸發(fā)該視圖執(zhí)行設(shè)計視圖的語句 ,然后從結(jié)果集中拿回java傳遞的語句所查詢的內(nèi)容. 讓部分操作交給數(shù)據(jù)庫系統(tǒng)執(zhí)行,尤其在涉及到多表操作時候,及其有用.

總結(jié)

以上是生活随笔為你收集整理的java访问数据库视图_java 访问数据库视图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。