package testJDBC;java
import java.sql.*;mysql
/**sql
@description JDBC 查詢數據庫示例
*/
public class JDBCdemo1 {數據庫
public static void main(String[] args){
Connection conn = null;
Statement statement = null;
ResultSet resultSet = null;
//1.註冊數據庫驅動
try {ide
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; } } }
}
}url