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();
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值