JDBC连接DB2、Oracle、MySQL、PostgreSQL

一、Jsp连接Oracle8/8i/9i数据库(用Thin模式) 
Testoracle.Jsp如下: 
<%@ Page ContentType="Text/Html;Charset=Gb2312"%> 
<%@ Page Import="Java.Sql.*"%> 
<Html> 
<Body> 
<%Class.ForName("Oracle.Jdbc.Driver.OracleDriver").NewInstance(); 
String Url="Jdbc:oracle:thin:@Localhost:1521:Orcl"; 
//Orcl为你的数据库的SID 
String User="Scott"; 
String Password="Tiger"; 
Connection Conn= DriverManager.GetConnection(Url,User,Password); 
Statement Stmt=Conn.CreateStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
String Sql="Select * From Test"; 
ResultSet Rs=Stmt.ExecuteQuery(Sql); 
While(Rs.Next()) {%> 
您的第一个字段内容为:<%=Rs.GetString(1)%> 
您的第二个字段内容为:<%=Rs.GetString(2)%> 
<%}%> 
<%Out.Print("数据库操作成功,恭喜你");%> 
<%Rs.Close(); 
Stmt.Close(); 
Conn.Close(); 
%> 
</Body> 
</Html> 
二、Jsp连接Sql Server7.0/2000数据库 
Testsqlserver.Jsp如下: 
<%@ Page ContentType="Text/Html;Charset=Gb2312"%> 
<%@ Page Import="Java.Sql.*"%> 
<Html> 
<Body> 
<%Class.ForName("Com.Microsoft.Jdbc.Sqlserver.SQLServerDriver").NewInstance(); 
String Url="Jdbc:microsoft:sqlserver://Localhost:1433;DatabaseName=Pubs"; 
//Pubs为你的数据库的 
String User="Sa"; 
String Password=""; 
Connection Conn= DriverManager.GetConnection(Url,User,Password); 
Statement Stmt=Conn.CreateStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
String Sql="Select * From Test"; 
ResultSet Rs=Stmt.ExecuteQuery(Sql); 
While(Rs.Next()) {%> 
您的第一个字段内容为:<%=Rs.GetString(1)%> 
您的第二个字段内容为:<%=Rs.GetString(2)%> 
<%}%> 
<%Out.Print("数据库操作成功,恭喜你");%> 
<%Rs.Close(); 
Stmt.Close(); 
Conn.Close(); 
%> 
</Body> 
</Html> 
三、Jsp连接DB2数据库 
Testdb2.Jsp如下: 
<%@ Page ContentType="Text/Html;Charset=Gb2312"%> 
<%@ Page Import="Java.Sql.*"%> 
<Html> 
<Body> 
<%Class.ForName("Com.Ibm.Db2.Jdbc.App.DB2Driver ").NewInstance(); 
String Url="Jdbc:db2://Localhost:5000/Sample"; 
//Sample为你的数据库名 
String User="Admin"; 
String Password=""; 
Connection Conn= DriverManager.GetConnection(Url,User,Password); 
Statement Stmt=Conn.CreateStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
String Sql="Select * From Test"; 
ResultSet Rs=Stmt.ExecuteQuery(Sql); 
While(Rs.Next()) {%> 
您的第一个字段内容为:<%=Rs.GetString(1)%> 
您的第二个字段内容为:<%=Rs.GetString(2)%> 
<%}%> 
<%Out.Print("数据库操作成功,恭喜你");%> 
<%Rs.Close(); 
Stmt.Close(); 
Conn.Close(); 
%> 
</Body> 
</Html> 
四、Jsp连接Informix数据库 
Testinformix.Jsp如下: 
<%@ Page ContentType="Text/Html;Charset=Gb2312"%> 
<%@ Page Import="Java.Sql.*"%> 
<Html> 
<Body> 
<%Class.ForName("Com.Informix.Jdbc.IfxDriver").NewInstance(); 
String Url = 
"Jdbc:informix-Sqli://123.45.67.89:1533/TestDB:INFORMIXSERVER=Myserver; 
User=Testuser;Password=Testpassword"; 
//TestDB为你的数据库名 
Connection Conn= DriverManager.GetConnection(Url); 
Statement Stmt=Conn.CreateStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
String Sql="Select * From Test"; 
ResultSet Rs=Stmt.ExecuteQuery(Sql); 
While(Rs.Next()) {%> 
您的第一个字段内容为:<%=Rs.GetString(1)%> 
您的第二个字段内容为:<%=Rs.GetString(2)%> 
<%}%> 
<%Out.Print("数据库操作成功,恭喜你");%> 
<%Rs.Close(); 
Stmt.Close(); 
Conn.Close(); 
%> 
</Body> 
</Html>


 
=================================================================
=================================================================

Jdbc应用--数据库连接全集 

这是一篇基础性文章,主要介绍了Jdbc在流行数据库(Sql Server,Oracle)方面的应用。但是都是个人观点,所以不能保证完全正确,仅供参考,如果有不同意见可以在评论中指出,我会做相应的修改。:)
一般情况下,直接用Jdbc等东西连数据库时,比较常用连数据库的代码可能是: 
Private Connection Conn 
Private String PoolURL = ""; 
Private String DriverName =""; 
Private String User="" 
Private String Pass=""; 
Private DBConnProxy Proxy; //自己写的Class,起控制数据库访问作用 
Public Object GetConn() 

Try 

Properties Prop=New Properties(); 
Prop.SetProperty("User",User); 
Prop.SetProperty("Password",Pass); 
Driver Mydriver=(Driver)Class.ForName(DriverName).NewInstance(); 
Conn = Mydriver.Connect(PoolURL,Prop);//或者Conn = Mydriver.Connect(PoolURL,Null);具体什么时候用我还的请教高手。 
/* 
或者: 
Class.ForName(DriverName); 
Conn=DriverManager.GetConnection(PoolURL, User, Pass); 
*/ 

Catch ( Exception E ) 

System.Out.Println("打开数据库出错/N" + E.GetMessage()); 


If(!Proxy.GetDB() ){ 
This.Close() 
Return Null; 


Return Conn; 

其中的 DriverName,PoolURL,User,Pass都可以通过读取 Xml文件或普通属性文件获取。而是连Sqlserver还是Oracle就只是改改配置就可以了。 
它们都可以用 Sun.Jdbc.Odbc.JdbcOdbcDriver 来连。对应PoolURL="Jdbc:odbc:test",User,Pass略 
也可以用自己特有的: 
Sqlserver:weblogic.Jdbc.Mssqlserver4.Driver (网上下) 对应PoolURL="Jdbc:weblogic:mssqlserver4:Ceic@127.0.0.1" //Ceic是数据库名,127.0.0.1是数据源位置,可以是远程的数据库,User,Pass略 
Oracle:oracle.Jdbc.Driver.OracleDriver (Class12.Zip,装了Oracle就应该有了) 对应Jdbc:oracle:thin:scott/Tiger@10.1.103.234:1521:Sp" Scott/Tiger连接身份的用户名/密码,10.1.103.234,数据源Ip,1521:端口(默认是1521). Sp指向数据库名User,Pass略 
如果用的Weblogic配的数据库连接,可以通过 
Context Ctx = New InitialContext(); 
DataSource Ds = (DataSource)Ctx.Lookup("Forceicdatasource"); //Forceicdatasource是配的Datasource.也可以通过和上面统一的方法来调用。 
Weblogic:weblogic.Jdbc.Pool.Driver //DriverName 
对应的PoolURL="Jdbc:weblogic:pool:poolname" //Poolname是在Weblogic中配的Jdbc类型的Connections Pool的名字。User,Pass是Weblogic用户(Administrators用户组中的用户)的用户名和密码。(如果不是用DriverManager就用不上,"Conn = Mydriver.Connect(PoolURL,Null);"就是在这种情况下可以用。我在Weblogic 6.1下测试通过) 
综上说的,可以看出,大多数数据库连接都可以通过配置 属性文件 来灵活的获取。(移植起来很是方便,并且对应用基本没有什么影响,当然也可以夸平台)所以我可以通过动态读取属性文件来解决。 
Private String JavaHome = System.GetProperty("Java.Home"); 
Private Final String FS = System.GetProperty("File.Separator"); 
Private String Path = JavaHome+FS+"Db.Properties"; //把Db.Properties放在系统属性Java.Home下,一般是Jdk目录下的 Jre目录里。 
Public Boolean GetInfo(){ 
File File=New Java.Io.File(Path); 
Properties Pro=New Properties(); 
Boolean Readsucced; 
Try{ 
InputStream In=New BufferedInputStream(New FileInputStream(File)); 
Pro.Load(In); 
DriverName=Pro.GetProperty("DriverName"); 
PoolURL=Pro.GetProperty("PoolURL") 
User=Pro.GetProperty("User") 
Pass=Pro.GetProperty("Pass") 
//自己把它们Trim()掉。我就偷懒不写了。 
Readsucced=True; 
}Catch(Exception E){System.Out.Println("读取属性文件出错");Readsucced=False;} 
Return Readsucced; 

不过一般只用读一次就可以了。所以可以把它放在 Static{}块里,也可以放在构造器里面(然后和放在静态连接池,如果是单独的应用,应该把GetInfo()作为静态类和数据库连接类分开)。 
Public DBConn() { 
SetDBConnProxy(ProxyFactory.DefaultType );//设定连接Proxy,控制数据库连接频率,可能会牺牲效力,不过在防止恶意破坏上有点作用,自己写的毕竟赶不上Weblogic的连接池了。所以只好做点小的防范措施.如果是用Weblogic配的连接池,可以直接在ProxyFactory里面加个什么都不做的Proxy. 
GetInfo(); 

属性文件Db.Properties内容如下: 
DriverName=Sun.Jdbc.Odbc.JdbcOdbcDriver 
PoolURL=Jdbc:odbc:test 
User=Sa 

自己可以耕具实际情况去更改属性文件。 
注: GetConn()方法返回的是 Object,是不同的数据库连接有不同的扩展应用,比如Oracle的就有针对Clob,Blob的应用(用Class12.Zip的情况下),普通的Connection不能满足,所以可以通过在应用中把GetConn()返回的Object转化成OracleConnection来用。(个人观点,不知道有没有更好的解决方法) 
上面写的这么多,可能只对新手有点用处,在J2ee风行的今天已经很落伍了,还希望高手指出问题一起讨论(还没有有关于Mysql的连接办法,没有做过,希望有人能补充上来)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值