java使用jdbc鏈接數據庫。
鏈接jdbc的步驟:
一.加載數據庫驅動
二.填寫數據庫連接必要信息,如url,user,password。
三.建立數據庫連接.
第一步:加載數據庫驅動iver
加載數據庫驅動一般分爲三種方式:
1.用Class.forName 記載驅動,此方法將需要知道驅動類,代碼如下:
Class.forName(“com.mysql.jdbc.Driver”);
Connection conn = DriverManager.gerConnection(url,user,password);
…..
2.使用DriverManager類註冊驅動實現,此時只需要導入對應的驅動包
裏驅動即可,代碼如下:
DriverManager.registerDriver(new Driver));
Connection con = DriverManager.getConnection(url,user,password);
….
3.採用面下對象的方式,也是使用new Driver(),代碼如下
…
Driver driver = new Driver(); //導入對用的驅動類
Properties pro = new Properties();
pro.set(“user”,”your user”);
pro.set(“password”,”yourpassword”);
Connection conn = driver.connect(“url”,pro);
…
jdbc的url的書寫。
String url = “jdbc:mysql://localhost/yourdb”
請注意url的規範,因爲url的規範的問題將可能導致很多的報錯,這裏列舉一項
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server
請注意這個錯誤,這個錯誤的報錯信息看起來是mysql沒有響應驅動發的數據包。
這個問題可能由於編碼,或者url的其他問題引起,如果是編碼,加上編碼即可,
String url = “jdbc:mysql://localhost/yourdb??characterEncoding=utf8”
下面的代碼將正式鏈接數據庫,並查詢數據庫,切遍歷出查詢的結果集
package condbmysql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import com.mysql.jdbc.Driver;
public class SimpleConnect {
public static void main(String[] args) throws Exception{
String sql = "select * from cathectic_user";
ResultSet rest = query(sql);
List<List<String>> relist = new ArrayList<List<String>>();
ResultSetMetaData data = rest.getMetaData();
int colcount = data.getColumnCount();
System.out.println(rest);
while(rest.next()){
List<String> collist = new ArrayList<String>();
for (int i = 1; i < colcount+1; i++) {
collist.add(rest.getObject(i).toString());
}
relist.add(collist);
}
for (Object object : relist) {
System.out.println(object);
}
}
public static ResultSet query(String sql) throws SQLException, ClassNotFoundException{
Connection conn=null;
ResultSet result= null;
String url = "jdbc:mysql://127.0.0.1:3306/cathectic_db?characterEncoding=utf8";
String user="root";
String password="password";
// Class.forName("com.mysql.jdbc.Driver");
DriverManager.registerDriver(new Driver());
// Driver driver = new com.mysql.jdbc.Driver();
conn = DriverManager.getConnection(url, user, password);
Driver drive= new Driver();
Properties pro = new Properties();
pro.setProperty("user", "root");
pro.setProperty("password","password");
drive.connect(url, pro);
Statement satament = conn.createStatement();
result = satament.executeQuery(sql);
return result;
}
}
上面的代碼主要用到的關鍵信息如下:
Connection … 是java庫提供的一個接口,主要用於數據庫的鏈接
DriverManager … 數據庫驅動類,將通過該對象獲取一個數據庫連接。
Connection conn = new DriverManager.getConnection(url,user,password);
Statement .. 重數據庫連接中獲取的一個對象,通過該對象可以操作數據庫
Statement stat = conn.createStatement();
ResultSet rst = stat.excuteQuery(sql); //操作數據庫,做了一個查詢
//下面將遍歷整個rst的結果集:
List