方法一:使用jdbc-odbc橋連接sql server,作為中間媒介連接數據庫
- 1.配置數據源:打開控制面版->管理工具->數據源(ODBC)->選用戶DSN,按下添加按鈕->sql server->寫下數據源的名字(假設是test),再寫下連接的服務器名(一般默認為local或.)->更改默認的數據庫為(勾選你想要連接的數據庫)->接下來一直確定就完成了數據源的配置.
- 2.加載驅動:Class.forNmae("sun.jdbc.odbc.JdbcOdbcDriver");
- 3.得到連接:Connection ct=DriverManager.getConnection("jdbc:odbc:test");test是配置數據源的時候的數據源名字
- 4.創建preparedStateMent,這個語句主要是用於發送sql語句到數據庫.
- 5.最后關閉資源
代碼:
import java.sql.*;
public class preparedStatement {
public static void main(String[] args) {
Connection ct = null;
PreparedStatement ps = null;
ResultSet rs=null;
try {
//加載驅動
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//得到連接
ct=DriverManager.getConnection("jdbc:odbc:test");
//創建一個PreparedStatement,用於向數據庫放松sql語句
ps=ct.prepareStatement("select * from 產品名稱表");
//得到結果
rs=ps.executeQuery();//這個方法適用於從表中查找數據
//如果要向表中插入,刪除,更新數據需要使用方法executeUpdate();
while(rs.next()){//這里rs.next()一定要使用next()方法,否則有空指針錯誤
String number=rs.getString(1);
String string=rs.getString(2);
System.out.println(number+" "+string);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 關閉資源,記住關閉資源的順序,根據得到賦值的反順序進行關閉資源
try {
if(rs!=null){
rs.close();
}
if (ps != null)
ps.close();
if (ct != null)
ct.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
}
方法二:使用驅動程序直接操作數據庫(這個方法更多人使用,但是前期所做的工作更多)
- 1.需要引入jar包,sql server2008只要引入sqljdbc4.jar包就行了。這個包百度上有下載。
這是我下載的網址:http://download.csdn.net/download/a785143175/5163519
導入方法:工具欄project選項->properties->java Build path中選擇libraries->點擊add Externar jars按鈕->然后在你電腦中選中sqljdbc4.jar導入進去- 2.連接數據庫一般是使用sql驗證,所以需要你自己建立帳號密碼。
方法:先用windows驗證進入數據庫,然后在安全性中點擊鼠標右鍵新建登錄名,勾選SQL身份驗證,將強制密碼過期不選,點擊確定。然后斷開連接,重新以現在的用戶名和密碼連接。然后在這個用戶名中新建數據庫就好。- 3、接下來的代碼部分跟odbc類似,有些小小的不同。
代碼:
import java.sql.*;
public class jdbc1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Connection ct = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
//第一步,加載驅動
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//得到連接
ct=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=liuyan","sa","3209554");
//創建PreparedStatement
ps=ct.prepareStatement("select * from userinformation where name='張三豐'");
rs=ps.executeQuery();
//這個方法適用於從表中查找數據
//如果要向表中插入,刪除,更新數據需要使用方法executeUpdate();
while(rs.next()){//這里rs.next()一定要使用next()方法,否則有空指針錯誤
String number=rs.getString(1);
String string=rs.getString(2);
String string2=rs.getString(3);
System.out.println(number+" "+string+" "+string2);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
if(rs!=null){
rs.close();
}
if (ps != null)
ps.close();
if (ct != null)
ct.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
}
幾點注意
-
我們每次在連接數據庫前都必須要引入sql包:import java.sql.*
-
我們還可以使用?賦值的方法
ps=ct.prepareStatement("select * from 產品名稱表 whrer 產品名稱=?");
ps.setString(1,"手機");//表示在第一個問號上添加“手機”的字符串.如果是整數用setInt()方法;
總結
經過了一個下午和一個晚上的奮斗,終於將myeclipse和數據庫連接成功了。中間出現了好多問題:找不到包(到現在也不知道為什么會找不到),空指針異常,通過端口1433連接到主機失敗,遠程過程調試失敗。感覺都快要崩潰了,好在最后還是連上了。學習新東西的過程就是漫長又磨人的,但學成之后還是充滿了成就感。