/** * A)当用户调用pool = ConnectionPool.getInstance(username,password)方法时<br> * 执行构造方法--> 调用init()方法(1.读取配置文件中的driverClassName,url并设置, <br> * 2.创建Vector容器<br> * 3.addConn():通过driverClassName,url,username,password 向容器中添加Connection对象)<br> * B)conn = pool.getConn();//得到Connection对象. * C)conn用完后不是调用close()方法而是调用 release()方法,将连接放回池中 * D)退出程序时调用 closeAllConnection()方法关闭所有连接 */ public class ConnectionPool { private String driverClassName; private String url; private String username; private String password; private Vector<Connection> pool; private int poolSize = 1; private static ConnectionPool instance; private ConnectionPool(String username, String password) { this.username = username; this.password = password; init(); } public static ConnectionPool getInstance(String username, String password) { if (instance == null) { instance = new ConnectionPool(username, password); } return instance; } /** * 如果容器中有Connection 返回一个并从容器中移除<br> * 否则返回NULL */ public synchronized Connection getConn() { if (pool.size() > 0) { Connection conn = pool.get(0); pool.remove(0); return conn; } return null; } public synchronized void release(Connection conn) { pool.add(conn); } public synchronized void closeAllConnection() { for (int i = 0; i < pool.size(); i++) { try { pool.get(i).close(); } catch (SQLException e) { e.printStackTrace(); } pool.remove(i); } } private void init() { readConfig();// 读取配置文件中的url pool = new Vector<Connection>(poolSize); addConn(); } private void readConfig() { FileInputStream input = null; try { input = new FileInputStream(System.getProperty("user.dir") + "/data/db.properties"); } catch (FileNotFoundException e1) { e1.printStackTrace(); } Properties pro = new Properties(); try { pro.load(input); driverClassName = (String) pro.get("driverClassName"); url = (String) pro.get("url"); poolSize = Integer.parseInt((String) pro.get("poolSize")); } catch (IOException e) { e.printStackTrace(); // 如果读取属性出错 } finally { if (input != null) { try { input.close(); } catch (IOException e) { e.printStackTrace(); } } } } private void addConn() { Connection conn = null; try { for (int i = 0; i < poolSize; i++) { Class.forName(driverClassName); conn = DriverManager.getConnection(url, username, password); pool.add(conn); } } catch (ClassNotFoundException e) { e.printStackTrace(); // driverClassName 错误时 } catch (SQLException e) { e.printStackTrace(); // url, username, password错误时 } } }
您还没有登录,请您登录后再发表评论
RESTful是一种设计Web服务接口的原则,它强调使用HTTP协议中的方法...尽管Restlet提供了许多优点,但为了提高系统性能和安全性,还可以考虑进一步集成Spring框架、优化数据库连接池,以及增强对敏感信息的保护机制。
Java 连接数据库的方法主要涉及Java Database ...在实际开发中,为了提高代码的可读性和可维护性,通常会使用连接池(如C3P0、HikariCP等)来管理数据库连接,以及ORM框架(如Hibernate、MyBatis)来简化数据库操作。
4. **XAResource接口**:这是资源管理器(如数据库连接池)与JTA交互的接口。资源管理器必须实现此接口,以便能够参与到JTA事务中。 5. **编程模式**:在J2SE应用中,开发者通常采用编程式事务管理,即在代码中显式...
面试中,这些问题通常会深入探讨,比如JSP的EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library),Servlet的过滤器和监听器,JDBC的连接池管理,JDO的数据持久化策略,XML的XPath和XSLT转换...
- **JDBC**:掌握数据库操作的基本技能,包括连接池、数据源管理等。 - **HTML_CSS_JAVASCRIPT**:作为前端开发的基础,这部分内容也是不可或缺的。 #### 三、动手实践 文章强调了动手实践的重要性。学习编程的...
3. **JDBC**:Java数据库连接(JDBC)是与数据库交互的基础,需要了解JDBC的基础知识,如连接池的使用,如何利用DataSource和RowSet进行数据操作,以及如何通过JDBC连接Oracle和MySQL。 4. **Web前端技术**:HTML、...
尽管严格意义上Tomcat并非真正的App Server,但它是一个支持Servlet/JSP的Web容器,并具备一定的App Server功能(如JNDI、数据库连接池、用户事务处理等)。Tomcat被广泛应用在中小型Java Web应用中。 - **下载**:...
10. **JDBC数据库编程**:学习如何使用Java连接和操作数据库,包括数据库驱动、连接池、预编译SQL语句、事务管理等。 通过学习《SUN JAVA 培训专用教材》,你不仅能掌握SCJP认证所需的知识,还能深入了解Java编程的...
- **连接池**: JDBC连接池可以提高应用程序的性能,通过重用现有的数据库连接而不是每次都新建连接。 - **DataSource&RowSet**: `DataSource`接口提供了获取数据库连接的方法,而`RowSet`则提供了一种断开连接的方式...
12 一个数据库连接池 第15章 Applet 15. 1 Applet时钟 15. 2 处理鼠标和键盘事件 15. 3 英文打字游戏 15. 4 Applet间通信 15. 5 汉诺塔游戏 第16章 J2SE 5. 0新特性 16. 1 自动...
然而,通过扩展,Tomcat也能支持一些应用服务器的功能,如JNDI、数据库连接池等。 - **下载与安装**:Tomcat属于Apache Jakarta项目的一部分,可以从其官方网站(http://jakarta.apache.org/tomcat/)下载。最新版本...
- **特点**:Tomcat虽然严格意义上不是一个真正意义上的应用服务器,但它支持运行Servlet/JSP,具备一定的应用服务器功能,如JNDI、数据库连接池、用户事务处理等。 - **应用场景**:广泛应用于中小规模的Java Web...
7. **Resource:** Resource用于配置数据库连接池、邮件会话等共享资源,这些资源可以在多个Web应用程序之间共享。 8. **ClassLoader:** ClassLoader是类加载器,它负责加载应用程序的类文件,Tomcat采用了层次化...
3. **连接池的优点和原理**:连接池可以复用数据库连接,减少连接创建和销毁的开销,提高系统性能。 4. **Web.xml的作用**:配置Web应用的上下文参数、过滤器、监听器、Servlet映射等。 #### 四、其他 1. **Web安全...
- **扩展功能**:支持JNDI、数据库连接池等功能。 - **地位**:虽然不是真正的App Server,但在Java开发中被广泛使用。 #### 二、Java语言基础 - **数据类型**:了解基本数据类型与引用数据类型的差异。 - **控制...
相关推荐
RESTful是一种设计Web服务接口的原则,它强调使用HTTP协议中的方法...尽管Restlet提供了许多优点,但为了提高系统性能和安全性,还可以考虑进一步集成Spring框架、优化数据库连接池,以及增强对敏感信息的保护机制。
Java 连接数据库的方法主要涉及Java Database ...在实际开发中,为了提高代码的可读性和可维护性,通常会使用连接池(如C3P0、HikariCP等)来管理数据库连接,以及ORM框架(如Hibernate、MyBatis)来简化数据库操作。
4. **XAResource接口**:这是资源管理器(如数据库连接池)与JTA交互的接口。资源管理器必须实现此接口,以便能够参与到JTA事务中。 5. **编程模式**:在J2SE应用中,开发者通常采用编程式事务管理,即在代码中显式...
面试中,这些问题通常会深入探讨,比如JSP的EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library),Servlet的过滤器和监听器,JDBC的连接池管理,JDO的数据持久化策略,XML的XPath和XSLT转换...
- **JDBC**:掌握数据库操作的基本技能,包括连接池、数据源管理等。 - **HTML_CSS_JAVASCRIPT**:作为前端开发的基础,这部分内容也是不可或缺的。 #### 三、动手实践 文章强调了动手实践的重要性。学习编程的...
3. **JDBC**:Java数据库连接(JDBC)是与数据库交互的基础,需要了解JDBC的基础知识,如连接池的使用,如何利用DataSource和RowSet进行数据操作,以及如何通过JDBC连接Oracle和MySQL。 4. **Web前端技术**:HTML、...
尽管严格意义上Tomcat并非真正的App Server,但它是一个支持Servlet/JSP的Web容器,并具备一定的App Server功能(如JNDI、数据库连接池、用户事务处理等)。Tomcat被广泛应用在中小型Java Web应用中。 - **下载**:...
10. **JDBC数据库编程**:学习如何使用Java连接和操作数据库,包括数据库驱动、连接池、预编译SQL语句、事务管理等。 通过学习《SUN JAVA 培训专用教材》,你不仅能掌握SCJP认证所需的知识,还能深入了解Java编程的...
- **连接池**: JDBC连接池可以提高应用程序的性能,通过重用现有的数据库连接而不是每次都新建连接。 - **DataSource&RowSet**: `DataSource`接口提供了获取数据库连接的方法,而`RowSet`则提供了一种断开连接的方式...
12 一个数据库连接池 第15章 Applet 15. 1 Applet时钟 15. 2 处理鼠标和键盘事件 15. 3 英文打字游戏 15. 4 Applet间通信 15. 5 汉诺塔游戏 第16章 J2SE 5. 0新特性 16. 1 自动...
然而,通过扩展,Tomcat也能支持一些应用服务器的功能,如JNDI、数据库连接池等。 - **下载与安装**:Tomcat属于Apache Jakarta项目的一部分,可以从其官方网站(http://jakarta.apache.org/tomcat/)下载。最新版本...
- **特点**:Tomcat虽然严格意义上不是一个真正意义上的应用服务器,但它支持运行Servlet/JSP,具备一定的应用服务器功能,如JNDI、数据库连接池、用户事务处理等。 - **应用场景**:广泛应用于中小规模的Java Web...
7. **Resource:** Resource用于配置数据库连接池、邮件会话等共享资源,这些资源可以在多个Web应用程序之间共享。 8. **ClassLoader:** ClassLoader是类加载器,它负责加载应用程序的类文件,Tomcat采用了层次化...
3. **连接池的优点和原理**:连接池可以复用数据库连接,减少连接创建和销毁的开销,提高系统性能。 4. **Web.xml的作用**:配置Web应用的上下文参数、过滤器、监听器、Servlet映射等。 #### 四、其他 1. **Web安全...
- **扩展功能**:支持JNDI、数据库连接池等功能。 - **地位**:虽然不是真正的App Server,但在Java开发中被广泛使用。 #### 二、Java语言基础 - **数据类型**:了解基本数据类型与引用数据类型的差异。 - **控制...