常用的数据源配置

来源:互联网 发布:餐饮软件全国排名 编辑:程序博客网 时间:2024/06/07 05:43

数据源(DataSource)--从连接池获得Connection对象

一、DBCP

   使用步骤:

1、将对应的jar包粘贴到web-inf的lib下,如果是java项目 记得要 Add to Build Path;

2、添加属性资源文件(dbconfig.properties)于src下

3、编写DBCPUtils,然后就可以获取Connection对象和release方法了

import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Properties;import javax.sql.DataSource;import org.apache.commons.dbcp.BasicDataSourceFactory;public class DBCPUtil {//得到连接池private static DataSource dataSource;static{try {Properties pro = new Properties();pro.load(DBCPUtil.class.getClassLoader().getResourceAsStream("dbcpconfig.properties"));//得到连接池对象,同时获取配置文件中的信息给连接池对象使用dataSource = BasicDataSourceFactory.createDataSource(pro);} catch (Exception e) {throw new ExceptionInInitializerError("连接池初始化失败");}}//获取Connection对象的方法public static Connection getConnection() throws SQLException{return dataSource.getConnection();}//释放资源public static void release(Connection conn,Statement st,ResultSet rs){ if(conn!=null)try {conn.close();} catch (SQLException e) {e.printStackTrace();}if(st!=null)try {st.close();} catch (SQLException e) {e.printStackTrace();}   if(rs!=null)try {rs.close();} catch (SQLException e) {e.printStackTrace();}}<span style="color:#000000;">}</span>
二   C3P0

1、添加jar包c3p0jar

2、编写配置文件 c3p0-config.xmlT于src下

3、编写C3P0Utils,然后就可以获取Connection对象和release方法了

package com.zgf.c3p0;import java.beans.PropertyVetoException;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import com.mchange.v2.c3p0.ComboPooledDataSource;public class C3P0Util {//连接池对象private static ComboPooledDataSource dataSource = new ComboPooledDataSource();public static Connection getConnection() throws SQLException{return dataSource.getConnection();}public static void release(Connection conn,Statement st,ResultSet rs){ if(conn!=null)try {conn.close();} catch (SQLException e) {e.printStackTrace();}if(st!=null)try {st.close();} catch (SQLException e) {e.printStackTrace();}   if(rs!=null)try {rs.close();} catch (SQLException e) {e.printStackTrace();}}}

三、用javaweb服务器管理数据源:tomcat

 配置数据源的步骤:

1、拷贝数据库连接的jar到tomcat->lib目录下  mysql包

2、配置数据源XML文件

a)如果把配置信息写在tomcat下的conf目录的context.xml中,那么所有应用都能使用此数据源。

  <Resource name="jdbc/pool" auth="Container" type="javax.sql.DataSource"               maxActive="100" maxIdle="30" maxWait="10000"               username="root" password="123" driverClassName="com.mysql.jdbc.Driver"               url="jdbc:mysql://localhost:3306/mvc"/><Resource name="jdbc/oracle" auth="Container" type="javax.sql.DataSource"               maxActive="100" maxIdle="30" maxWait="10000"               username="root" password="123" driverClassName="com.mysql.jdbc.Driver"               url="jdbc:mysql://localhost:3306/mvc"/><Resource name="jdbc/sqlserver" auth="Container" type="javax.sql.DataSource"               maxActive="100" maxIdle="30" maxWait="10000"               username="root" password="123" driverClassName="com.mysql.jdbc.Driver"               url="jdbc:mysql://localhost:3306/mvc"/>


b)如果是在当前应用的META-INF中创建context.xml, 编写数据源,那么只有当前应用可以使用。

<?xml version="1.0" encoding="UTF-8"?><Context>  <Resource name="jdbc/pool" auth="Container" type="javax.sql.DataSource"               maxActive="100" maxIdle="30" maxWait="10000"               username="root" password="root" driverClassName="com.mysql.jdbc.Driver"               url="jdbc:mysql://localhost:3306/db1"/></Context><span style="color:#000000;"></span>
3、

使用连接池-->注意lookup要和Resource name对应

</pre><p></p><span style="color:#000000;"></span><pre code_snippet_id="1894673" snippet_file_name="blog_20160922_6_1324571" name="code" class="java">  <body>       <%           //使用tomcat提供的数据源(连接池)Context initContext = new InitialContext();Context envContext  = (Context)initContext.lookup("java:/comp/env");//通过name指明连接池使用的配置信息  JNDIDataSource ds = (DataSource)envContext.lookup("jdbc/pool");Connection conn = ds.getConnection();            out.print(conn);            //jdbc:mysql://localhost:3306/mvc, UserName=root@localhost, MySQL-AB JDBC Driver        %>  </body>

另:

JNDI:java nameing directory interface

JNDI容器就是一个Map

key(String)

value(Object)

path+name

对象

path+"jdbc/pool"

DataSource对象

如上3、2、a中3个配置信息存放于map,键是name,值是对应的配置信息。

总结:使用步骤一共三步

> 添加对用的jar包

> 添加属性资源文件

> 编写数据源工具类



附:

1、dbconfig.properties文件 注意使用的数据库和数据库使用的用户名和密码

#连接设置driverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/dbusername=rootpassword=123#<!-- 初始化连接 -->initialSize=10#最大连接数量maxActive=50#<!-- 最大空闲连接 -->maxIdle=20#<!-- 最小空闲连接 -->minIdle=5#<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 -->maxWait=60000#JDBC驱动建立连接时附带的连接属性属性的格式必须为这样:[属性名=property;] #注意:"user" 与 "password" 两个属性会被明确地传递,因此这里不需要包含他们。connectionProperties=useUnicode=true;characterEncoding=utf8#指定由连接池所创建的连接的自动提交(auto-commit)状态。defaultAutoCommit=true#driver default 指定由连接池所创建的连接的只读(read-only)状态。#如果没有设置该值,则“setReadOnly”方法将不被调用。(某些驱动并不支持只读模式,如:Informix)defaultReadOnly=#driver default 指定由连接池所创建的连接的事务级别(TransactionIsolation)。#可用值为下列之一:(详情可见javadoc。)NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLEdefaultTransactionIsolation=REPEATABLE_READ
2、c3p0-config.xml文件
<?xml version="1.0" encoding="UTF-8"?><c3p0-config>  <default-config>    <property name="driverClass">com.mysql.jdbc.Driver</property>    <property name="jdbcUrl">jdbc:mysql://localhost:3306/db1</property>    <property name="user">root</property>    <property name="password">root</property>        <property name="initialPoolSize">10</property>    <property name="maxIdleTime">30</property>    <property name="maxPoolSize">100</property>    <property name="minPoolSize">10</property>    <property name="maxStatements">200</property>    <user-overrides user="test-user">      <property name="maxPoolSize">10</property>      <property name="minPoolSize">1</property>      <property name="maxStatements">0</property>    </user-overrides>  </default-config></c3p0-config>



0 0
原创粉丝点击