大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java單例模式代碼示例

Java單例模式代碼示例

更新時間:2022-08-29 10:44:32 來源:動力節點 瀏覽1718次

了解單例模式的早期實例化

在這種情況下,我們在聲明靜態數據成員時創建類的實例,因此類的實例是在類加載時創建的。

讓我們看一下使用早期實例化的Java單例模式的示例。

文件:A.java

A類 {  
 私有靜態 A obj= new  A(); //早期,實例將在加載時創建   
 私有 A(){}     
 公共靜態 A getA(){   
  返回 對象;  
 }    
 公共無效 doSomething(){   
 //寫你的代碼  
 }  
}  

理解單例模式的惰性實例化

在這種情況下,我們在同步方法或同步塊中創建類的實例,因此在需要時創建類的實例。

讓我們看一下使用惰性實例化的單例設計模式的簡單示例。

文件:A.java

A類 {  
 私有靜態 對象;   
 私有 A(){}  
   
 公共靜態 A getA(){   
   如果 (obj ==  null ){  
      同步(單例。類){  
        如果 (obj ==  null ){  
            obj =  new  Singleton(); //實例將在請求時創建  
        }  
    }              
    }  
  返回 對象;  
 }    
 公共無效 doSomething(){   
 //寫你的代碼  
 }  
}  

了解單例模式的真實示例

我們將創建一個 JDBCSingleton 類。這個 JDBCSingleton 類包含它的私有構造函數和它自己的私有靜態實例 jdbc。

JDBCSingleton 類提供了一個靜態方法來獲取它的靜態實例給外界。現在,JDBCSingletonDemo 類將使用 JDBCSingleton 類來獲取 JDBCSingleton 對象。

假設:你已經在mysql數據庫中創建了一個包含uid、uname和upassword三個字段的表userdata。數據庫名稱是 ashwinirajput,用戶名是 root,密碼是 ashwini。

文件:JDBCSingleton.java

導入 java.io.BufferedReader;  
導入 java.io.IOException;  
導入 java.io.InputStreamReader;  
導入 java.sql.Connection;  
導入 java.sql.DriverManager;  
導入 java.sql.PreparedStatement;  
導入 java.sql.ResultSet;  
導入 java.sql.SQLException;    
類 JDBCSingleton {  
     //步驟1  
      // 創建一個 JDBCSingleton 類。  
     //靜態成員只保存一個 JDBCSingleton 類的實例。               
         私有靜態 JDBCSingleton jdbc;              
     //JDBCSingleton 防止來自任何其他類的實例化。  
       私有 JDBCSingleton() { }          
    //現在我們提供全局訪問點。  
         公共靜態 JDBCSingleton getInstance() {     
                                     如果 (jdbc== null )  
                                   {  
                                            jdbc=新的  JDBCSingleton();  
                                   }  
                         返回 jdbc;  
             }              
   // 從插入、視圖等方法獲取連接   
          私有靜態 連接 getConnection()拋出 ClassNotFoundException、SQLException   
          {                  
              連接 con= null ;  
              Class.forName( "com.mysql.jdbc.Driver" );  
              con= DriverManager.getConnection( "jdbc:mysql://localhost:3306/ashwanirajput" ,  "root" ,  "ashwani" );  
              返回 騙局;                  
          }              
 //將記錄插入數據庫   
          public int  insert(String name, String pass) 拋出 SQLException   
          {  
              連接 c= null ;                  
              PreparedStatement ps= null ;                  
              int 記錄計數器 = 0 ;                  
              試試 {                      
                      c=這個.getConnection();  
                      ps=c.prepareStatement( "插入用戶數據(uname,uppassword)values(?,?)" );  
                      ps.setString( 1 , 名稱);  
                      ps.setString( 2 ,通過);  
                      記錄計數器=ps.executeUpdate();                          
              } 捕捉 (異常 e){ e.printStackTrace(); } 最后{  
                    如果 (ps!= null ){  
                      ps.close();  
                  } if (c!= null ){  
                      c.close();  
                  }   
              }  
             返回 記錄計數器;  
          }    
//查看數據庫中的數據        
      公共無效 視圖(字符串名稱) 拋出 SQLException    
      {  
                連接 con =  null ;  
        PreparedStatement ps =  null ;  
        結果集 rs =  null ;                    
                試試 {                        
                        con=這個.getConnection();  
                        ps=con.prepareStatement( "select * from userdata where uname=?" );  
                        ps.setString( 1 , 名稱);  
                        rs=ps.executeQuery();  
                        而 (rs.next()){  
                                  System.out.println( "名稱=" +rs.getString( 2 )+ "\t" + "Paasword=" +rs.getString( 3 ));                               
                        }                  
          } 捕捉 (異常 e){ System.out.println(e);}  
          最后{  
                    如果(rs!= null ){  
                        rs.close();  
                    } if  (ps!= null ){  
                      ps.close();  
                  } if (con!= null ){  
                      con.close();  
                  }   
                }  
      }          
     // 更新給定用戶名的密碼  
      公共int 更新(字符串名稱,字符串密碼) 拋出 SQLException {   
              連接 c= null ;  
              PreparedStatement ps= null ;                  
              int 記錄計數器 = 0 ;  
              試試 {  
                      c=這個.getConnection();  
                      ps=c.prepareStatement( " 更新用戶數據設置 uppassword=? where uname='" +name+ "'" );  
                      ps.setString( 1 ,密碼);  
                      記錄計數器=ps.executeUpdate();  
              } 捕捉 (異常 e){ e.printStackTrace(); } 最后{                        
                  如果 (ps!= null ){  
                      ps.close();  
                  } if (c!= null ){  
                      c.close();  
                  }   
               }  
             返回 記錄計數器;  
          }              
// 從數據庫中刪除數據   
         公共int  delete( int  userid) 拋出 SQLException{   
              連接 c= null ;  
              PreparedStatement ps= null ;  
              int 記錄計數器 = 0 ;  
              試試 {  
                       c=這個.getConnection();  
                      ps=c.prepareStatement( " 從用戶數據中刪除 uid='" +userid+ "'" );  
                      記錄計數器=ps.executeUpdate();  
              } 捕捉 (異常 e){ e.printStackTrace(); }   
              最后{  
              如果 (ps!= null ){  
                      ps.close();  
             } if (c!= null ){  
                      c.close();  
              }   
           }  
             返回 記錄計數器;  
          }  
 } // JDBCSingleton 類結束  

文件:JDBCSingletonDemo.java

導入 java.io.BufferedReader;  
導入 java.io.IOException;  
導入 java.io.InputStreamReader;  
導入 java.sql.Connection;  
導入 java.sql.DriverManager;  
導入 java.sql.PreparedStatement;  
導入 java.sql.ResultSet;  
導入 java.sql.SQLException;  
類 JDBCSingletonDemo{  
    靜態整數 計數= 1 ;   
    靜態整數  選擇;   
    公共靜態void  main(String[] args) 拋出 IOException {              
        JDBCSingleton jdbc= JDBCSingleton.getInstance();                      
        BufferedReader br= new  BufferedReader( new  InputStreamReader(System.in));  
   做{   
        System.out.println( "數據庫操作" );  
        System.out.println( " ---------" );  
        System.out.println( "1.插入" );  
        System.out.println( "2.查看" );  
        System.out.println( " 3. 刪除" );  
        System.out.println( " 4. 更新" );  
        System.out.println( " 5. 退出" );            
        System.out.print( "\n" );  
        System.out.print( "請輸入您要在數據庫中執行的選擇:" );            
        選擇=整數.parseInt(br.readLine());  
        開關(選擇){                
           案例1 :{   
                    System.out.print( "請輸入您要向數據庫插入數據的用戶名:" );  
                    字符串用戶名=br.readLine();  
                    System.out.print( "輸入你要插入數據到數據庫的密碼:" );  
                    字符串密碼=br.readLine();                        
                    試試 {  
                            int  i= jdbc.insert(用戶名,密碼);  
                            如果 (i> 0 ) {  
                            System.out.println((count++) +  "數據插入成功" );  
                            }其他{  
                                System.out.println( "數據未插入" );      
                            }                            
                        } 捕捉 (異常 e){  
                          System.out.println(e);  
                        }                        
                     System.out.println( "按回車鍵繼續..." );  
                     System.in.read();                         
                   } //案例1結束  
                   休息;  
            案例2 :{   
                    System.out.print( "請輸入用戶名:" );  
                    字符串用戶名=br.readLine();                 
                    試試  {  
                            jdbc.view(用戶名);  
                         } 捕捉 (異常 e){  
                          System.out.println(e);  
                        }  
                     System.out.println( "按回車鍵繼續..." );  
                     System.in.read();                         
                   } //案例2結束  
                  休息;  
             案例3 :{   
                     System.out.print( "輸入要刪除的用戶名:" );  
                     int  userid=Integer.parseInt(br.readLine());               
                     試試 {  
                            int  i=jdbc.delete(userid);  
                            如果 (i> 0 ) {  
                            System.out.println((count++) +  "數據刪除成功" );  
                            }其他{  
                                System.out.println( "數據沒有被刪除" );      
                            }  
                          
                         } 捕捉 (異常 e){  
                          System.out.println(e);  
                         }  
                     System.out.println( "按回車鍵繼續..." );  
                     System.in.read();                         
                    } //案例3結束  
                   休息;  
             案例4 :{   
                    System.out.print( "請輸入您要更新的用戶名:" );  
                    字符串用戶名=br.readLine();  
                    System.out.print( "輸入新密碼" );  
                    字符串密碼=br.readLine();                        
                    試試 {  
                            int  i= jdbc.update(用戶名,密碼);  
                            如果 (i> 0 ) {  
                            System.out.println((count++) +  "數據更新成功" );  
                            }                            
                        } 捕捉 (異常 e){  
                          System.out.println(e);  
                        }  
                     System.out.println( "按回車鍵繼續..." );  
                     System.in.read();                        
                   } // 案例 4 結束  
                 休息;                     
             默認:  
                     返回;  
        }            
       } 而 (選擇!= 4 );   
   }  
}  

輸出

以上就是關于“Java單例模式代碼示例”介紹,大家如果想了解更多相關知識,可以關注一下動力節點的Java視頻教程,里面的課程內容從入門到精通,細致全面,通俗易懂,很適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 久久这里只精品热免费99 | 日本jizz中国 | 色综合久 | 欧美国产成人免费观看永久视频 | 亚洲国产品综合人成综合网站 | 成人黄色免费 | 成人夜夜 | 日韩欧美aa级草草免费视频 | 久久www成人看片 | 全部免费毛片免费播放 | 日本成年一区久久综合 | 草久在线观看视频 | 免费99精品国产自在现线观看 | a级黄片毛片 | 天天色天天拍 | 九九99九九视频在线观看 | 亚洲美女性视频 | 天天射天天爱天天干 | 又粗又硬又大久久久 | 精品乱人伦一区二区 | 国产不卡视频在线 | 牛牛色婷婷在线视频播放 | 99精品视频不卡在线观看免费 | 久久天天躁狠狠躁夜夜爽 | 久久6精品 | 九九99久久精品在免费线bt | 99久久中文字幕伊人 | 玖玖精品 | 国产一级特黄aa毛片 | 好看的亚洲视频 | 久久午夜国产片 | 国产在线精品香蕉麻豆 | 欧美一级一毛片 | 亚洲国产精品日韩高清秒播 | 亚洲视频456 | 国产久热精品 | 免费四虎永久在线精品 | 久久影院一区 | 欧美三级aaa | 久久精品在线免费观看 | 国产99视频精品一区 |