<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    李李的技術博客

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      13 隨筆 :: 0 文章 :: 61 評論 :: 0 Trackbacks
    https://bba96.dev.java.net/
    源文件下載
    https://bba96.dev.java.net/servlets/ProjectDocumentList?folderID=4149&expandFolder=4149&folderID=0


    1. 核心持久層部分基于spring/hibernate,實現強大靈活的動態query功能,可獨立使用。
    2. 權限部分,基于RBAC,支持數據權限,依賴1部分的接口。
    3. Action層,基于1以及webwork,良好架構,減少大量代碼,支持view靈活進行query且有參數教驗支持保證安全性。

    簡單說bba96就是基于hibernate/spring的快速開發框架,其中包含了對Hibernate Critiera,Projection的封裝,通過一個強大而靈活的QueryObject對象,方便動態添加與刪除條件。
    通過統一的query與數據庫交互,方便AOP,其中的RBAC權限模塊(支持數據權限)即是通過AOP操作QueryObject對象來實現的。bba96核心可以跟流行的view整合,目前只有webwork整合的版本。

    bba96 不再需要自己寫DAO/SERVICE,借助簡單的spring ioc即可配置使用缺省DAO/SERVICE,而且通過靈活方便,易擴展的后臺持久層與webwork的整合,完全實現了快速開發的目的。


    Get Up And Running Quick

    Example:
    ?? (1) enter the example/simple or emample/book folder.
    ?????? NOTE:all following operation is under the folder you entered
    ?? (2) copy your JDBC driver (default mysql) to the lib directory
    ?????? -- webapps\ROOT\WEB-INF\lib
    ?? (3) edit hibernate.properties for database info (default mysql)
    ?????? -- src\main\java\hibernate.properties
    ?? (4) run "ant"
    ?? (5) create database via the sql script generated at database\schema-export.sql
    ?? (6) edit applicationContext.xml for database info (default mysql)
    ?????? -- webapps\ROOT\WEB-INF\applicationContext.xml (line 5 - 21)
    ?? (7) start server and see this example


    有使用上的討論,請聯系我 MSN: hotmail的帳號scorpio_leon
    posted on 2005-11-09 00:51 李李 閱讀(6389) 評論(45)  編輯  收藏 所屬分類: 技術

    評論

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2005-12-28 18:19 xrc8088
    看了一下你的代碼,我現在有一個問題,from A ,B 其中A,B是兩個沒有關聯的對象,你的代碼能不能實現?  回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2005-12-28 23:37 李李
    除非Critiera支持,目前不能,需要對象間有關聯,因為內部還是Critiera得query方法。  回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2005-12-29 12:38 xrc8088
    謝謝你的回答,那么你的框架為什么不用HQL來封裝,我覺的要靈活,強大一些!  回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2005-12-29 16:37 李李
    HQL應該跟Critiera+Projections比較,雖然我沒有仔細比較過,不過沒感覺HQL強大多少?我看Critiera+Projections都能實現嘛,或者你舉個例子讓我看看。 MSN: hotmail的帳號scorpio_leon  回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2005-12-30 12:35 xrc8088
    比如有一復雜的查詢,要求動態產生查詢語句(不僅僅是字段的值變化,字段也產生變化),不知道能否完成?還有你現在的web端用的是ww,能否用Struts?如果你有Struts整合的代碼,能否給我一份?Email:xuruchao8088@yahoo.com.cn  回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2005-12-30 21:02 李李
    這個很容易實現,只要有關聯,bba96在動態產生查詢語句方面比較強大的,特別是方便的別名無限關聯,以及復雜的邏輯關系組合。具體看QueryObject,QueryParam。
    不過暫時還沒有struts整合的代碼,而且以后struts ti將以webwork為核心,所以我也不打算為現有的struts做整合了,所謂不能整合只是不方便jsp調用,但是action層是直接支持的,不須特別整合。  回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2005-12-31 08:47 xrc8088
    謝謝你的回答,在struts中BaseAction的代碼是不是和你的代碼中DefaultActionSupport的代碼有相似的地方(ww我不熟悉),我現在的工程底層的想采用你的框架,所以要問的詳細一些。  回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2005-12-31 17:44 李李
    DefaultActionSupport一部分是簡化webwork持久化操作,另一部分就是解析jsp或者properties傳遞的參數,后面這部分是類似的,直接就可以用。我的框架已經應用在我以及其他用戶開發的很多工程中,你可以放心采用,建議取cvs上最新的。  回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2006-01-02 18:39 xrc8088
    我在用的過程中,有一個問題,好像不能用String作為主鍵,怎么辦?  回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2006-01-02 19:06 李李
    cvs最新的不限制主鍵類型  回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2006-01-02 21:50 xrc8088
    cvs username/pwd serverAdd?  回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2006-01-03 10:41 李李
    host:cvs.dev.java.net
    repository path:/cvs
    user:guest
    password:(空)
    然后
    check out bba96  回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2006-01-09 12:25 xrc8088
    李李 :你好,我現在在寫代碼的時候碰到了一些問題:1,我做查詢的時候,假設字段的值都不填,或者填的不全,或者都填寫,你的代碼好像不能自己來判斷?還是要我們自己來if-else?比如下面的代碼:
    DynaActionForm tradeInfoForm = (DynaActionForm) form;


    String startTime = (String) tradeInfoForm.get("startTime");

    String endTime = (String) tradeInfoForm.get("endTime");

    String tradeType = (String) tradeInfoForm.get("tradeType");

    String terminalId = (String) tradeInfoForm.get("terminalId");

    Date startTime2 = null;

    Date endTime2 = null;

    try {

    if (startTime != null && startTime.trim().length() > 0) {
    startTime2 = DateUtil.StringToDate(startTime);
    }

    if (endTime != null && endTime.trim().length() > 0) {

    endTime2 = DateUtil.StringToDate(endTime);
    }


    } catch (ParseException e) {


    e.printStackTrace();
    }

    String[] names = new String[] { startTime, endTime, tradeType,
    terminalId };
    String[] operators = new String[] { QueryParam.OPERATOR_GT,
    QueryParam.OPERATOR_LT, QueryParam.OPERATOR_EQ,
    QueryParam.OPERATOR_EQ };
    Object[] values = new Object[] { startTime2, endTime2, tradeType,
    terminalId };

    int total = entityManager.countAll(TradeInfo.class,names,operats,values);
    logger.debug("TradeInfo TotalCount " + total);

    List result = entityManager.findAll(TradeInfo.class,names,operats,values);

    如果不填的話,出現"The operator can only be set 'is' or '=' or 'is not' or '!=' when value is NULL!"異常,
      回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2006-01-09 12:35 xrc8088
    補充,簡單的說就是,通過上面的代碼,我可以查詢我想要的結果,我不用對查詢條件進行排列組合,不知道可不可以,我看了一下源碼,好像是可以,但是上面的語句為什么是錯誤的?  回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2006-01-09 21:35 李李
    The operator can only be set 'is' or '=' or 'is not' or '!=' when value is NULL!"
    這個異常就是告訴你現在的值是null,對應的操作符只能是=, !=, is, is not。

    因為查詢的字段有可能是對象,null是有意義,所以要忽略view傳過來的參數,應該由Action這層處理,缺省的頁面傳遞過來,有參數名的值,沒填的時候就是空,因此在我的webwork action中對空串作了忽略處理,同時還已經作了string到一般對象的轉換,你的jsp中可以這樣寫endTime_Date。以下這一段通過自動處理都能省掉,你可以參考一下,用struts也能實現。

    String startTime = (String) tradeInfoForm.get("startTime");

    String endTime = (String) tradeInfoForm.get("endTime");

    String tradeType = (String) tradeInfoForm.get("tradeType");

    String terminalId = (String) tradeInfoForm.get("terminalId");

    Date startTime2 = null;

    Date endTime2 = null;

    try {

    if (startTime != null && startTime.trim().length() > 0) {
    startTime2 = DateUtil.StringToDate(startTime);
    }

    if (endTime != null && endTime.trim().length() > 0) {

    endTime2 = DateUtil.StringToDate(endTime);
    }


    } catch (ParseException e) {


    e.printStackTrace();
    }

    String[] names = new String[] { startTime, endTime, tradeType,
    terminalId };
    String[] operators = new String[] { QueryParam.OPERATOR_GT,
    QueryParam.OPERATOR_LT, QueryParam.OPERATOR_EQ,
    QueryParam.OPERATOR_EQ };
    Object[] values = new Object[] { startTime2, endTime2, tradeType,
    terminalId };

      回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2006-01-13 14:25 rason
    能否實現在互相關聯的實體間的查詢,
    比如hibernate參考文檔中的例子,怎么能在這個框架中實現:
    createCriteria(Cat.class)
    .add( Restrictions.like("name", "F%")
    .createCriteria("kittens")
    .add( Restrictions.like("name", "F%")
    .list();  回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2006-01-13 20:57 李李
    find(Cat.class, new String[]{"name", "kittens:kitten.name"}, new String[]{"like", "like"}, new Object[]{"F%", "F%"})
    這是action/service的寫法,若你用webwork,框架中支持直接從jsp解析參數,就比較方便了。

    冒號后表示別名,還可以繼續進行關聯查詢如 kittens:kitten.propeties:property.name,沒有層次的限制。   回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2006-01-16 09:07 rason
    好!我就準備在這個項目中使用這個框架。
    有什么問題,還望多指教。  回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2006-01-16 12:09 李李
    用CVS上的吧,現在release的只支持Long的主鍵,CVS上的去掉了這個限制
    有問題可以加我的MSN或者到這里討論
    http://forum.bba96.com/forum.jspa?forumID=29&start=0
    還將加入權限控制的模塊,由于一直在趕項目,還來不及把權限發布,因為還有一些需要調整的代碼。  回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2006-01-16 17:13 rason
    李李,你的MSN是?  回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2006-01-16 23:04 李李
    上面有寫,MSN: hotmail的帳號scorpio_leon   回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2006-01-18 16:17 dfdf
    關聯查詢時,如果兩個實體是many-to-many,在主控方查出來后,怎么顯示出來?因為在many的一方有Set集合,在頁面顯示有問題?  回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2006-01-18 16:23 李李
    不太明白,頁面顯示有什么問題?Set一樣可以iterator  回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2006-01-19 09:46 dfdf
    已經解決,謝謝  回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2006-01-21 18:40 李李
    CVS上已加入前臺傳入的參數校驗以及額外增加參數的功能,都可以通過配置properties文件實現,增加了安全性及靈活性  回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2006-02-22 20:49 xrc8088
    李李 ,穩定版什么時候出來?  回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2006-02-23 10:11 李李
    現在cvs上的也是比較穩定的,暫時沒有發現bug。幾個項目從1.0開始都在用  回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2006-03-02 18:03 老仲
    projections.setProperty(new String[]{"id","itemcode","content"});

    輸出頁面上怎么寫?
      回復  更多評論
      

    # re: 快速開發框架bba96 正式加入dev.java.net的Java Enterprise Projects 2006-03-02 22:24 李李
    內部就是調用hibernate的projections.setProperty,hibernate支持什么結構就是什么結構  回復  更多評論
      

    # re: 基于hibernate/spring的含RBAC權限模塊的快速開發框架(目前與webwork整合) 2006-03-21 22:54 xrc
    能不能在你的bba96中加入調用存儲過程的代碼
      回復  更多評論
      

    # re: 基于hibernate/spring的含RBAC權限模塊的快速開發框架(目前與webwork整合) 2006-03-22 10:55 李李
    可以的
    我會給findByHQL加上names, values的參數,就可以調用了,但是這樣的調用受hibernate的一些限制,參考
    http://www.hibernate.org/hib_docs/v3/reference/en/html_single/#sp_query
    確實想不受限制,也可直接使用session.connection()獲得jdbc connection來調用
    CVS上的CoreEntityManager有public Object getCurrentSession()的方法,類型轉化為ore.hibenate.Session即可,缺省此方法不在EntityManager中提供。
    謝謝你的關注,請多提意見  回復  更多評論
      

    # re: 基于hibernate/spring的含RBAC權限模塊的快速開發框架(目前與webwork整合) 2006-03-22 13:45 xrc
    謝謝你的回答,我準備在項目中用你的代碼,不知有什么限制?  回復  更多評論
      

    # re: 基于hibernate/spring的含RBAC權限模塊的快速開發框架(目前與webwork整合) 2006-03-22 15:04 李李
    bba96使用LGPL發布,跟hibernate一樣的。  回復  更多評論
      

    # re: 基于hibernate/spring的含RBAC權限模塊的快速開發框架(目前與webwork整合) 2006-04-13 19:07 dddd
    to:李李 我在使用bba96的時候,對于父子關系的查詢,出現了異常,could not reslove property ,用到了屬性的別名,我在線等你的回答!  回復  更多評論
      

    # re: 基于hibernate/spring的含RBAC權限模塊的快速開發框架(目前與webwork整合) 2006-04-14 01:52 李李
    根據MSN的交流,上面的情況是沒有正確引用關聯表屬性,這也是hibernate使用者容易犯的錯誤。
    舉個hsql的例子,假設child:parent關系多對一,id是主鍵
    select from Child child where child.parent.id = 1 正確
    select from Child child where child.parent.name = 'name' 錯誤
    select from Child child left join child.parent p where p.name = 'name' 正確
    多(child)這邊本來就記錄了一(parent)的主鍵,parent的時候id是可以取得的,而hibernate多對一默認關聯使用代理Proxy,這個parent的代理就是先拿到id作代理準備的,parent.id就取到了,但是parent的其它屬性就需要顯式連接才可以取到。
    同理,相應的bba96的代碼就是
    parent.id 正確
    parent.name 錯誤
    parent:p.name 正確
      回復  更多評論
      

    # re: 基于hibernate/spring的含RBAC權限模塊的快速開發框架(目前與webwork整合) 2006-04-15 07:49 dddd
    謝謝你的回答,問題我已經全部解決!
      回復  更多評論
      

    # re: 基于hibernate/spring的含RBAC權限模塊的快速開發框架(目前與webwork整合) 2006-07-18 10:30 xiaochen
    代碼QueryWebUtils.java中如下參數
    age,>,20
    [and:a]id,>,100
    [and:a]id,!=,200
    [or:or_b]salary,>,200
    [or:or_b]salary,<,400
    [or:and_a]age,=,60
    [or:and_a]title,=,manager
    [not:or_a]age,=,30
    [not:or_a]title,=,cto
    生成sql:(age>20 and (age=60 or title=cto)) or (age=60 or title=cto) and not (age=60 or title=cto)
    為什么id和salary丟失了?
    而在DefaultActionSupport中如下參數
    age,>,20
    [and:a]id,>,100
    [and:a]id,!=,200
    [or:b]salary,>,200
    [or:b]salary,<,400
    [or:a]age,=,60
    [or:a]title,=,manager

    then the generated sql like this:
    age > 20 and (id > 100 and id != 200) or (salary > 200 and salary < 400) or (age = 60 and title = manager)
    兩者解析的方法有什么不同?
    另外在public static QueryParam generateQueryParam(String[] names, String[] operators, Object[] values)
    中有bug:判斷andParameters != null卻取得 notParameters.keySet();
    if (andParameters != null) {
    QueryParam innerQueryParam = new QueryParam();
    for (String key : notParameters.keySet()) {
    ……
    }
    }
    麻煩你解答一下,另外如果方便的話,說明一下參數的含義,從jsp--〉action--〉service有什么不同之處?謝謝你  回復  更多評論
      

    # re: 基于hibernate/spring的含RBAC權限模塊的快速開發框架(目前與webwork整合) 2006-07-18 16:44 李李
    為什么id和salary丟失了?
    --抱歉,這里遺漏了
    DefaultActionSupport是舊的版本,QueryWebUtils.java是tiger中重構過的版本,解析的方法是一致的,最新的以tiger版本為準
    notParameters.keySet(); 這里是bug,謝謝指正,馬上修正

    這里的用法僅是為了允許jsp的參數帶有簡單邏輯組合,可以自動處理為service可識別的參數類型  回復  更多評論
      

    # re: 基于hibernate/spring的含RBAC權限模塊的快速開發框架(目前與webwork整合) 2006-07-21 22:34 小陳故事
    謝謝解答,請把cvs上的bug修正
    if (andParameters != null) {
    QueryParam innerQueryParam = new QueryParam();
    for (String key : notParameters.keySet()) {
    .....
    }
    }
    queryParam.andParameter(innerQueryParam);
    }
    if (orParameters != null) {
    QueryParam innerQueryParam = new QueryParam();
    for (String key : notParameters.keySet()) {
    ... }
    queryParam.orParameter(innerQueryParam);
    }

    把這段中的notParameters.keySet() 改為相應的
    andParameters.keySet())
    orParameters.keySet()   回復  更多評論
      

    # re: 基于hibernate/spring的含RBAC權限模塊的快速開發框架(目前與webwork整合) 2006-07-23 13:40 李李
    已提交,謝謝  回復  更多評論
      

    # re: 基于hibernate/spring的含RBAC權限模塊的快速開發框架(目前與webwork整合) 2009-01-12 10:03 heby
    垃圾  回復  更多評論
      

    # re: 基于hibernate/spring的含RBAC權限模塊的快速開發框架(目前與webwork整合) [未登錄] 2009-08-24 21:40
    各位大俠
    哪位有上述博主提到的源代碼,請發給我一份
    在下不勝感激
    ldh199816@hotmail.com  回復  更多評論
      

    # re: 基于hibernate/spring的含RBAC權限模塊的快速開發框架(目前與webwork整合) [未登錄] 2009-08-24 21:41
    @劉
    ldh19816@hotmail.com  回復  更多評論
      

    # re: 基于hibernate/spring的含RBAC權限模塊的快速開發框架(目前與webwork整合) [未登錄] 2011-03-01 15:20
    87438194@qq.com
    各位大俠
    哪位有上述博主提到的源代碼,請發給我一份
    在下不勝感激
      回復  更多評論
      

    # re: 基于hibernate/spring的含RBAC權限模塊的快速開發框架(目前與webwork整合) 2011-03-03 12:02
    40736130@qq.com
    各位大俠
    哪位有上述博主提到的源代碼,請發給我一份
    在下不勝感激
      回復  更多評論
      

    主站蜘蛛池模板: 可以免费观看的毛片| 男女啪啪免费体验区| 99久久国产免费-99久久国产免费| 亚洲人成无码网站久久99热国产| 国内成人精品亚洲日本语音 | selaoban在线视频免费精品| 日韩免费视频播放| 久久精品国产亚洲av麻豆图片| 在线免费观看亚洲| 亚洲一级毛片视频| 国产卡二卡三卡四卡免费网址| 亚洲av无码片在线观看| 国产综合精品久久亚洲| 亚洲高清视频在线观看| 精品国产免费一区二区三区香蕉| 亚洲AV无码乱码在线观看裸奔| 99久久免费看国产精品| 亚洲精品亚洲人成在线播放| 巨胸喷奶水视频www网免费| 国产亚洲视频在线观看| 久久亚洲欧洲国产综合| 久久国产精品成人免费| 亚洲国产一区在线观看| 日韩免费观看一级毛片看看| 四虎国产精品成人免费久久 | 一区二区三区免费在线视频| 久久国产成人精品国产成人亚洲 | 美丽姑娘免费观看在线观看中文版| 亚洲综合在线观看视频| 久久精品无码一区二区三区免费| 亚洲爆乳少妇无码激情| 中文字幕日韩亚洲| 四虎在线视频免费观看视频| 亚洲综合欧美色五月俺也去| 亚洲国产成人VA在线观看| 亚洲视频在线免费观看| 亚洲乱码中文字幕在线| 亚洲精品无码永久在线观看你懂的 | a毛片基地免费全部视频| 国产国拍亚洲精品福利 | 免费观看在线禁片|