DriverManager DataSource
来源:互联网 发布:理财平台软件 编辑:程序博客网 时间:2024/05/20 11:36
概述:
DriverManager是驱动管理器,DataSource是数据源,一般DataSource是建立在DriverManager的基础上的,配合一个连接池的实现 。
1.DriverManager
DriverManager传统的jdbc连接,通过Class.forName("xxx")的办法注册之后,就可以DriverManager.getConnection()获得连接了。
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBConnection { private static String driverClass = "com.mysql.jdbc.Driver"; private static String url = "jdbc:mysql://localhost:3306/test"; private static String username = "root"; private static String password = "123456"; private static Connection conn = null; static{ try { //注册驱动 // 不要把conn = DriverManager.getConnection(url, username, password); //放在这里。防止所有用户都用一个Connection Class.forName(driverClass); } catch (Exception e) { throw new RuntimeException(e); } } public static Connection getConnection() throws SQLException{ conn = DriverManager.getConnection(url, username, password); return conn; } }
2.DataSource
DataSource有很多实现。
(1)jndi方式创建DataSource
以jndi方式创建数据源首先要配置数据源的相关连接信息,也就是数据连接池。该配置应该在Tomcat安装目录下的conf/context.xml文件中配置,在eclipse的j2ee架构下,也可以把context.xml文件创建在/META-INF目录下。基配置如下:
<Context><!--MySql--><Resource name="jdbc/movie" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="[用户名]" password="[密码]" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/[实例名]?autoReconnect=true"/></Context>
public static DataSource getDataSource() {DataSource ds = null;try {// tomcat数据源连接与weblogic不同, 建立if...else...分支if(appSrvType == SysConfig.APPSRV_TOMCAT) {Context initCtx = (Context) new javax.naming.InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env");ds = (DataSource) envCtx.lookup(SysConfig.DATASOURCE_NAME);} else {Hashtable ht = new Hashtable();ht.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");Context initContext = new InitialContext(ht);ds = (DataSource) initContext.lookup(SysConfig.DATASOURCE_NAME);}} catch (Exception e) {e.printStackTrace();log.error("无法通过JNDI找到数据源,请配置jdbc数据源:" + SysConfig.DATASOURCE_NAME);}return ds;}
(2)以Apache提供的简单连接池创建DataSource
以这种方式创建数据源必须先准备两个jar文件:commons-dbcp.jar 和 commons-pool.jar,将这两个jar包放到WEB-INF/lib目录下。以这种方式创建的数据源就不再是javax.sql.DataSource了,而是org.apache.commons.dbcp.BasicDataSource。而且不再需要配置任何文件就可以直接使用。代码如下:
// 创建BasicDataSource对象 BasicDataSource ds = new BasicDataSource(); ds.setDriverClassName("com.mysql.jdbc.Driver"); ds.setUrl("jdbc:mysql://localhost:3306/[实例名]"); ds.setUsername("[用户名]"); ds.setPassword("[密码]"); ds.setInitialSize(50); ds.setMaxActive(100); ds.setMaxIdle(30); ds.setMaxWait(10000); // 关闭数据源连接 ds.close();
(3)C3P0方式创建DataSource
使用C3P0方式创建数据源应该首先准备一个jar文件:c3p0-0.9.1.2.jar,将其放到WEB-INF/lib目录下,就可以在项目中使用C3P0创建数据源,C3P0创建的数据源对象也不是DataSource对象,而是ComboPooledDataSource。
// 创建ComboPooledDataSource对象ComboPooledDataSource ds = new ComboPooledDataSource();ds.setDriverClass("com.mysql.jdbc.Driver");ds.setJdbcUrl("jdbc:mysql://localhost:3306/[实例名]");ds.setUser("[用户名]");ds.setPassword("[密码]");ds.setInitialPoolSize(50);ds.setMaxPoolSize(100);ds.setMaxIdleTime(10000);
- DriverManager DataSource
- datasource and driverManager
- DataSource跟DriverManager…
- DataSource与DriverManager的比较
- DataSource跟DriverManager区别及联系
- DataSource和DriverManager区别及联系
- DataSource和DriverManager区别及联系
- DriverManager与DataSource 连接数据库区别?
- DriverManager与DataSource 连接数据库有何区别?
- java中DriverManager跟DataSource获取getConnection有什么不同?
- java中DriverManager跟DataSource获取getConnection有什么不同?
- 四种连接数据库的方法(DriverManager、DataSource子类、DBCP、c3p0)
- [数据源] java中DriverManager跟DataSource获取getConnection有什么不同?
- JDBC连接数据库的四种方式:DriverManager,DataSource,DBCP,C3P0
- DataSource
- DataSource
- datasource
- dataSource
- python 字符串匹配与正则表达式
- [libevent]event/event_base/epollop/evsignal_info分析
- Android自定义流式标签控件
- 希尔排序
- 【bzoj1912】[Apio2010] patrol 巡逻 树形dp
- DriverManager DataSource
- php核心知识点
- Delphi中使用RegExpr单元进行匹配与替换操作
- oracle数据误删后恢复数据操作
- Oracle导出单表
- oracle11gR2RAC 安装cluster和database要求不同目录,否则ora-12537/12547/12518
- 为什么ConcurrentHashMap是弱一致的
- 在CMD和Powershell中间更强大的命令行WMIC
- mvc:resources