DBUtil中使用spring配置的数据源
1. 由于项目中使用的ssH框架,而部分程序中又有直接使用DBUtil工具类直接获取jdbc连接的地方,为了统一由spring管理数据源,想在DBUtil中也只接使用spring初始化好的数据源
2.spring配置的数据源如下(使用了dbcp连接池,需要2个jar包支持commons-dbcp.jar和commons-pool.jar)
<!-- 1、配置dbcp,数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8</value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>tiger</value> </property> <property name="initialSize" value="10"/> <property name="minIdle" value="5"/> <property name="maxIdle" value="10"/> <property name="maxWait" value="60000"/> <property name="removeAbandonedTimeout" value="180"/> <property name="removeAbandoned" value="true"/> </bean>
3.DBUtil类
import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.sql.DataSource; import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; /* * 获取数据库连接的工具类 */ public class DBUtil { private static DataSource ds = null; public static Connection conn; //加载驱动 static { try { ApplicationContext ac = new FileSystemXmlApplicationContext("classpath:applicationContext.xml"); ds = (DataSource) ac.getBean("dataSource"); } catch (Exception e) { e.printStackTrace(); } } //获得连接 public static Connection getConnection() throws SQLException { return ds.getConnection(); } /* * 关闭数据库连接 */ public static void close(ResultSet rs,Statement st,Connection conn) { if(rs!=null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ if(st!=null){ try { st.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ if(conn!=null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } } } } public static void main(String[] args) throws SQLException { System.out.println(DBUtil.getConnection()); } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。