从此不再心头痛 数据库连接方法总结
2008-02-23 08:07:35来源:互联网 阅读 ()
//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……
……
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash