使用 JDBC 連接資料庫相當簡單,首先根據自己的需要下載對應的 jar 檔,以 SQL Server 2000 為例,需要下載 sqljdbc4.jar ,下載之後 add 到專案中, 接著在程式碼中連接資料庫,一個簡單的範例如下
ConnToSQLServer.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
public class ConnToSQLServer{
//show tables in database
public static String COMM_SHOW_ALLTABLES = "select * from sysobjects where xtype = 'U';";
//show version of database
public static String COMM_SHOW_VERSION = "SELECT @@VERSION AS 'SQL Server Version'";
//show all databases
public static String COMM_SHOW_ALLDATABASER = "SELECT * FROM master.dbo.sysdatabases";
//show system config of database
public static String COMM_SHOW_CONFIGURES = "SELECT * FROM master.dbo.sysconfigures";
Connection conn;
String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String url;
String ipNum;
String portNum;
String dbName;
String userName;
String passWord;
/**
*
* @param ipnum : ip
* @param portnum : port
* @param dbname : dbname
* @param username
* @param password
*/
public F_ConnToSQLServer(String ipnum,String portnum,
String dbname,String username,String password){
ipNum = ipnum;
portNum = portnum;
dbName = dbname;
userName = username;
passWord = password;
try {
Class.forName(driver);
url= "jdbc:sqlserver://"+ipNum+";databaseName="+dbName+";integratedSecurity=false";
try {
if (userName == null && passWord == null) {
conn = DriverManager.getConnection(url);
} else {
// url , user , password
conn = DriverManager.getConnection(url, userName, passWord);
}
} catch (SQLException e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public Connection getConn(){
return conn;
}
}
只要建立 ConnToSQLServer 物件,在建構子中傳入帳號和密碼,就能建立和資料庫連線
使用範例
JdbcExam.java
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
public class ConnectSqlServerExam {
public static void main(String[] args) {
F_ConnToSQLServer connpgsql = new F_ConnToSQLServer("192.168.17.128",
"5432", "dbname", "user", "password");
Connection conn = connpgsql.getConn();
String comm = "select * from tablename";
execComm(conn, comm);
}
public static void execComm(Connection conn, String comm) {
Statement stmt;
ResultSet rs;
ResultSetMetaData rsmd = null;
try {
stmt = conn.createStatement();
if (stmt.execute(comm)) {
rs = stmt.getResultSet();
rsmd = rs.getMetaData();
while (rs.next()) {
for (int i = 1; i < rsmd.getColumnCount() + 1; i++) {
if (i != rsmd.getColumnCount()) {
System.out.print(rs.getString(i) + " ");
} else {
System.out.print(rs.getString(i));
}
}
System.out.println();
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
最後就能在主控台看到結果了