首页 > 开发 > 综合 > 正文

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

2024-07-21 02:14:46
字体:
来源:转载
供稿:网友

//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:[email protected]: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();

注册会员,创建你的web开发资料库,
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表