分享
 
 
 

从此不再心头痛 数据库连接方法总结

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

//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();

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有