您好,登錄后才能下訂單哦!
package testJDBC;
import java.sql.*;
/**
@description JDBC 查詢數據庫示例
*/
public class JDBCdemo1 {
public static void main(String[] args){
Connection conn = null;
Statement statement = null;
ResultSet resultSet = null;
//1.注冊數據庫驅動
try {
Class.forName("com.mysql.jdbc.Driver");
//加載一個類到內存中,該類中有一靜態代碼塊,該代碼塊中有注冊驅動的代碼
//靜態代碼塊偽代碼如下:DriverManager.registerDriver( new Driver() )
//2.獲取數據庫連接
String url = "jdbc:mysql://localhost:3306/" +
"jt_db" +
"?characterEncoding=utf-8";
/**
* jdbc:mysql: 協議名
* localhost:3306 主機地址及端口
* jt_db 數據庫名
* ?characterEncoding=utf-8 ?+參數
*/
String user = "root"; //數據庫連接用戶名
String passWord = "123456"; //數據庫連接密碼
conn = DriverManager.getConnection(url, user, passWord);
//3.獲取傳輸器
statement = conn.createStatement();
/**
* Statement s = con.createStatement();
* PreparedStatement p = con.preparedStatement();
*
*PreparedStatement是Statement的子類
* 可以使用占位符,是預編譯的,批處理比Statement效率高
*
* 例:
* String sql = "update user set password=? where username=?";
* preparedStatement = conn.prepareStatement(sql);
* //preparedStatement.setString(第N個問號,代表的變量);
* preparedStatement.setString(1,password);
* preparedStatement.setString(2,username);
* preparedStatement.executeUpdate();
*
*/
//4.執行sql語句,返回執行結果
String sql = "select * from account";
/**
* executeQuery(); 用于產生單個結果集的語句,被用來執行 SELECT 語句,返回值是一個ResultSet結果集對象,其中包括sql查詢的結果
* executeUpdate(); 用于執行 INSERT、UPDATE 或 DELETE 語句以及 SQL DDL(數據定義語言)語句,返回一個int值,記錄受影響記錄行數
*/
resultSet = statement.executeQuery(sql);
//5.處理結果
/**
* ResultSet 結果集對象
* ResultSet 是執行查詢類的sql語句后返回的結果集對象 其中包括sql查詢的結果
* a.遍歷數據行的方法
* next() – 使指向數據行的索引向下移動一行
* b.獲取數據的方法
* getInt(int columnIndex)
* getInt(String columnLable)
* getString(int columnIndex)
* getString(String columnLable)
* getDouble(int columnIndex)
* getDouble(String columnLable)
* getObject(int columnIndex)
* getObject(String columnLable)
*/
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
double money = resultSet.getDouble("money");
System.out.println(id + ":" + name + ":" + money);
}
}catch (Exception e){
e.printStackTrace();
}finally {
//6.釋放資源
//越晚獲取越先釋放!!
//最好將釋放資源代碼放在finally里
if(resultSet!=null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
resultSet = null;
}
}
if(statement!=null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
statement = null;
}
}
if(conn!=null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
conn = null;
}
}
}
}
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。