`

通过 servletContext 得到 数据源,进而得到connection

阅读更多
DBOperation:
package com.community.util;

import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.servlet.ServletContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class DBOperation {
	private PreparedStatement stsm;
	private static Logger log = LoggerFactory.getLogger(DBOperation.class);
	public void excuteUpdate(String sql,Object[]values,ServletContext sc)
	{
		try {
			stsm = DBConnection.getConnection(sc).prepareStatement(sql);
			if(values!=null && values.length>0)
			{
				for(int i=0 ; i<values.length ;i++)
				{
					stsm.setObject(i+1, values[i]);
				}
			}
			stsm.executeUpdate();
		} catch (SQLException e) {
			log.error("数据更新错误!",e);
		} finally {
			DBConnection.closeConnection();
		}
	}
	
}


package com.community.util;

import java.sql.Connection;
import java.sql.SQLException;
import javax.servlet.ServletContext;
import org.logicalcobwebs.proxool.ProxoolDataSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

public class DBConnection {
	private static Connection conn;
	private static Logger log = LoggerFactory.getLogger(DBConnection.class);

	/**
	 * 获得数据库连接
	 * 
	 * @return
	 */
	public static synchronized Connection getConnection(ServletContext sc) {
		init(sc);
		return conn;
	}

	/**
	 * 初始化数据库连接
	 */
	private static void init(ServletContext sc) {
		try {
			//PropUtils p = new PropUtils();
			//p.loadFile("jdbc.properties");
			ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(sc);
			//new FileSystemXmlApplicationContext();
			ProxoolDataSource prox = (ProxoolDataSource)ctx.getBean("dataSource");
			// 获取连接
			conn =prox.getConnection();
			// Class.forName(p.getValue("db.driver"));
			// conn =
			// DriverManager.getConnection(p.getValue("db.url"),p.getValue("db.user"),p.getValue("db.password"));
		} catch (SQLException e) {
			log.error("数据库连接错误!", e);
		}catch(Exception e){
			log.error("数据库连接错误!", e);
		}
	}

	/**
	 * 关闭数据库连接
	 */
	public static void closeConnection() {
		if (conn != null) {
			try {
				conn.close();
			} catch (SQLException e) {
				log.error("数据库关闭错误!", e);
			}
		}
	}
//	public static void main(String[] args) {
//		init();
//	}
}
分享到:
评论

相关推荐

    servlet中的ServletContext的使用

    在这个"韩顺平"的源代码示例中,我们可能会看到如何创建一个Servlet,该Servlet在初始化时向`ServletContext`添加一些属性,然后另一个Servlet或JSP页面可以读取并使用这些属性。这种机制对于传递全局信息,如用户...

    ServletContext

    所有属于同一Web应用的Servlet都可以通过`ServletContext`相互通信,这使得数据共享变得简单且高效。 二、`ServletContext`的主要功能 1. 共享数据:`ServletContext`提供了一个全局的存储空间,可以让所有的...

    struts框架中数据源的配置

    通过以上步骤,我们成功地在Struts框架中配置了SQL Server数据源,并在Action类中获取了该数据源的连接。这种方法不仅使得数据库连接的管理更加灵活,还极大地降低了应用程序后期维护和升级的成本。对于那些需要频繁...

    用配置文件来设置数据源

    在IT领域,特别是软件开发与...通过配置文件设置数据源是现代软件工程中的常见实践,它不仅提高了应用的可配置性和灵活性,还简化了数据库管理和运维工作。掌握这一技能对于任何从事软件开发的人来说都是至关重要的。

    ServletContext与ServletConfig关系

    在访问 ServletConfig 对象参数时,可以通过 getInitParameter() 方法获取参数值,而在访问 ServletContext 对象参数时,可以通过 getInitParameter() 方法或 getAttribute() 方法获取参数值。 ServletConfig 和 ...

    35、servlet--servletContext

    通过`servletContext`,不同的Servlet之间可以进行通信,实现数据的共享。 二、`servletContext`的主要功能 1. **获取初始化参数**:在Web应用的部署描述符(web.xml)中,我们可以设置全局的初始化参数。这些参数...

    servletContext的实例代码

    在这个实例中,我们将深入理解`servletContext`的使用,并探讨如何通过它实现登录功能以及统计登录人数。 首先,`ServletContext`是每个Web应用程序启动时由容器(如Tomcat)创建的。它是一个全局的共享对象,可以...

    监听request、session、ServletContext 对象存放的数据变化情况

    博客地址:...存放数据指的是这三个对象在工程中setAttribute(),removeAttribute()的时候,我们的监听器就会知道,然后在对应的方法中执行相应的操作。

    ServletContext读取web应用中的资源文件.doc

    ServletContext 读取 web 应用中的资源文件 在 Web 应用程序中,我们经常需要读取某些资源文件,如配置文件、图片等等。为了实现这一点,ServletContext 接口提供了一些方法来读取 web 应用中的资源文件,这些方法...

    Spring-for -servletcontext1.0.jar

    Ssh获取ServletContext 只需要更改struts-config action中的type就可以了ru :type="com.uo.spring.SpringDelegatingActionProxy" 大家有什么疑问可以直接去我的blog查看...《[正解]Ssh获取ServletContext》

    ServletContext与application异同.docx

    `ServletContext`是Servlet API中的一个接口,它代表了一个Web应用程序的全局共享区域,所有在同一个Web应用中的Servlet都可以通过`ServletContext`来共享数据和资源。而`Application`通常指的是`ServletContext`的...

    ServletContext接口

    通过调用`ServletContext`的`getInitParameterNames()`方法,可以获得一个枚举(`java.util.Enumeration`),包含了所有初始化参数的名字。进一步地,通过`getInitParameter(String name)`方法,可以根据参数名获取...

    quartz servletcontext配置资料

    通过将Quartz与ServletContext结合,我们可以方便地在Web应用中管理定时任务,并在应用的生命周期内保持任务的执行。这种配置方式使得任务调度与Web容器紧密集成,便于监控和维护,是Java Web开发中常见的实践。

    超全面javaweb教程28天第9天 14 获取ServletContext对象

    超全面javaweb教程28天第9天_14_获取ServletContext对象

    ServletContext介绍及用法.docx

    - 数据全局共享:所有Servlet都能读写ServletContext中的数据。 - 生命周期:ServletContext在服务器启动时创建,服务器关闭时销毁。 ### 2. 读取全局配置参数 **2.1 方法** - `getServletContext()....

    ServletContext.pdf

    1. **数据共享**:`ServletContext`可以被Web应用中的所有Servlet实例共享,这样就可以通过它来存储一些全局性的数据,便于各个Servlet之间进行数据传递和共享。 2. **获取初始化参数**:可以通过`ServletContext`...

    servletcontext详解

    这意味着同一个Web应用中的所有Servlet对象都共享同一个`ServletContext`实例,通过它可以实现对容器资源的访问和共享数据的管理。 #### 二、`ServletContext`的作用 `ServletContext`接口提供了多种方法,用于在...

    ServletConfig与ServletContext.docx

    ServletContext允许在不同的Servlet之间共享数据,也可以用来获取全局的初始化参数,通过`getServletContext().getInitParameter("foo")`来获取。例如,以下是如何在`web.xml`中定义上下文初始化参数: ```xml ...

    使用ServletContext对象完成网页计数器

    `ServletContext`对象是Servlet容器(如Tomcat、Jetty等)为每个Web应用程序创建的一个全局对象,它在整个Web应用的生命周期内都存在,为所有Servlet提供了一个共享数据和资源的平台。在本例中,我们探讨的是如何...

Global site tag (gtag.js) - Google Analytics