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

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

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

    隨筆-59  評論-31  文章-0  trackbacks-0
      2013年9月27日

    Microsoft SQL Server 2008 基本安裝說明

    安裝SQL2008的過程與SQL2005的程序基本一樣,只不過在安裝的過程中部分選項有所改變,當然如果只熟悉SQL2000安裝的同志來說則是一個革命性的變動,

    一、安裝前的準備
    1. 需要.Net Framework 3.5,若在Vista或更高的OS上需要3.5 SP1的支持(在SQL2008安裝的前會自動更新安裝)
    2. 需要Widnows PowerShell的支持,WPS是一個功能非常強大的Shell應(yīng)用,命令與DOX/UNIX兼容并支持直接調(diào)用.NET模塊做行命令編輯,是非常值得深入研究的工具(在SQL2008安裝時會自動更新安裝)
    3. 需要確保Windows Installer的成功啟動,需要4.5以上版本(需要檢查服務(wù)啟動狀態(tài)service.msc)
    4. 需要MDAC2.8 sp1的支持(XP以上系統(tǒng)中已集成)
    5. 若機器上已經(jīng)安裝Visual studio 2008則需要VS 2008 sp1以上版本的支持(需要自己從MS的網(wǎng)站上下載安裝http://www.microsoft.com/downloads/details.aspx?familyid=FBEE1648-7106-44A7-9649-6D9F6D58056E&displaylang=en

     

    二、安裝配置過程
    1.進行SQL Server安裝中心,選擇"安裝"選項,在新的電腦上安裝SQL2008可以直接選擇“全新SQL Server獨立安裝或向現(xiàn)有安裝功能",將會安裝一個默認SQL實列,如下圖

    2.功能選擇,對于只安裝數(shù)據(jù)庫服務(wù)器來說,功能的選擇上可以按實際工作需要來制定,本人一般選擇:數(shù)據(jù)庫引擎服務(wù)、客戶端工具連接、SQL Server 聯(lián)機叢書、管理工具-基本、管理工具-完整
         其中數(shù)據(jù)庫引擎服務(wù)是SQL數(shù)據(jù)庫的核心服務(wù),Analysis及Reporting服務(wù)可按部署要求安裝,這兩個服務(wù)可能需要IIS的支持。如下圖


    3.實列設(shè)置,可直接選擇默認實例進行安裝,或則若同一臺服務(wù)器中有多個數(shù)據(jù)服務(wù)實列可按不同實列名進行安裝。如圖


    4.服務(wù)器配置,服務(wù)器配置主要是服務(wù)啟動帳戶的配置,服務(wù)的帳戶名推薦使用NT AUTHORITY\SYSTEM的系統(tǒng)帳戶,并指定當前選擇服務(wù)的啟動類型,如圖

    5.數(shù)據(jù)庫引擎配置,在當前配置中主要設(shè)置SQL登錄驗證模式及賬戶密碼,與SQL的數(shù)據(jù)存儲目錄,身份驗證模式推薦使用混合模式進行驗證,在安裝過程中內(nèi)置的SQL Server系統(tǒng)管理員帳戶(sa)的密碼比較特殊,SQL2008對SA的密碼強度要求相對比較高,需要有大小寫字母、數(shù)字及符號組成,否則將不允許你繼續(xù)安裝。在"指定Sql Server管理員"中最好指定本機的系統(tǒng)管理員administrator。如圖


     

    分類: SQL 雜文
    posted @ 2013-09-27 13:27 RoyPayne 閱讀(240) | 評論 (0)編輯 收藏
      2013年1月28日
       谷歌瀏覽器的cookie:
           依次點擊設(shè)置--高級選項--內(nèi)容設(shè)置--cookies--選擇“顯示cookies和其他網(wǎng)站數(shù)據(jù)按鈕就可以看到了

    firefox:
          依次點開FF瀏覽器工具選項: 工具》選項》隱私》在歷史選項框中選擇“使用自定義歷史記錄設(shè)置” 進入后,再選擇“顯示Cookies”.出來一個對話框,里面就是FF記錄的所有Cookie。其值你也可以很方便查看到。




    posted @ 2013-01-28 06:54 RoyPayne 閱讀(2917) | 評論 (1)編輯 收藏
      2012年12月10日
          死鎖是一個經(jīng)典的多線程問題,因為不同的線程都在等待那些根本不可能被釋放的鎖,
    從而導致所有的工作都無法完成。假設(shè)有兩個線程,分別代表兩個饑餓的人,他們必須共享刀叉并輪流吃飯。
    他們都需要獲得兩個鎖:共享刀和共享叉的鎖。假如線程 "A" 獲得了刀,而線程 "B" 獲得了叉。
    線程 A 就會進入阻塞狀態(tài)來等待獲得叉,而線程 B 則阻塞來等待 A 所擁有的刀。
          
          讓所有的線程按照同樣的順序獲得一組鎖。這種方法消除了 X 和 Y 的擁有者分別等待對方的資源的問題。
      將多個鎖組成一組并放到同一個鎖下。前面死鎖的例子中,可以創(chuàng)建一個銀器對象的鎖。于是在獲得刀或叉之前都必須獲得這個銀器的鎖。
      將那些不會阻塞的可獲得資源用變量標志出來。當某個線程獲得銀器對象的鎖時,就可以通過檢查變量來判斷是否整個銀器集合中的對象鎖都可獲得。如果是,它就可以獲得相關(guān)的鎖,否則,就要釋放掉銀器這個鎖并稍后再嘗試。
      最重要的是,在編寫代碼前認真仔細地設(shè)計整個系統(tǒng)。多線程是困難的,在開始編程之前詳細設(shè)計系統(tǒng)能夠幫助你避免難以發(fā)現(xiàn)死鎖的問題。
    posted @ 2012-12-10 10:54 RoyPayne 閱讀(344) | 評論 (0)編輯 收藏
      2012年3月2日
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
     
    <head>
      
    <title> New Document </title>
      
    <meta name="Generator" content="EditPlus">
      
    <meta name="Author" content="">
      
    <meta name="Keywords" content="">
      
    <meta name="Description" content="">
     
    </head>
        
    <script type="text/javascript" src="jquery.js"></script>
        
    <script type="text/javascript">

            
    function go() {
                
    var str="";
                $(
    "input[name='checkbox']:checkbox").each(function(){ 
                    
    if($(this).attr("checked")){
                        str 
    += $(this).val()+","
                    }
                })
                
    //alert(str);
                str.split(",");
                alert(str[
    0]);
            }
        
    </script>
     
    <body>
      
    <div>
        
    <input type="text" id="content" value="111"/>
        
    <input type="checkbox" name="checkbox" value="1"/>
        
    <input type="checkbox" name="checkbox" value="2"/>
        
    <input type="checkbox" name="checkbox" value="3"/>
        
    <input type="checkbox" name="checkbox" value="4"/>
        
    <input type="checkbox" name="checkbox" value="5"/>
        
    <input type="button" id="test" onclick="go();"/>
      
    </div>
     
    </body>
    </html>
    posted @ 2012-03-02 09:40 RoyPayne 閱讀(88795) | 評論 (21)編輯 收藏
      2012年2月1日
    XFire WebService開發(fā)快速起步


    http://lavasoft.blog.51cto.com/62575/105956/
    posted @ 2012-02-01 14:50 RoyPayne 閱讀(354) | 評論 (0)編輯 收藏
      2012年1月31日
         摘要: oracle腳本:drop table t_student cascade constraints;Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/*==================================================...  閱讀全文
    posted @ 2012-01-31 13:25 RoyPayne 閱讀(2248) | 評論 (2)編輯 收藏
      2012年1月30日

    在Session的緩存中存放的是相互關(guān)聯(lián)的對象圖。默認情況下,當Hibernate從數(shù)據(jù)庫中加載Customer對象時,會同時加載所有關(guān)聯(lián)的 Order對象。以Customer和Order類為例,假定ORDERS表的CUSTOMER_ID外鍵允許為null

    以下Session的find()方法用于到數(shù)據(jù)庫中檢索所有的Customer對象: 

    List customerLists=session.find("from Customer as c"); 

    運行以上find()方法時,Hibernate將先查詢CUSTOMERS表中所有的記錄,然后根據(jù)每條記錄的ID,到ORDERS表中查詢有參照關(guān)系的記錄,Hibernate將依次執(zhí)行以下select語句: 

    select * from CUSTOMERS; 
    select * from ORDERS where CUSTOMER_ID=1; 
    select * from ORDERS where CUSTOMER_ID=2; 
    select * from ORDERS where CUSTOMER_ID=3; 
    select * from ORDERS where CUSTOMER_ID=4; 

    通過以上5條select語句,Hibernate最后加載了4個Customer對象和5個Order對象,在內(nèi)存中形成了一幅關(guān)聯(lián)的對象圖.


    Hibernate在檢索與Customer關(guān)聯(lián)的Order對象時,使用了默認的立即檢索策略。這種檢索策略存在兩大不足: 

    (1) select語句的數(shù)目太多,需要頻繁的訪問數(shù)據(jù)庫,會影響檢索性能。如果需要查詢n個Customer對象,那么必須執(zhí)行n+1次select查詢語 句。這就是經(jīng)典的n+1次select查詢問題。這種檢索策略沒有利用SQL的連接查詢功能,例如以上5條select語句完全可以通過以下1條 select語句來完成: 

    select * from CUSTOMERS left outer join ORDERS 
    on CUSTOMERS.ID=ORDERS.CUSTOMER_ID 

    以上select語句使用了SQL的左外連接查詢功能,能夠在一條select語句中查詢出CUSTOMERS表的所有記錄,以及匹配的ORDERS表的記錄。 

    (2)在應(yīng)用邏輯只需要訪問Customer對象,而不需要訪問Order對象的場合,加載Order對象完全是多余的操作,這些多余的Order對象白白浪費了許多內(nèi)存空間。 
    為了解決以上問題,Hibernate提供了其他兩種檢索策略:延遲檢索策略和迫切左外連接檢索策略。延遲檢索策略能避免多余加載應(yīng)用程序不需要訪問的關(guān)聯(lián)對象,迫切左外連接檢索策略則充分利用了SQL的外連接查詢功能,能夠減少select語句的數(shù)目。


    對數(shù)據(jù)庫訪問還是必須考慮性能問題的, 在設(shè)定了1 對多這種關(guān)系之后, 查詢就會出現(xiàn)傳說中的n +1 問題。 
    1 )1 對多,在1 方,查找得到了n 個對象, 那么又需要將n 個對象關(guān)聯(lián)的集合取出,于是本來的一條sql查詢變成了n +1 條 
    2)多對1 ,在多方,查詢得到了m個對象,那么也會將m個對象對應(yīng)的1 方的對象取出, 也變成了m+1

    怎么解決n +1 問題? 
    1 )lazy=true, hibernate3開始已經(jīng)默認是lazy=true了;lazy=true時不會立刻查詢關(guān)聯(lián)對象,只有當需要關(guān)聯(lián)對象(訪問其屬性,非id字段)時才會發(fā)生查詢動作。 

    2)二級緩存, 在對象更新,刪除,添加相對于查詢要少得多時, 二級緩存的應(yīng)用將不怕n +1 問題,因為即使第一次查詢很慢,之后直接緩存命中也是很快的。 
    不同解決方法,不同的思路,第二條卻剛好又利用了n +1 。

    3) 當然你也可以設(shè)定fetch=join(annotation : @ManyToOne() @Fetch(FetchMode.JOIN))

    posted @ 2012-01-30 14:20 RoyPayne 閱讀(10907) | 評論 (1)編輯 收藏
      2012年1月20日
    1. 在web.xml文件中加入Filter聲明 
    <!-- Spring security Filter -->
    <filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>springSecurityFilterChain</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    這個Filter會攔截所有的URL請求,并且對這些URL請求進行Spring Security的驗證。 

    注意,springSecurityFilterChain這個名稱是由命名空間默認創(chuàng)建的用于處理web安全的一個內(nèi)部的bean的id。所以你在你的Spring配置文件中,不應(yīng)該再使用這個id作為你的bean。 

    與Acegi的配置不同,Acegi需要自行聲明一個Spring的bean來作為Filter的實現(xiàn),而使用Spring Security后,無需再額外定義bean,而是使用<http>元素進行配置。 

    通過擴展Spring Security的默認實現(xiàn)來進行用戶和權(quán)限的管理 

    事實上,Spring Security提供了2個認證的接口,分別用于模擬用戶和權(quán)限,以及讀取用戶和權(quán)限的操作方法。這兩個接口分別是:UserDetails和UserDetailsService。 

    public interface UserDetails extends Serializable {
        
        GrantedAuthority[] getAuthorities();

        String getPassword();

        String getUsername();

        boolean isAccountNonExpired();

        boolean isAccountNonLocked();

        boolean isCredentialsNonExpired();

        boolean isEnabled();
    }

    public interface UserDetailsService {
        UserDetails loadUserByUsername(String username)
            throws UsernameNotFoundException, DataAccessException;
    }

    非常清楚,一個接口用于模擬用戶,另外一個用于模擬讀取用戶的過程。所以我們可以通過實現(xiàn)這兩個接口,來完成使用數(shù)據(jù)庫對用戶和權(quán)限進行管理的需求。在這里,我將給出一個使用Hibernate來定義用戶和權(quán)限之間關(guān)系的示例。 
    posted @ 2012-01-20 10:41 RoyPayne 閱讀(1716) | 評論 (1)編輯 收藏
      2012年1月19日
         摘要: Quartz是一個強大的企業(yè)級任務(wù)調(diào)度框架,Spring中繼承并簡化了Quartz,下面就看看在Spring中怎樣配置Quartz:  閱讀全文
    posted @ 2012-01-19 14:53 RoyPayne 閱讀(316) | 評論 (0)編輯 收藏
      2012年1月17日
    1.自定義攔截器繼承AbstractInterceptor,重寫public String intercept(ActionInvocation invocation)方法。
    intercept方法有ActionInvocation對象,可以獲取當前的Action請求。
    public class AuthorityInterceptor extends AbstractInterceptor {
        private static final long serialVersionUID = 1L; 
        private Logger LOG = Logger.getLogger(AuthorityInterceptor.class.getName()); 
        
        private AuthorityUtil authorityUtil;
        
        public String intercept(ActionInvocation invocation) throws Exception {
            if (authorityUtil == null) {
                authorityUtil = new AuthorityUtil();
            }
            
            //獲取當前用戶所有的權(quán)限
            List<OperatorPurviewDO> operatorPurviews = getCurrentOperatorPurviews();
            
            //獲取當前操作的url
            String currentUrl = getCurrentUrl(); 
            
             //如果是超級管理員或有當前url的權(quán)限,那么直接返回。
            if (OperatorUtil.getIsSuperAdmin() ||(OperatorUtil.getLoginName()!=null&&authorityUtil.checkUrl(operatorPurviews, currentUrl))){
                 return invocation.invoke();
            }
             
            if (!OperatorUtil.getIsSuperAdmin()&&operatorPurviews.size()==0) {
                LOG.info("此用戶:" + OperatorUtil.getLoginName() + " 沒有任何角色,沒有權(quán)限執(zhí)行任何功能"); 
                return "loginErr"; 
            }   
                return "authorityErr";
        }

    2.struts2.xml 配置interceptor

      2.1 定義自定義攔截器
    <interceptor name="authorityInterceptor" class="com.wasu.eis.authority.AuthorityInterceptor" /> 
      2.2 加上struts2默認攔截器,形成攔截器棧
                <interceptor-stack name="eisManagerBasicStack">
                    <interceptor-ref name="exception"/>
                    <interceptor-ref name="alias"/>
                    <interceptor-ref name="servletConfig"/>
                    <interceptor-ref name="prepare"/>
                    <interceptor-ref name="i18n"/>
                    <interceptor-ref name="chain"/>
                    <interceptor-ref name="debugging"/>
                    <interceptor-ref name="profiling"/>
                    <interceptor-ref name="scopedModelDriven"/>
                    <interceptor-ref name="modelDriven"/>
                    <interceptor-ref name="checkbox"/>
                    <interceptor-ref name="staticParams"/>
                    <interceptor-ref name ="fileUploadStack" /> 
                    <interceptor-ref name="params">
                      <param name="excludeParams">dojo\..*</param>
                    </interceptor-ref>
                    <interceptor-ref name="conversionError"/>
                    <interceptor-ref name="validation">
                        <param name="excludeMethods">input,back,cancel,browse</param>
                    </interceptor-ref>
                    <interceptor-ref name="workflow">
                        <param name="excludeMethods">input,back,cancel,browse</param>
                    </interceptor-ref>
                </interceptor-stack>
                
                <interceptor-stack name="authorityInterceptorStack">
                    <interceptor-ref name="authorityInterceptor" />
                    <interceptor-ref name="eisManagerBasicStack" />
                </interceptor-stack>

    3.設(shè)置為缺省的攔截器

    <default-interceptor-ref name="authorityInterceptorStack"/>
    posted @ 2012-01-17 16:35 RoyPayne 閱讀(2756) | 評論 (0)編輯 收藏
    僅列出標題  下一頁
    主站蜘蛛池模板: 国产亚洲美女精品久久久久狼| 亚洲综合av一区二区三区不卡| 永久在线观看www免费视频| 亚洲中字慕日产2020| 在线观看永久免费视频网站| 国产精品成人啪精品视频免费| 久久久久亚洲AV无码专区首| 最近的免费中文字幕视频| 一级毛片成人免费看a| 亚洲高清美女一区二区三区| 全免费一级毛片在线播放| 视频免费在线观看| 亚洲熟妇自偷自拍另欧美| 亚洲韩国精品无码一区二区三区| 99在线精品免费视频九九视| 一级黄色免费网站| 久久精品国产亚洲AV久| 亚洲中文字幕久久精品无码APP| 四虎在线最新永久免费| 一区二区三区在线观看免费| 亚洲第一成年人网站| 亚洲情侣偷拍精品| 国产香蕉九九久久精品免费| a级毛片黄免费a级毛片| 亚洲人成未满十八禁网站| 亚洲AV无码成人精品区蜜桃| 免费看国产精品麻豆| 999国内精品永久免费视频| 久久久久免费视频| 亚洲av永久无码天堂网| 日韩精品亚洲人成在线观看| 亚洲国产成人久久综合碰| 亚洲高清中文字幕免费| 久久国产免费一区二区三区| 美女裸免费观看网站| 亚洲日韩AV一区二区三区四区| 亚洲精品免费视频| 亚洲一区二区三区在线观看精品中文| 免费黄色毛片视频| 男女免费观看在线爽爽爽视频 | 亚洲一区二区三区在线观看精品中文 |