java程序移植_java JDBC 提高程序可移植性

介绍jdbc一般的程序: 【程序编程相关:jb+oracle+weblogic c】

很多java初学者在开始接触jdbc编程的时候,在网上与大部分的教材上都是这样 【推荐阅读:Java线程入门——什么是线程】

import java.sql.*; 【扩展信息:关于J2ME与C#通过HTTP进行通信时】

//可以运行的完整程序

public class databasedemo

{

public static void main(string args[])

{

connection con;

statement stmt;

resultset rs;

//load the driver class

try

{//直接在程序里面写字符串 com.microsoft.jdbc.sqlserver.sqlserverdriver

//降低了程序的可移植性.

}catch(classnotfoundexception e) 【程序编程相关:jb+oracle+weblogic c】

class.forname("com.microsoft.jdbc.sqlserver.sqlserverdriver"); 【推荐阅读:Java线程入门——什么是线程】

system.out.println(e.getmessage()); 【扩展信息:关于J2ME与C#通过HTTP进行通信时】

{

}

//get database connection ,statement and the resultset

try

{

con=drivermanager.getconnection("jdbc:microsoft:sqlserver://localhost:1433;databasename=pubs", "sa", "");

stmt=con.createstatement();

rs=stmt.executequery("select * from authors");

while(rs.next())

{

for(int i=1;i<=rs.getmetadata().getcolumncount();i++)

{

system.out.print(rs.getstring(i)+" | ");

}

system.out.println();

}

}catch(sqlexception e)

{

system.out.println(e.getmessage());

}

}

}

这个程序明显有一个问题,就是程序的可移植性很差,加入我现在不用sql server了,我要使用sybase或orcale

而程序已经大包了,怎么办.

...在这里我们可以像在vc ado中的 uld文件一样.使用我们的properties文件.把属性与对应的值写入属性文件.例如我们在属性文件 basic.properties 输入一些内容:

drivermanager:com.microsoft.jdbc.sqlserver.sqlserverdriver 【程序编程相关:jb+oracle+weblogic c】

connectionurl:jdbc:microsoft:sqlserver://localhost:1433;databasename=pubs 【推荐阅读:Java线程入门——什么是线程】

userid:sa

//注意属性与值之间要有一个冒号,英文模式,不是中文冒号.

我们可以通过 java.util包里面的properties类来读取文件属性的值.

java.util.properties  pro=new java.util.properties  pro();

try

{

pro.load(new  fileinputstream("basic.properties"));

}catch(ioexception e){.......}

consql=pro.getproperty("connectionurl");

driverstr=pro.getproperty("drivermanager");

userid=pro.getproperty("userid");

password=pro.getproperty("password");

这样我们就可以得到properties中的属性值.当我们的应用程序要改用其他的数据库管理系统的时候我们只要

修改 properties文件就可以了.

把上面的程序完善一些(可以运行的)

/*

aa.java

*/

import java.util.*;

import java.io.*;

import java.sql.*;

public class aa 【推荐阅读:Java线程入门——什么是线程】

public static void main(string args[])

string consql;

string driverstr;

string userid;

string password;

connection con;

statement stmt;

resultset rs;

properties pro=new properties();;

//load the properties file and get the proterties

try

{

pro.load(new  fileinputstream("basic.properties"));

}catch(ioexception e)

{

system.out.println(e.getmessage());

}

consql=pro.getproperty("connectionurl");

driverstr=pro.getproperty("drivermanager");

userid=pro.getproperty("userid");

password=pro.getproperty("password");

system.out.println(consql+"/n"+driverstr+"/n"+userid+"/n"+password);

// load the driver class

try

{

class.forname(driverstr);

}catch(classnotfoundexception e)

{

system.out.println(e.getmessage());

}

// get the database connection

try

{

con=drivermanager.getconnection(consql,userid,password);

string querystr="select * from authors";

stmt=con.createstatement();

rs=stmt.executequery(querystr);

while(rs.next())

{

for(int i=1;i<=rs.getmetadata().getcolumncount();i++)

{

system.out.print(rs.getstring(i)+" | ");

}

system.out.println();

}

}catch(sqlexception e)

{

system.out.println(e.getmessage());

}

}

}

注意了::::属性文件要与你的java源文件放在同一个目录下面.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值