`
cui09
  • 浏览: 117341 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
最近访客 更多访客>>
社区版块
存档分类
最新评论

初涉设计模式小结

阅读更多

singleton(单态模式)主要作用是保证在java 应用程序中。一个类Class只有一个实例存在.

在实际操作中。建立目录。数据库连接都需要这样的单线程操作。

public class Singleton {

  private Singleton(){}

  //在自己内部定义自己一个实例,是不是很奇怪?
  //注意这是private 只供内部调用

  private static Singleton instance = new Singleton();

  //这里提供了一个供外部访问本class的静态方法,可以直接访问  
  public static Singleton getInstance() {
    return instance;   
   }
}

java 代码
  1. package com.skywing.utils.db;   
  2.   
  3. public class DbconnManager {   
  4.   
  5.   private static final Logger logger = Logger.getLogger(DbconnManager.class);   
  6.   private static final String DataSourceName=Global.getDataSource();   
  7.   private javax.sql.DataSource ds = null;   
  8.      
  9.   protected DbconnManager() {   
  10.     try {   
  11.       //initDs();   
  12.     }   
  13.     catch (Exception e) {   
  14.       System.err.println("your data base config may be error ,please ceck it .");   
  15.       e.printStackTrace();   
  16.     }   
  17.   
  18.   }   
  19.   
  20.      
  21.   private synchronized void initDs() throws javax.naming.NamingException {   
  22.     if (ds == null) {   
  23.       Object dsLookup = new javax.naming.InitialContext().lookup(DataSourceName);   
  24.       ds = (DataSource) dsLookup;   
  25.     }   
  26.   }   
  27.   
  28.   public static DbconnManager getInstance() {   
  29.     if (instance == null) {   
  30.       synchronized (com.skywing.utils.db.DbconnManager.class) {   
  31.         if (instance == null) {   
  32.           instance = new com.skywing.utils.db.DbconnManager();   
  33.         }   
  34.       }   
  35.     }   
  36.     return instance;   
  37.   }   
  38.      
  39.   
  40.   public Connection getConnection() throws java.sql.SQLException {   
  41.    return getConn();   
  42.    /*  
  43.     try {  
  44.       if (ds == null) {  
  45.         initDs();  
  46.       }  
  47.       return ds.getConnection();  
  48.     }  
  49.     catch (SQLException sqle) {  
  50.       throw sqle;  
  51.     }  
  52.     catch (Exception otherE) {  
  53.       throw new java.sql.SQLException("error geting database connection:" +  
  54.                                       otherE);  
  55.     }  
  56.     */  
  57.   }   
  58.      
  59.    /**  
  60.    * 关闭连接语句  
  61.    * @return Connection  
  62.    */  
  63.   public static void closePreparedStatement(PreparedStatement pstmt) {   
  64.     try {   
  65.       if (pstmt != null) {   
  66.         pstmt.close();   
  67.       }   
  68.     }   
  69.     catch (SQLException e) {   
  70.       System.out.println(e);   
  71.     }   
  72.   }   
  73.      
  74.      
  75.      
  76.    /**  
  77.    * 关闭连接语句  
  78.    * @return Connection  
  79.    */  
  80.   public static void closeStatement(Statement stmt) {   
  81.     try {   
  82.       if (stmt != null) {   
  83.         stmt.close();   
  84.       }   
  85.     }   
  86.     catch (SQLException e) {   
  87.       System.out.println(e);   
  88.     }   
  89.   }   
  90.   
  91.   /**  
  92.    * 关闭查询结果集  
  93.    * @return Connection  
  94.    */  
  95.   public static void closeResultSet(ResultSet rst) {   
  96.     try {   
  97.       if (rst != null) {   
  98.         rst.close();   
  99.       }   
  100.     }   
  101.     catch (SQLException e) {   
  102.       System.out.println(e);   
  103.     }   
  104.   }   
  105.   
  106.   /**  
  107.    * 关闭所有对象(普通的数据库连接)  
  108.    * @return Connection  
  109.    */  
  110.   public static void closeResource(Connection conn,PreparedStatement pstmt,ResultSet rst) {   
  111.     closeResultSet(rst);   
  112.     closePreparedStatement(pstmt);   
  113.     closeConnection(conn);   
  114.   }   
  115.      
  116.   /**  
  117.    * 关闭所有对象(普通的数据库连接)  
  118.    * @return Connection  
  119.    */  
  120.   public static void closeResource(Connection conn,Statement stmt,ResultSet rst) {   
  121.     closeResultSet(rst);   
  122.     closeStatement(stmt);   
  123.     closeConnection(conn);   
  124.   }   
  125.   
  126.   /**  
  127.    * 关闭所有对象(普通的数据库连接)  
  128.    * @return Connection  
  129.    */  
  130.   public static void closeResource(Connection conn,PreparedStatement pstmt) {   
  131.     closePreparedStatement(pstmt);   
  132.     closeConnection(conn);   
  133.   }   
  134.     final static String sDBDriver =Global.getJdbcDriver();   
  135.   final static String sConnStr = Global.getJdbcUrl();   
  136.   
  137.    /**  
  138.    * 通过thin方式获得Oracle数据库的连接.  
  139.    */  
  140.   private Connection getConn() {   
  141.          
  142.     Connection conn = null;   
  143.     try {   
  144.       Class.forName(sDBDriver);   
  145.       conn = DriverManager.getConnection(sConnStr, Global.getJdbcUser(), Global.getJdbcPassword());   
  146.     }   
  147.     catch (Exception e) {   
  148.       e.printStackTrace();   
  149.     }   
  150.     return conn;   
  151.   }   
  152.      
  153.   private static DbconnManager instance = null;   
  154.   
  155.   public static void main(String args[]) throws SQLException {   
  156.     Connection conn = DbconnManager.getInstance().getConnection();   
  157.   }   
  158. }   
分享到:
评论

相关推荐

    java初涉设计模式

    ### Java初涉设计模式 #### 重要概念与背景 在软件工程领域,设计模式是一种用于解决常见问题的模板,能够帮助开发人员构建可维护、可扩展且高效的系统。本篇文章探讨的是面向对象编程语言Java中关于模拟鸭子游戏...

    设计模式 打包

    总的来说,这个压缩文件提供了一个全面的学习设计模式的资源库,无论你是初涉设计模式的新手还是寻求进一步提升的专家,都能从中受益。理解并应用设计模式将提升你的编程技巧,使你能够更好地应对复杂系统的设计挑战...

    设计者模式之禅第二版

    总之,《设计模式之禅(第2版)》是一本值得深入研读的书籍,无论你是初涉软件设计的新手,还是经验丰富的开发者,都能从中获益匪浅。通过学习本书,你将能更好地理解和运用设计模式,提升自己的编程技能,为软件...

    yueqc1#AndroidDevelopmentArticles#设计模式1

    设计模式之旅图说设计模式小猪的设计模式初涉总结Java之美[从菜鸟到高手演变]之设计模式Java之美[从菜鸟到高手演变]之设计模式二Java之美[从菜鸟到高手演

    初涉USB,初学者USB入门总结

    设备被分配一个唯一的地址,之后主机请求设备配置信息,以了解设备的工作模式和特性。如果设备需要提供更详细的信息,如产品名称,还需要上传字符串描述符。对于像鼠标和键盘这样的HID(Human Interface Device)...

    Head First Design Patterns(英文版)

    本书非常适合那些初涉设计模式或者希望深入理解设计模式的读者。它以一种非传统的学习方式呈现内容,结合了丰富的图表、幽默的对话和实际案例,使得学习过程不仅充满乐趣,而且容易理解。书中的例子和练习都以Java...

    攀高山,涉远水,永远在路上

    总结:这篇文章揭示了教师从初入教坛的生涩到逐步成熟的心路历程,展现了教育理念的发展和教育方法的创新,特别是对以学生为中心、情感教育和团队协作等核心教育理念的深入理解和实践。同时,也体现了教师在面对挑战...

    一拖二热泵型空调器cad图纸毕业生设计书.zip

    这些经验之谈对于初涉设计领域的学生而言,是极为宝贵的财富。他们可以从中学习到实际工作中可能遇到的问题,以及如何在有限的条件下寻求创新的解决方案,优化产品设计。 总结来说,《一拖二热泵型空调器CAD图纸...

    MicroPHP_v2.3.1.zip_V2

    MicroPHP基于MVC模式,这是一种常见的软件设计模式,将业务逻辑(Model)、用户界面(View)和数据控制(Controller)分离,提高了代码的组织性和可维护性。在MicroPHP中,Model用于处理数据操作,View负责渲染视图...

    信息化的发展经历参照.pdf

    初涉信息化阶段始于20世纪50年代至70年代,发达国家开始将电子信息技术应用于企业管理、设计和制造等方面。这一时期形成了许多独立的、单项的应用系统,如办公自动化系统(OA)、电子数据处理系统(EDP)、辅助设计...

    Go-Chiefr分布式项目开发模型和工具包

    这个项目不仅包含了设计模式,还集成了各种实用工具,旨在提升开发效率,降低维护成本。 首先,Go-Chiefr采用了微服务架构,这是当前分布式系统设计中的主流趋势。微服务架构允许将大型应用拆分为一组小型、独立的...

    汽车配件管理系统。工作的第一个项目

    《汽车配件管理系统:初涉IT行业的基石》 在IT行业中,初出茅庐的开发者往往会迎来他们的首个项目,这不仅是一次技术实践的试炼,更是个人能力与职业素养的初次展现。本项目——“汽车配件管理系统”,是采用三层...

    JSP经典网页特效500例

    《JSP经典网页特效500例》是针对JSP网页开发的一份宝贵资源,它包含了大量的实例,旨在帮助开发者掌握并应用各种网页...无论你是初涉JSP的新手,还是希望巩固和扩展JSP知识的开发者,这份资源都将为你提供宝贵的指导。

    小米的效率革命产品经理工作学习产品设计产品运营知识.pdf

    从2011年的初涉市场到2014年的巅峰,小米用仅仅三年的时间就实现了从无到有,从小到大的跨越,成为全球前三的手机品牌。 然而,成功并非一帆风顺。到了2015年和2016年,小米遇到了发展瓶颈,市场份额出现下滑。但...

    2019版-千锋Django-源码+笔记.zip

    Django是基于模型-视图-控制器(MVC)设计模式的开源Web框架,由Python编写。它的核心特性包括快速开发、内置ORM、数据库agnostic性、强大的表单处理以及内置管理界面。Django强调“DRY”(Don't Repeat Yourself)...

    phpshow简单易用的php框架

    1. **MVC架构**:PHPShow采用了常见的Model-View-Controller(模型-视图-控制器)设计模式,将业务逻辑、数据处理和用户界面分离,使得代码更加模块化,便于管理和维护。 2. **路由系统**:框架内置了灵活的路由...

    phpaaCMS v0.5.rar

    1. MVC架构:phpaaCMS采用了Model-View-Controller(MVC)的设计模式,将业务逻辑、数据处理和用户界面进行了分离,提高了代码的可读性和可维护性。 2. 数据库操作:系统使用PDO(PHP Data Objects)进行数据库操作...

    Java-1premierfg (10).zip

    学习Java并不止步于基础知识,还需要了解更高级的主题,如设计模式、并发编程、Java 8及更高版本的新特性,以及框架如Spring、MyBatis等。持续学习和实践是成为优秀Java开发者的必经之路。 总结,Java-1premierfg ...

    PyPI 官网下载 | minaotp-1.0.8.tar.gz

    OTP(Open Telecom Platform)是一种设计模式,源于Erlang编程语言,它提供了一种构建高可用、容错性强、可扩展性好的分布式系统的框架。而“minaotp”库是将这种理念引入到Python中的尝试,它可能是为了帮助Python...

    S3C2440中文完全手册

    《S3C2440中文完全手册》是一份针对ARM架构开发人员的重要参考资料,尤其适合初涉嵌入式系统领域的工程师。S3C2440是一款由Samsung公司推出的基于ARM920T内核的微处理器,广泛应用于各种嵌入式系统设计,如移动设备...

Global site tag (gtag.js) - Google Analytics