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线程入门——什么是线程

password: 【扩展信息:关于J2ME与C#通过HTTP进行通信时

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.*;


{ 【程序编程相关:jb+oracle+weblogic c

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

 { 【扩展信息:关于J2ME与C#通过HTTP进行通信时

 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源文件放在同一个目录下面.

原文地址:https://www.cnblogs.com/encounter/p/2189079.html