jdbc驱动

jdbc驱动

//1.注册jdbc驱动   方法有两个:-------------------------------------------------------------

import   java.lang.Class;                                         //方法一
Class.forName("oracle.jdbc.OracleDriver"); //事实上不用引入

import   java.sql.DriverManager; //方法二:
DriverManager.registerDriver(new   Oracle.jdbc.OracleDriver());

//2.打开数据库连接,方法两个:-------------------------------------------------------------
DriverManager.getConnection(URL,username,password);           //方法一:
//例子:
Connection   myConnection=DriverManager.getConnection(
"jdbc:oracle:thin@localhost:1521:myoracle",
"name",
"password");

import   Oracle.jdbc.pool.OracleDataSource; //方法二:使用数据源
OracleDataSource   myDataSource=new   OracleDataSource(); //创建数据源
myDataSource.setServerName("localhost");
myDataSource.setDatabaseName("myOracle");
myDataSource.setDriverType("oci");
myDataSource.setNetworkProtocol("tcp"); //设置属性
myDataSource.setPortNumber(1521);
myDataSource.setUser("name");
myDataSource.setPassword("password");
//连接数据库,可以重新指定用户名和密码,以不同的身份连接查询;
Connection   myConnection=myDataSource.getConnection("username","password");

//3.创建jdbc   Statement对象-------------------------------------------------------------------------
//可以禁止自动提交     myConnection.setAutoCommit(false);
Statement   myStatement=myConnection.createStatement();

//4.从数据库取得信息,即使用statement对象
ResultSet   myResultSet=myStatement.executeQuery(
"select   userid,username   from   table"); //取得所有的信息

String   result=myResultSet.getString("userid"); //取得某项信息
if(myResultSet.wasNull()){      
};
ResultSet.next();
myResultSet.close(); //关闭

//在这里提交               myConnection.commit();

//5.关闭jdbc对象-------------------------------------------------------------------------------
myStatement.close();
myConnection.close();
/*一般采用如下格式:
finally{
if(myStatement!=null){
myStatement.close();}
if(myConnection!=null{
myConnection.close();}
}
*/
//6.使用jdbc   preparedStatement对象-----------------------------------------------------
PreparedStatement   myPrepStatement=myConnection.preparedStatement(
"insert   into   products"+
"(id,type_id,name)   values   ("+
"?,?,?"
")" //
);
myPrepStatement.setInt(1,100);
myPrepStatement.setInt(2,1100);
myPrepStatement.setString(3,"username"); //使用set方法
myPrepStatement.excute(); //提交

/*二,使用连接缓存和连接池来连接数据库
可以通过建立一个连接缓存,必要时向连接缓冲池添加连接。
*/
//首先讨论连接缓冲池------------------------------------------------------------------------
import   javax.sql.*;
import   oracle.jdbc.pool.*;

OracleConnectionPoolDataSource   myOracle=mew   OracleConnectionPoolDataSource();
//创建连接缓冲池数据源oracleConnectionPoolDataSource的对象  
//实现了ConnectionPoolDataSource接口
//2.使用此对象设置物理数据库连接的属性
myOracle.setServerName("localhost");
myOracle.setDatabaseName("myOracle");
myOracle.setPortNumber(1521);
myOracle.serDriverTupe("thin");

myOracle.setUser("user");
myOracle.setPassword("password");

//3.创建缓冲的连接对象,它代表物理数据库连接,可以使用它来请求数据库连接实例

PooledConnection   myPooledConnection=   myOracle.getPooledConnection();
//PooledConnection   myPooledConnection=   myOracle.getPooledConnection("user","password");
//建立一次连接,可以多次请求连接实例,最后再关闭连接对象

//4.请求、使用、和最终关闭连接实例
Connection   myConnection=myPooledConnection.getConnection();
//使用
myconnection.close();

//5.程序结束之前,关闭PooledConnection对象
myPooledConnection.close();



/*   使用连接缓存---------------------------------------------------------------------------
*/
/*1.创建OracleConnectionCacheImpl的对象,他实现了OracleConnectionCacheClass接口
这个接口扩展了OracleDataSource类,可以使用这个类的所有属性和方法
创建的最简单的方法是使用默认的构造器*/
OracleConnectionCacheImpl   myOCCI=new   OracleConnectionCacheImpl();

myOCCI.setServerName("localhost");
myOCCI.setDatabaseName("myOracle");
myOCCI.setPortNumber(1521);
myOCCI.setDriverType("thin");
myOCCI.setUser("name");
myOCCI.setPassword("password");
//还可以使用现有的OraclePoolDataSource对象为它设置属性
//OracleConnectionCacheImpl   myOCCI=new   OracleConnectionCacheImpl(myOracle);
//或使用如下方法
//myOCCI.setConnectionPoolDataSource(myOracle);

//2.请求、使用和关闭连接实例
Connection   myConnection=myOCCI.getConnection();

/*PooledConnection对象代表物理数据库连接,默认情况下,调用myOCCI.getConnection()方法时,
    myocci检查缓存中是否存在Pooledconnection对象,没有就创建一个
    然后,检查pooledconnection对象是否有空闲的连接实例,没有就创建
    并返回PooledConnection对象的连接实例
*/
//在这里可以请求另一个连接实例
//Connection   myConnection2=myOCCI.getConnection();

//关闭连接实例
myConnection.close();

//程序结束前,应该关闭OracleConnectionCacheImpl对象,同时也就关闭了所有PooledConnection对象
myOCCI.close();



/*使用OCI驱动程序实现连接缓冲池---------------------------------------------------------------
    优点:可以动态配置物理连接数量
    每个连接实例可以可以有不同的用户名密码,可以使用一个缓冲池访问不同的用户模式
    能够有多个缓冲连接,THIN只有一个数据库连接
*/
OracleOCIConnectionPool   myOOCP=new   OracleOCIConnectionPool();
/*   myOOCP.set……
      ……
      ……
*/
//以下可选的可以程序运行时动态设定的属性
/*
    Properties   myProperties=new   Properties();
    myProperties.put(OracleOCIConnectionPool.CONNPOOL_MIN_LIMIT,"5");
    my   ……                         .CONNPOOL_MAX_LIMIT,"10");
    ……………                 _INCREMENT,"2");
          _TIMEOUT,"30");
          _NOWAIT,"true");
    myOOCP.setPoolconfig(myProperties);
*/
//建立连接实例
OracleOCIConnection   myConnection=(OracleOCIConnection)myOOCP.getConnection();

myConnection.close();

myOOCP.close();

 

原文地址:http://blog.youkuaiyun.com/zfive5/articles/636099.aspx

### 关于 `pip` 安装过程中由 `urllib3` 引发的异常错误解决方案 在使用 `pip` 进行包管理可能会遇到由于网络连接超时或其他原因导致的 `urllib3` 异常。以下是针对此类问题的具体分析和解决方法。 #### 1. 超时错误 (`ReadTimeoutError`) 当执行命令如 `pip3 install jupyterlab` 或其他依赖下载操作,如果目标服务器响应时间过长,则可能出现如下错误: ``` pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. ``` 此错误表明客户端未能及接收到来自远程主机的数据流[^1]。可以尝试通过增加超时参数来缓解该问题: ```bash pip --default-timeout=100 install <package_name> ``` 这里设置了一个更大的默认超时(单位为秒),从而允许更长时间等待服务端响应[^4]。 #### 2. 清理旧版本并重新安装 `pip` 有本地环境中残留损坏或不兼容的组件也可能引起类似的异常行为。按照以下步骤清理环境后再试可能有效果: - 删除已有的站点包目录下的所有文件: ```bash rm -rf ~/.local/lib/python<version>/site-packages/* ``` - 下载官方脚本重新部署最新版 `pip` : ```bash curl -sS https://bootstrap.pypa.io/get-pip.py | sudo python3 - type pip3 hash -r pip3 ``` 这一步骤能够确保使用的工具链是最新的状态,减少因程序本身缺陷造成的冲突风险[^2]. #### 3. 使用镜像源加速获取资源 考虑到国外某些网站访问速度较慢甚至不可达的情况,在国内推荐切换至阿里云、清华大学开源软件镜像站等提供更快捷稳定的服务地址作为替代方案之一。修改配置方式如下所示: 编辑或者创建名为 `.pip/pip.conf`(Linux/Mac OS X) 的全局配置文档加入下面内容即可生效: ```ini [global] index-url = https://mirrors.aliyun.com/pypi/simple/ trusted-host = mirrors.aliyun.com ``` 对于 Windows 用户来说路径应改为 `%APPDATA%\Python\pip\pip.ini`. 另外还有临指定的方法适用于单次调用场景下无需永久更改设定的情形 : ```bash pip install some-package -i http://pypi.douban.com/simple --trusted-host pypi.douban.com ``` 以上措施均有助于改善因地理因素带来的延迟现象进而规避潜在隐患[^4]. #### 4. 更新或替换底层库 `urllib3` 既然问题是围绕着 `urllib3`, 那么单独升级它也是一个得考虑的方向 。运行下列指令完成更新过程: ```bash pip install --upgrade urllib3 ``` 当然也可以手动卸载再重装一遍确认效果如何变化 : ```bash pip uninstall urllib3 && pip install urllib3 ``` 得注意的是 , 如果项目里头绑定了特定版本号的话记得查阅对应说明文档调整策略适配需求[^3]. --- ### 总结 综上所述,面对 `pip` 和其内部实现所依托的 `urllib3` 出现的各种异常状况可以从多个角度切入排查处理。无论是优化网络条件还是修正自身软硬件设施都不可或缺。希望上述建议能帮助到您解决问题!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值