//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();
数据库连接方法总结
最新推荐文章于 2021-01-19 19:05:21 发布