java JDBC 提高程式可移植性 (轉)
陳小洪 南昌航空工業學院系
很多初學者在開始接觸JC的時候,在網上和大部分的教材上都是這樣
介紹一般的:
//可以執行的完整程式
import java..*;
public class DatabaseDemo
{
public static void main(String args[])
{
Connection con;
Statement stmt;
ResultSet rs;
//load the class
try
{//直接在程式裡面寫字串 com..jdbc.sqlserver.SQLServerDriver
//降低了程式的可移植性。
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
}catch(ClassNotFoundException e)
{
System.out.println(e.getMessage());
}
//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(" * 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());
}
}
}
這個程式明顯有一個問題,就是程式的可移植性很差,加入我現在不用了,我要使用或orcale
而程式已經大包了,怎麼辦。在這裡我們可以像在ado中的 uld一樣。使用我們的properties檔案。把屬性和對應的值寫入屬性檔案。例如我們在屬性檔案 basic.properties 輸入一些內容:
connectionURL:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs
driverManager:com.microsoft.jdbc.sqlserver.SQLServerDriver
userID:sa
pass:
//注意屬性與值之間要有一個冒號,英文,不是中文冒號。
我們可以透過 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
{
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+"
"+driverStr+"
"+userId+"
"+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原始檔放在同一個目錄下面。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10790690/viewspace-961269/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java 的可移植性 (轉)Java
- 透過編寫模組化程式碼提高軟體可移植性(轉)
- 關於JAVA的可移植性(轉)Java
- 提高java程式效能之垃圾收集 (轉)Java
- JAVA可移植性廣泛應用Java
- 不要神話Java的可移植性Java
- Java的資料庫程式設計(JDBC)技術[轉]Java資料庫程式設計JDBC
- 提高Java程式碼可重用性的三個措施 (轉)Java
- Java程式設計基礎33——JDBCJava程式設計JDBC
- Java 之 JDBCJavaJDBC
- Java之JDBCJavaJDBC
- java-jdbcJavaJDBC
- Java之JDBC①JavaJDBC
- Java 之 JDBC(二)JavaJDBC
- 【Java】JDBC詳解JavaJDBC
- 提高 Java 程式碼效能的各種技巧Java
- Java JDBC連線MYsqlJavaJDBCMySql
- JAVA基礎:JDBC最佳化資料庫連線(轉)JavaJDBC資料庫
- java開發中JDBC連線資料庫程式碼JavaJDBC資料庫
- JDBC介面技術(轉)JDBC
- JDBC學習筆記-----jdbc效能最佳化 (轉)JDBC筆記
- 如何提高Java程式碼質量-優雅的寫程式碼Java
- Java學習:JDBC簡介JavaJDBC
- java jdbc Protocol violation錯誤JavaJDBCProtocol
- Java Web系列:JDBC 基礎JavaWebJDBC
- 好程式設計師Java教程解讀JDBC是什麼程式設計師JavaJDBC
- 【程式設計】java jdbc/ojdbc 連結oracle的三種方式程式設計JavaJDBCOracle
- 如何提高Java技能?Java
- 提高java和mysql程式碼效能和質量薦JavaMySql
- 提高Java程式碼可重用性的三個措施Java
- JDBC Connection Pool Example (轉)JDBC
- [轉載] 1.1Java使用JDBC原生方式連線MySql資料庫JavaJDBCMySql資料庫
- java實現簡單的JDBCJavaJDBC
- Mysql java JDBC驅動jar包MySqlJavaJDBCJAR
- Java基礎--JDBC-反射等JavaJDBC反射
- java jdbc連線資料庫JavaJDBC資料庫
- java jdbc存取oracle clob型別JavaJDBCOracle型別
- 【java提高】(17)---Java 位運算子Java