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源文件放在同一個目錄下面.
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的java程序移植_java JDBC 提高程序可移植性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用定时器控制灯的闪烁梯形图_用西门子PL
- 下一篇: linux看系统硬件,Linux 查看系