常用的数据源配置
来源:互联网 发布:餐饮软件全国排名 编辑:程序博客网 时间: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_READ2、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
- 常用的数据源配置
- 常用的数据源配置
- Javaweb配置常用的数据源配置
- 【Spring】Spring配置数据源的常用方式
- 常用的数据源
- JBoss 数据源的配置
- 数据源的配置小结
- 数据源的配置
- 数据源的配置
- Tomcat6的数据源配置
- Tomcat6数据源的配置
- Tomcat 的数据源配置
- jboss数据源的配置
- Tomcat6数据源的配置 .
- tomcat数据源的配置
- 配置数据源的odbc
- c3p0数据源的配置
- JNDI 数据源的配置
- PHP软件工程师的面试题
- Android开发过程中常用一些框架
- Thinkphp框架中使用memcache缓存的方法
- ubuntu基于shadowsocks的PAC全局代理:解决方案
- tp common模块在Thinkphp里面的作用
- 常用的数据源配置
- Codeforces 493C. Vasya and Basketball【暴力+二分】
- Windows 安装 mysql5.6
- 即插即用demo系列——文本相似度比较
- JAVA基础 day11 多线程 同步代码块 死锁问题
- css优化、提高性能的方法
- CSS外边距叠加的问题
- Android系统篇之—-Binder机制和远程服务调用机制分析
- ie9下checkbox无法二次全选