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

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

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

    歐陽良才

    不是別人,就是我陽良才
    隨筆 - 13, 文章 - 8, 評論 - 2, 引用 - 0
    數據加載中……

    2012年3月23日

    常用樹控件 tree

     jQuery plugin: Treeview 

    這個插件能夠把無序列表轉換成可展開與收縮的Tree。
     

    jQuery plugin: Treeview

     jQuery  

     jstree 

    jsTree是一個基于jQuery的Tree控件。支持XML,JSON,Html三種數據源。提供創建,重命名,移動,刪除,拖\放節點操作。可以自己自定義創建,刪除,嵌套,重命名,選擇節點的規則。在這些操作上可以添加多種監聽事件。 

    jstree

     jQuery UI Widgets  

     FileTreePanel 

    FileTreePanel擴展至Ext.tree.TreePanel附帶基本的文件/文件夾管理功能。其它還包括文件上傳,重命名,刪除,新建與移動。
    FileTree

    FileTreePanel

     ExtJs  

     jQuery File Tree 

    jQuery File Tree是一個可配置的Ajax文件瀏覽器jQuery插件。可以通過CSS定制外觀,指定文件樹展開圖標,可以自己定義展開/收縮事件、速度,配置加載信息等。 jQuery File Tree通過Ajax來獲取文件信息。

    jQuery File Tree

     jQuery  

     dhtmlxTree  

    dhtmlxTree是一個功能豐富的Tree Menu控件。提供豐富的操作API,AJAX支持和drag-n-drop功能。

    dhtmlxTree

     

     dTree 

    dTree是一個易于使用的JavaScript樹形菜單控件。支持無限分級,可以在同一個頁面中放置多個dTree,可以為每個節點指定不同的圖標。

    dTree

     

     Yahoo! UI Library: TreeView 

    YUI TreeView Control這個樹形組件,支持通過XMLHttpRequest對象動態加載節點數據,自定義每一個節點metadata。

    Yahoo! UI Library: TreeView

     YUI  

     Fonshen JS MenuTree 

    風聲JS菜單樹,程序基于JavaScript/XHTML/CSS標準實現。支持豐富的功能/表現定制:擁有表現和數據分離,單頁面可以應用多個無限級菜單樹,多達4種展開模式,風格樣式定義結構清晰、靈活又精細等等特性。

    Fonshen JS MenuTree

     Menu  

     Control.Treeview 

    采用Mootools開發的樹形菜單控件。支持通過Ajax動態獲取節點,設置默認選中某些節點。

    Control.Treeview

     Mootools  

     Folder Tree 

    文件夾樹形控件。支持利用拖放(drag and drop)操作來重新排序節點,利用Ajax更新節點。

    Folder Tree

    posted @ 2014-06-11 08:36 歐陽良才 閱讀(379) | 評論 (0)編輯 收藏

    JavaScript 分頁

         摘要: JavaScript 分頁  閱讀全文

    posted @ 2012-08-08 14:55 歐陽良才 閱讀(333) | 評論 (0)編輯 收藏

    jQUery 常用實例

    參考:  http://kb.cnblogs.com/page/152693/

    1. 如何創建嵌套的過濾器
    //允許你減少集合中的匹配元素的過濾器,  
    //只剩下那些與給定的選擇器匹配的部分。在這種情況下,  
    //查詢刪除了任何沒(:not)有(:has)  
    //包含class為“selected”(.selected)的子節點。  
    .filter(":not(:has(.selected))") 

      2. 如何重用元素搜索

    var allItems = $("div.item");  
    var keepList = $("div#container1 div.item");  
    //現在你可以繼續使用這些jQuery對象來工作了。例如,  
    //基于復選框裁剪“keep list”,復選框的名稱  
    //符合
    <DIV>class names:x
    $(formToLookAt + " input:checked").each(function() {  
        keepList = keepList.filter("." + $(this).attr("name"));  
    });  
    </DIV> 

      3. 任何使用has()來檢查某個元素是否包含某個類或是元素

    //jQuery 1.4.*包含了對這一has方法的支持。該方法找出  
    //某個元素是否包含了其他另一個元素類或是其他任何的  
    //你正在查找并要在其之上進行操作的東東。  
    $("input").has(".email").addClass("email_icon"); 

      4. 如何使用jQuery來切換樣式表

    //找出你希望切換的媒體類型(media-type),然后把href設置成新的樣式表。  
    $('link[media='screen']').attr('href', 'Alternative.css');  

      5. 如何限制選擇范圍(基于優化目的)

    //盡可能使用標簽名來作為類名的前綴,  
    //這樣jQuery就不需要花費更多的時間來搜索  
    //你想要的元素。還要記住的一點是,  
    //針對于你的頁面上的元素的操作越具體化,  
    //就越能降低執行和搜索的時間。  
    var in_stock = $('#shopping_cart_items input.is_in_stock');
    <ul id="shopping_cart_items">
     <li><input type="radio" value="Item-X" name="item" class="is_in_stock" />Item X</li>
     <li><input type="radio" value="Item-Y" name="item" class="3-5_days" />Item Y</li>
     <li><input type="radio" value="Item-Z" name="item" class="unknown" />Item Z</li>
    </ul> 

      6. 如何正確地使用ToggleClass

    //切換(toggle)類允許你根據某個類的  
    //是否存在來添加或是刪除該類。  
    //這種情況下有些開發者使用:  
    a.hasClass('blueButton') ? a.removeClass('blueButton') : a.addClass('blueButton');
    //toggleClass允許你使用下面的語句來很容易地做到這一點  
    a.toggleClass('blueButton'); 

      7. 如何設置IE特有的功能

    if ($.browser.msie) {
     // Internet Explorer其實不那么好用  
    } 

      8. 如何使用jQuery來代替一個元素

    $('#thatdiv').replaceWith('fnuh'); 

      9. 如何驗證某個元素是否為空

    if ($('#keks').html()) {
     //什么都沒有找到;  
    } 

      10. 如何從一個未排序的集合中找出某個元素的索引號

    $("ul > li").click(function () {
     var index = $(this).prevAll().length;
    }); 

      11. 如何把函數綁定到事件上

    $('#foo').bind('click', function () {
     alert('User clicked on "foo."');
    }); 

      12. 如何追加或是添加html到元素中

    $('#lal').append('sometext'); 

      13. 在創建元素時,如何使用對象字面量(literal)來定義屬性

    var e = $("", { href: "#", class: "a-class another-class", title: "..." }); 

      14. 如何使用多個屬性來進行過濾

    //在使用許多相類似的有著不同類型的input元素時,  
    //這種基于精確度的方法很有用  
    var elements = $('#someid input[type=sometype][value=somevalue]').get(); 

      15. 如何使用jQuery來預加載圖像

    jQuery.preloadImages = function () {
     for (var i = 0; i < arguments.length; i++) {
         $("<img />").attr('src', arguments[i]);
     }
    };
    //用法  
    $.preloadImages('image1.gif', '/path/to/image2.png', 'some/image3.jpg'); 

      16. 如何為任何與選擇器相匹配的元素設置事件處理程序

    $('button.someClass').live('click', someFunction);
    //注意,在jQuery 1.4.2中,delegate和undelegate選項  
    //被引入代替live,因為它們提供了更好的上下文支持  
    //例如,就table來說,以前你會用  
    //.live()  
    $("table").each(function () {
     $("td", this).live("hover", function () {
         $(this).toggleClass("hover");
     });
    });
    //現在用  
    $("table").delegate("td", "hover", function () {
     $(this).toggleClass("hover");
    }); 

      17. 如何找到一個已經被選中的option元素

    $('#someElement').find('option:selected'); 

      18. 如何隱藏一個包含了某個值文本的元素

    $("p.value:contains('thetextvalue')").hide(); 

      19. 如果自動滾動到頁面中的某區域

    jQuery.fn.autoscroll = function(selector) {  
     $('html,body').animate(  
         {scrollTop: $(selector).offset().top},  
         500  
     };  
    }  
    //然后像這樣來滾動到你希望去到的class/area上。  
    $('.area_name').autoscroll();  

      20. 如何檢測各種瀏覽器

    if( $.browser.safari)  //檢測Safari
    if ($.browser.msie && $.browser.version > 6 )//檢測IE6及之后版本
    if ($.browser.msie && $.browser.version <= 6 )  //檢測IE6及之前版本
    if ($.browser.mozilla && $.browser.version >= '1.8' )   //檢測FireFox 2及之后版本 

      21. 如何替換串中的詞

    var el = $('#id');    el.html(el.html().replace(/word/ig, '')); 

      22. 如何禁用右鍵單擊上下文菜單

    $(document).bind('contextmenu', function (e) {
     return false;
    }); 

      23. 如何定義一個定制的選擇器

    $.expr[':'].mycustomselector = function(element, index, meta, stack){  
     // element- 一個DOM元素  
     // index – 棧中的當前循環索引  
     // meta – 有關選擇器的元數據  
     // stack – 要循環的所有元素的棧  
     // 如果包含了當前元素就返回true  
     // 如果不包含當前元素就返回false };  
     // 定制選擇器的用法:  
     $('.someClasses:test').doSomething(); 

      24. 如何檢查某個元素是否存在

    if ($('#someDiv').length) {
     //你妹,終于找到了
    } 

      25. 如何使用jQuery來檢測右鍵和左鍵的鼠標單擊兩種情況

    $("#someelement").live('click', function (e) {
     if ((!$.browser.msie && e.button == 0) || ($.browser.msie && e.button == 1)) {
         alert("Left Mouse Button Clicked");
     } else if (e.button == 2) {
         alert("Right Mouse Button Clicked");
     }
    }); 

      26. 如何顯示或是刪除input域中的默認值

    //這段代碼展示了在用戶未輸入值時,  
    //如何在文本類型的input域中保留  
    //一個默認值  
    wap_val = [];
    $(".swap").each(function (i) {
     wap_val[i] = $(this).val();
     $(this).focusin(function () {
         if ($(this).val() == swap_val[i]) {
     $(this).val("");
         }
     }).focusout(function () {
         if ($.trim($(this).val()) == "") {
     $(this).val(swap_val[i]);
         }
     });
    }); 

      27. 如何在一段時間之后自動隱藏或關閉元素(支持1.4版本)

    //這是1.3.2中我們使用setTimeout來實現的方式  
    setTimeout(function () {
     $('.mydiv').hide('blind', {}, 500)
    }, 5000);
    //而這是在1.4中可以使用delay()這一功能來實現的方式(這很像是休眠)  
    $(".mydiv").delay(5000).hide('blind', {}, 500); 

      28. 如何把已創建的元素動態地添加到DOM中

    var newDiv = $('');
    newDiv.attr('id', 'myNewDiv').appendTo('body'); 

      29. 如何限制“Text-Area”域中的字符的個數

    jQuery.fn.maxLength = function (max) {
     this.each(function () {
         var type = this.tagName.toLowerCase();
         var inputType = this.type ? this.type.toLowerCase() : null;
         if (type == "input" && inputType == "text" || inputType == "password") {
     this.maxLength = max;
         }
         else if (type == "textarea") {
     this.onkeypress = function (e) {
      var ob = e || event;
      var keyCode = ob.keyCode;
      var hasSelection = document.selection
          ? document.selection.createRange().text.length > 0
          : this.selectionStart != this.selectionEnd;
      return !(this.value.length >= max
          && (keyCode > 50 || keyCode == 32 || keyCode == 0 || keyCode == 13)
          && !ob.ctrlKey && !ob.altKey && !hasSelection);
     };
     this.onkeyup = function () {
      if (this.value.length > max) {
          this.value = this.value.substring(0, max);
      }
     };
         }
     });
    };
    //用法  
    $('#mytextarea').maxLength(500); 

      30. 如何為函數創建一個基本的測試

    //把測試單獨放在模塊中  
    module("Module B");
    test("some other test", function () {
     //指明測試內部預期有多少要運行的斷言  
     expect(2);
     //一個比較斷言,相當于JUnit的assertEquals  
     equals(true, false, "failing test");
     equals(true, true, "passing test");
    }); 

      31. 如何在jQuery中克隆一個元素

    var cloned = $('#somediv').clone(); 

      32. 在jQuery中如何測試某個元素是否可見

    if ($(element).is(':visible') == 'true') {
     //該元素是可見的  
    } 

      33. 如何把一個元素放在屏幕的中心位置

    jQuery.fn.center = function () {
     this.css('position', 'absolute');
     this.css('top', ($(window).height() - this.height()) 
           / +$(window).scrollTop() + 'px');
     this.css('left', ($(window).width() - this.width()) 
           / 2 + $(window).scrollLeft() + 'px');
     return this;
    }
    //這樣來使用上面的函數:  
    $(element).center(); 

      34. 如何把有著某個特定名稱的所有元素的值都放到一個數組中

    var arrInputValues = new Array();
    $("input[name='table[]']").each(function () {
     arrInputValues.push($(this).val());
    }); 

      35. 如何從元素中除去HTML

    (function ($) {
     $.fn.stripHtml = function () {
         var regexp = /<("[^"]*"|'[^']*'|[^'">])*>/gi;
         this.each(function () {
     $(this).html($(this).html().replace(regexp, ""));
         });
         return $(this);
     }
    })(jQuery);
    //用法:  
    $('p').stripHtml(); 

      36. 如何使用closest來取得父元素

    $('#searchBox').closest('div'); 

      37. 如何使用Firebug和Firefox來記錄jQuery事件日志

    // 允許鏈式日志記錄  
    // 用法:  
    $('#someDiv').hide().log('div hidden').addClass('someClass');
    jQuery.log = jQuery.fn.log = function (msg) {
     if (console) {
         console.log("%s: %o", msg, this);
     }
     return this;
    }; 

      38. 如何強制在彈出窗口中打開鏈接

    jQuery('a.popup').live('click', function () {
     newwindow = window.open($(this).attr('href'), '', 'height=200,width=150');
     if (window.focus) {
         newwindow.focus();
     }
     return false;
    }); 

      39. 如何強制在新的選項卡中打開鏈接

    jQuery('a.newTab').live('click', function () {
     newwindow = window.open($(this).href);
     jQuery(this).target = "_blank";
     return false;
    }); 

      40. 在jQuery中如何使用.siblings()來選擇同輩元素

    // 不這樣做  
    $('#nav li').click(function () {
     $('#nav li').removeClass('active');
     $(this).addClass('active');
    });
    //替代做法是  
    $('#nav li').click(function () {
     $(this).addClass('active').siblings().removeClass('active');
    }); 

      41. 如何切換頁面上的所有復選框

    var tog = false;
    // 或者為true,如果它們在加載時為被選中狀態的話  
    $('a').click(function () {
     $("input[type=checkbox]").attr("checked", !tog);
     tog = !tog;
    }); 

      42. 如何基于一些輸入文本來過濾一個元素列表

    //如果元素的值和輸入的文本相匹配的話  
    //該元素將被返回  
    $('.someClass').filter(function () {
     return $(this).attr('value') == $('input#someId').val();
    }) 

      43. 如何獲得鼠標墊光標位置x和y

    $(document).ready(function () {
     $(document).mousemove(function (e) {
         $('#XY').html("X Axis : " + e.pageX + " | Y Axis " + e.pageY);
     });
    }); 

      44. 如何把整個的列表元素(List Element,LI)變成可點擊的

    $("ul li").click(function () {
     window.location = $(this).find("a").attr("href");
     return false;
    });
    <ul>
     <li><a href="#">Link 1</a></li>
     <li><a href="#">Link 2</a></li>
     <li><a href="#">Link 3</a></li>
     <li><a href="#">Link 4</a></li>
    </ul> 

      45. 如何使用jQuery來解析XML(基本的例子)

    function parseXml(xml) {
     //找到每個Tutorial并打印出author  
     $(xml).find("Tutorial").each(function () {
         $("#output").append($(this).attr("author") + "");
     });
    } 

      46. 如何檢查圖像是否已經被完全加載進來

    $('#theImage').attr('src', 'image.jpg').load(function () {
     alert('This Image Has Been Loaded');
    }); 

      47. 如何使用jQuery來為事件指定命名空間

    //事件可以這樣綁定命名空間  
    $('input').bind('blur.validation', function (e) {
     // ...  
    });
    //data方法也接受命名空間  
    $('input').data('validation.isValid', true); 

      48. 如何檢查cookie是否啟用

    var dt = new Date();
    dt.setSeconds(dt.getSeconds() + 60);
    document.cookie = "cookietest=1; expires=" + dt.toGMTString();
    var cookiesEnabled = document.cookie.indexOf("cookietest=") != -1;
    if (!cookiesEnabled) {
     //沒有啟用cookie  
    } 

      49. 如何讓cookie過期

    var date = new Date();
    date.setTime(date.getTime() + (x * 60 * 1000));
    $.cookie('example', 'foo', { expires: date }); 

      50. 如何使用一個可點擊的鏈接來替換頁面中任何的URL

    $.fn.replaceUrl = function () {
     var regexp = 
         /((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi;
     this.each(function () {
         $(this).html(
     $(this).html().replace(regexp, '<a href="$1">$1</a>')
         );
     });
     return $(this);
    }
    //用法   
    $('p').replaceUrl(); 

    posted @ 2012-08-04 13:57 歐陽良才 閱讀(3134) | 評論 (0)編輯 收藏

    利用iframe實現無刷新提交表單

    <iframe id="main" name="main" width="0%" height="0%"> </iframe>
    <form target="main" id="form1" action="ajax.do">
        <input name="operate" value="oop" type="hidden">
        <input id="abc" name="abc" type="text">
        <input type="submit" value="提交" >
    </form>

    參考 :http://hi.baidu.com/kill_me/item/3cd51f368ea3acf2e6bb7a30

    posted @ 2012-08-04 09:54 歐陽良才 閱讀(680) | 評論 (1)編輯 收藏

    仿163 網盤無刷新都文件上傳系統

    無刷新文件上傳 cloudgamer博客園
    http://www.cnblogs.com/cloudgamer/archive/2008/10/20/1314766.html

    posted @ 2012-07-20 11:30 歐陽良才 閱讀(319) | 評論 (0)編輯 收藏

    web頁面訪問ftp上的圖片

    <img alt="" src="ftp://zxdit:zxdit@192.168.18.221/chuangkou/Temporary/photo/pic/pic/Bluehills.jpg" style="width: 330px;height: 400px;cursor: pointer;">

    posted @ 2012-07-03 14:30 歐陽良才 閱讀(885) | 評論 (0)編輯 收藏

    css 好看的動態菜單效果

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
        <HEAD>
            <TITLE> New Document </TITLE>
            <META NAME="Generator" CONTENT="EditPlus">
            <META NAME="Author" CONTENT="">
            <META NAME="Keywords" CONTENT="">
            <META NAME="Description" CONTENT="">
            body{
            background-color:#c1daff;
            }
            #navigation{
            width:200px;
            font-family:Arial;
            }
            #navigation ul{
            font-family:Arial;
            font-size:13px;
            color:#00458c;
            list-style-type:none;/* 不顯示項目符號 */
            margin:0px;
            padding:0px;
            }
            #navigation li{
            border-bottom:1px solid #ed9f9f;
            }
            #navigation li a{
            display:block;/* 按塊顯示*/
            padding:5px 5px 5px 0.5em;
            text-decoration:none;
            border-left:12px solid #711515;
            border-right:1px solid #711515;
            }
            #navigation li a:link{
            background-color:#c11136;
            color:#ffffff;
            }
            #navigation li a:visited{
            background-color:#c11136;
            color:#ffffff;
            }
            #navigation li a:hover{
            background-color:#990020;
            color:#ffff00;
            }
            #navigation2{
            font-family:Arial;
            margin-top:20px;
            }
            #navigation2 ul{
            font-family:Arial;
            font-size:13px;
            color:#00458c;
            margin:0px;
            padding:0px;
            }
            #navigation2 li{
            float:left;
            }
            #navigation2 li a{
            font-family:Arial;
            font-size:13px;
            color:#00458c;
            display:block;/* 按塊顯示*/
            padding:3px 6px 3px 6px;
            text-decoration:none;
            border:1px solid #711515;
            margin:2px;
            }
            #navigation2 li a:link{
            background-color:#039803;
            color:#ffffff;
            }
            #navigation2 li a:visited{
            background-color:#039803;
            color:#ffffff;
            }
            #navigation2 li a:hover{
            background-color:#035803;
            color:#ffff00;
            }
        </HEAD>
        <BODY>
            <div id="page">
            <div id="navigation">
            <ul>
                <li><a href="#">自由泳</a></li>
                <li><a href="javascript:">仰泳</a></li>
                <li><a href="#">蛙泳</a></li>
                <li><a href="#">蝶泳</a></li>
                <li><a href="#">個人混合泳</a></li>
                <li><a href="#">自由泳接力</a></li>
            </ul>
            </div>
            <div id="navigation2">
            <ul>
                <li><a href="#">HOME</a></li>
                <li><a href="#">My Bolg</a></li>
                <li><a href="#">Firends</a></li>
                <li><a href="#">Next Staition</a></li>
                <li><a href="#">Contact Me</a></li>
            </ul>
            </div>
            </div>
        </BODY>
    </HTML>

    posted @ 2012-05-10 09:33 歐陽良才 閱讀(730) | 評論 (0)編輯 收藏

    下拉框 onchange 事件

    onchange="deptchange(this.options[this.selectedIndex])"

    posted @ 2012-04-18 13:48 歐陽良才 閱讀(394) | 評論 (0)編輯 收藏

    簡單的 jQuery 操作復選框

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> 復選框數 </TITLE>
      <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">
      <script src="js/jquery-1.4.2.js"></script>
      <script type="text/javascript">
      $(document).ready(function(){
       $(".paterBtn").click(function(){
         var bool=$(".paterBtn").attr("checked");
        $("[name='checkbox']").attr("checked",bool);
       });
       
       
       $("[name='checkbox']").click(function(){
          var i=0;
        $("[name='checkbox'][checked]").each(function(){
         i+= 1;

        });
        alert(i);
        $(".paterBtn").attr("checked","checked");
        if($(".paterBtn").attr("checked")&&i==0){
         $(".paterBtn").removeAttr("checked");
        }
       });
      });
      </script>
     </HEAD>

     <BODY>

        <div>
      <ul id="tree" class="treeview filetree">
       <li>
         <input type="checkbox" name="1" id="1" class="paterBtn" value="check1"/>
         <span>sk china</span>

         <ul>
         <li>
           <input type="checkbox" name="checkbox" value="check2" class="1"/>
           <span>IT研發部</span>
         </li>
         <li>
           <input type="checkbox" name="checkbox" value="check3"  class="1"/>
           <span>聊男部</span>
         </li>
         <li>
           <input type="checkbox" name="checkbox" value="check4" class="1"/>
           <span>研究部</span>
         </li>
         </ul>
       </li>
       
      </ul>
     </div>
     </BODY>
    </HTML>

    posted @ 2012-04-07 16:35 歐陽良才 閱讀(331) | 評論 (0)編輯 收藏

    SSi(spring+struts_ibatis)多數據庫連接解決方案

         摘要: 1。創建配置文件 jdbc.properties Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://192.168.99.1...  閱讀全文

    posted @ 2012-04-07 15:52 歐陽良才 閱讀(1631) | 評論 (0)編輯 收藏

    jQuery 學習

    鏈接網址  http://www.jquery001.com/how-to-write-jquery-plugin.html

    posted @ 2012-03-27 14:48 歐陽良才 閱讀(220) | 評論 (0)編輯 收藏

    關于ibatis

    1.關于ibatis

    ibatis是一種半自動化的ORM框架
    說明:此文章來自 月月鳥0820  http://www.cnblogs.com/java-pan/archive/2012/03/21/ibatis.html

     

    2.項目環境介紹

    System:WIN7 JDK:編譯1.4 開發1.5  數據庫:oracle的dept表

    image

     

    3.文件介紹

    Dept.java  一個javabean

    IDeptSV.java  一個接口,用來聲明增、刪、改、查的方法

    DeptSVImpl.java 對IDeptSV接口的實現,主要包括獲得SqlMapClient對象以及方法體的實現

    ShowDept.java 用來測試的方法.通過ECS插件把查詢的結果寫入到ibatis.html文件中

    Dept.xml 實體和數據庫表對應的映射文件,主要是寫增、刪、改、查的sql語句

    SqlMap.properties 數據庫配置文件,以鍵值對的形式聲明數據庫的driver、url、username、password

    SqlMapConfig.xml  ibatis的核心配置文件,主要是引入數據庫配置文件,配置數據庫連接相關的屬性;引入實體類和數據庫表的映射文件(本次用到的只是最簡單的配置文件)

     

    4.下載jar包

    ibatis-2.3.4.jar ibatis的jar包

    classes12.jar oracle數據庫的驅動包

    ecs-1.4.2.jar ECS插件包,為了鞏固這個插件的使用故用此插件顯示查詢結果

    三個jar包壓縮成了一個文件,下載路徑如下:http://files.cnblogs.com/java-pan/jar.rar

     

    5.關于class&method的介紹

    Reader

    java.io.Reader

     

    SqlMapClientBuilder

    com.ibatis.sqlmap.client.SqlMapClientBuilder

     

    SqlMapClient

    com.ibatis.sqlmap.client.SqlMapClient

     

    關于ECS插件相關類的介紹請見文章

    http://www.cnblogs.com/java-pan/archive/2012/01/08/ecs.html

     

     

    start

    新建web project項目Ibatis,導入jar包(數據庫驅動包,ibatis包,ECS的jar包),各個文件的代碼如下:

    1.Dept.java

    Dept.java
     1 package ibatis;
    2
    3 /**
    4 *Module: Dept.java
    5 *Description: 使用orcle自帶的部門表dept--javabean
    6 *Company:
    7 *Author: ptp
    8 *Date: Mar 19, 2012
    9 */
    10 public class Dept {
    11 // 構造方法
    12 public Dept() {
    13
    14 }
    15
    16 private int deptNo;
    17 private String dName;
    18 private String loc;
    19
    20 public int getDeptNo() {
    21 return deptNo;
    22 }
    23
    24 public void setDeptNo(int deptNo) {
    25 this.deptNo = deptNo;
    26 }
    27
    28 public String getDName() {
    29 return dName;
    30 }
    31
    32 public void setDName(String name) {
    33 dName = name;
    34 }
    35
    36 public String getLoc() {
    37 return loc;
    38 }
    39
    40 public void setLoc(String loc) {
    41 this.loc = loc;
    42 }
    43 }

     

    2.IDeptSV.java

    IDeptSV.java
     1 package ibatis;
    2
    3 import java.util.List;
    4
    5 /**
    6 *Module: IDeptSV.java
    7 *Description: CRUD的接口類
    8 *Company:
    9 *Author: ptp
    10 *Date: Mar 19, 2012
    11 */
    12 public interface IDeptSV {
    13
    14 // 添加
    15 public void addDept(Dept dept);
    16
    17 //添加數據 主鍵自動生成
    18 public void addDeptSequenct(Dept dept);
    19
    20 // 刪除
    21 public void delByDeptNo(int deptNo);
    22
    23 // 查詢 所有記錄
    24 public List queryDept();
    25
    26 // 根據條件查詢
    27 public Dept queryByDeptNo(int deptNo);
    28
    29 //模糊查詢 按照DNAME查詢
    30 public List queryByName(String dName);
    31
    32 // 修改
    33 public void updateDept(Dept dept);
    34
    35 }

     

    3.DeptSVImpl.java

    DeptSVImpl.java
      1 package ibatis;
    2
    3 import java.io.IOException;
    4 import java.io.Reader;
    5 import java.sql.SQLException;
    6 import java.util.List;
    7 import com.ibatis.common.resources.Resources;
    8 import com.ibatis.sqlmap.client.SqlMapClient;
    9 import com.ibatis.sqlmap.client.SqlMapClientBuilder;
    10 /**
    11 * Module: DeptSVImpl.java
    12 * Description: CRUD的實現類
    13 * Company:
    14 * Author: ptp
    15 * Date: Mar 19, 2012
    16 */
    17 public class DeptSVImpl implements IDeptSV {
    18 // 定義ibatis映射文件的位置
    19 private static String resource = "ibatis/SqlMapConfig.xml";
    20 private static SqlMapClient sqlMapClient = null;
    21 static {
    22 try {
    23 Reader reader = Resources.getResourceAsReader(resource);
    24 sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
    25 reader.close();
    26 // 設置為自動提交
    27 // System.out.println(sqlMapClient.getDataSource().getConnection()
    28 // .getAutoCommit());
    29 } catch (IOException e) {
    30 e.printStackTrace();
    31 }
    32 }
    33
    34 /*
    35 * (non-Javadoc) 添加記錄
    36 */
    37 public void addDept(Dept dept) {
    38 try {
    39 sqlMapClient.startTransaction();// 開啟事務
    40 sqlMapClient.insert("insertDept", dept);
    41 sqlMapClient.commitTransaction();// 提交事務
    42 System.out.println("******成功添加1條記錄******");
    43 } catch (SQLException e) {
    44 try {
    45 sqlMapClient.getCurrentConnection().rollback();// 回滾事務
    46 } catch (SQLException e1) {
    47 e1.printStackTrace();
    48 }
    49 e.printStackTrace();
    50 } finally {
    51 try {
    52 sqlMapClient.endTransaction();// 結束事務
    53 } catch (SQLException e) {
    54 e.printStackTrace();
    55 }
    56 }
    57 }
    58
    59 /*
    60 * (non-Javadoc) 刪除記錄 一次只刪除一條記錄
    61 */
    62 public void delByDeptNo(int deptNo) {
    63 try {
    64 sqlMapClient.startTransaction();// 開始事務
    65 sqlMapClient.delete("deleteDeptById", new Integer(deptNo));
    66 sqlMapClient.commitTransaction();// 提交事務
    67 System.out.println("******成功刪除1條記錄******");
    68 } catch (SQLException e) {
    69 try {
    70 sqlMapClient.getCurrentConnection().rollback();// 回滾事務
    71 } catch (SQLException e1) {
    72 e1.printStackTrace();
    73 }
    74 e.printStackTrace();
    75 } finally {
    76 try {
    77 sqlMapClient.endTransaction();// 結束事務
    78 } catch (SQLException e) {
    79 e.printStackTrace();
    80 }
    81 }
    82 }
    83
    84 /*
    85 * (non-Javadoc) 查詢 查詢所有記錄
    86 */
    87 public List queryDept() {
    88 List rows = null;
    89 try {
    90 sqlMapClient.startTransaction();// 開始事務
    91 rows = sqlMapClient.queryForList("selectAllDept");
    92 sqlMapClient.commitTransaction();// 提交事務
    93 System.out.println("******成功查詢所有記錄******");
    94 } catch (SQLException e) {
    95 try {
    96 sqlMapClient.getCurrentConnection().rollback();// 回滾事務
    97 } catch (SQLException e1) {
    98 e1.printStackTrace();
    99 }
    100 e.printStackTrace();
    101 } finally {
    102 try {
    103 sqlMapClient.endTransaction();// 結束事務
    104 } catch (SQLException e) {
    105 e.printStackTrace();
    106 }
    107 }
    108 return rows;
    109 }
    110
    111 /*
    112 * (non-Javadoc) 查詢 查詢一條記錄
    113 */
    114 public Dept queryByDeptNo(int deptNo) {
    115 Dept dept = null;
    116 try {
    117 sqlMapClient.startTransaction();// 開始事務
    118 dept = (Dept) sqlMapClient.queryForObject("selectById",
    119 new Integer(deptNo));
    120 sqlMapClient.commitTransaction();// 提交事務
    121 System.out.println("******成功查詢1條記錄******");
    122 } catch (SQLException e) {
    123 try {
    124 sqlMapClient.getCurrentConnection().rollback();// 回滾事務
    125 } catch (SQLException e1) {
    126 e1.printStackTrace();
    127 }
    128 e.printStackTrace();
    129 } finally {
    130 try {
    131 sqlMapClient.endTransaction();// 結束事務
    132 } catch (SQLException e) {
    133 e.printStackTrace();
    134 }
    135 }
    136 return dept;
    137 }
    138
    139 /*
    140 * (non-Javadoc) 更新 一次只更新一條記錄
    141 */
    142 public void updateDept(Dept dept) {
    143 try {
    144 sqlMapClient.startTransaction();// 開始事務
    145 sqlMapClient.update("updateDeptById", dept);
    146 sqlMapClient.commitTransaction();// 提交事務
    147 System.out.println("******成功更新1條記錄******");
    148 } catch (SQLException e) {
    149 try {
    150 sqlMapClient.getCurrentConnection().rollback();// 回滾事務
    151 } catch (SQLException e1) {
    152 e1.printStackTrace();
    153 }
    154 e.printStackTrace();
    155 } finally {
    156 try {
    157 sqlMapClient.endTransaction();// 結束事務
    158 } catch (SQLException e) {
    159 e.printStackTrace();
    160 }
    161 }
    162 }
    163
    164 /*
    165 * (non-Javadoc) 模糊查詢
    166 */
    167 public List queryByName(String name) {
    168 List depts = null;
    169 try {
    170 sqlMapClient.startTransaction();// 開始事務
    171 depts = sqlMapClient.queryForList("selectByName", name);
    172 sqlMapClient.commitTransaction();// 提交事務
    173 System.out.println("******模糊查詢成功******");
    174 } catch (SQLException e) {
    175 try {
    176 sqlMapClient.getCurrentConnection().rollback();// 回滾事務
    177 } catch (SQLException e1) {
    178 e1.printStackTrace();
    179 }
    180 e.printStackTrace();
    181 } finally {
    182 try {
    183 sqlMapClient.endTransaction();// 結束事務
    184 } catch (SQLException e) {
    185 e.printStackTrace();
    186 }
    187 }
    188 return depts;
    189 }
    190
    191 /*
    192 * (non-Javadoc)主鍵自動生成 添加記錄
    193 */
    194 public void addDeptSequenct(Dept dept) {
    195 try {
    196 sqlMapClient.startTransaction();// 開始事務
    197 sqlMapClient.insert("insertDeptBySequence", dept);
    198 sqlMapClient.commitTransaction();// 提交事務
    199 System.out.println("******成功添加1條記錄(主鍵自動生成)******");
    200 } catch (SQLException e) {
    201 try {
    202 sqlMapClient.getCurrentConnection().rollback();// 回滾事務
    203 } catch (SQLException e1) {
    204 e1.printStackTrace();
    205 }
    206 e.printStackTrace();
    207 } finally {
    208 try {
    209 sqlMapClient.endTransaction();// 結束事務
    210 } catch (SQLException e) {
    211 e.printStackTrace();
    212 }
    213 }
    214 }
    }

    posted @ 2012-03-23 13:45 歐陽良才 閱讀(564) | 評論 (0)編輯 收藏

    struts2 if標簽

    文章來自他人空間 我自己添加了一點



    <s:if test="deptType==\"1\"" >下屬</s:if><s:else>直屬</s:else>(如果是數字類型可以 通過)

    <s:if test="{#deptType == '1'}" >下屬</s:if><s:else>直屬</s:else>(匹配的類型是char型)



    前提:數據庫中的類型是varchar,pojo中對應的字段的類型也是string。

    如果數據庫中的數據是整數字符串,例如1、2、3等,那么使用==

    <s:if test="deptType==1" >下屬 </s:if> <s:else>直屬 </s:else>

    如果數據庫中的數據是字符串,aa、bb、cc等等

    那么就要使用 <s:if test="deptType=='aa'>下屬aa </s:if> <s:else>直屬 </s:else>  

    如果數據庫中既有數字字符串也普通的字符串,那么 <s:if test="deptType=='aa'  ¦ ¦ deptType=='1'" >下屬aa </s:if> <s:else>直屬 </s:else> 無法正常的解析,

    <s:if test="deptType eq 'aa" >下屬</s:if><s:else>直屬</s:else>(字符串用 eq  通過)




    如果sex是int類型,那么直接比較就可以了

       1.             <s:if test="sex==1">男</s:if>  
       2.             <s:else>女</s:else>

    posted @ 2012-03-23 10:02 歐陽良才 閱讀(1828) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 亚洲无砖砖区免费| 免费国产在线观看老王影院| 国产四虎免费精品视频| 午夜亚洲国产成人不卡在线| 亚洲久本草在线中文字幕| 久久亚洲精品高潮综合色a片| 免费无码作爱视频| 四虎在线播放免费永久视频| 亚洲第一二三四区| 国产高潮久久免费观看| 在线免费观看中文字幕| 亚洲熟妇无码久久精品| 成年女人色毛片免费看| 亚洲黄色免费网站| 成人无码WWW免费视频| 亚洲视频在线视频| 日本免费网址大全在线观看| 亚洲国产三级在线观看| 特色特黄a毛片高清免费观看| 成年人在线免费看视频| 国产在亚洲线视频观看| 女人张开腿给人桶免费视频| 色偷偷亚洲男人天堂| 在线观看日本免费a∨视频| 麻豆亚洲AV永久无码精品久久 | 99爱免费观看视频在线| 亚洲一区二区三区国产精品| 亚洲av无码有乱码在线观看| 又黄又爽无遮挡免费视频| 久久一区二区三区免费| 亚洲五月午夜免费在线视频| 波霸在线精品视频免费观看| 国产99视频精品免费视频7| selaoban在线视频免费精品| 亚洲欧洲自拍拍偷综合| 国产麻豆免费观看91| 久久亚洲精品国产精品| 成全视频在线观看免费高清动漫视频下载| 色窝窝亚洲av网| 亚洲情a成黄在线观看动漫尤物| 最新中文字幕电影免费观看|