1、查詢一個用戶表,將所有用戶封裝到一個list 裏面去展示
說明:所示的代碼裏面我要連接的數據庫是 nz2001,所操作的表示的表示user_info表
其中的表設計如圖
package com.qianfeng.ps.am.secend;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class DemoList {
public static void main(String[] args) {
String url = "jdbc:mysql://127.0.0.1:3306/nz2001";
String user = "root";
String password ="123456";
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null; //結果集
try {
Class.forName("com.mysql.jdbc.Driver"); //加載驅動use
con = DriverManager.getConnection(url,user,password); //獲取連接
//從現在開始,養成良好的習慣; 不用*
String sql = "select uid,uname,upass,uage from user_info";
//獲取預處理對象
ps = con.prepareStatement(sql); //給了sql
//執行查詢 得到結果集
rs = ps.executeQuery();
//新建一個集合 ; 將結果集裏面的數據, 封裝到這個集合裏面去
List<UserInfo> list = new ArrayList<UserInfo>();
UserInfo ui;
//一次循環,是一行(條)數據
while(rs.next()) { //遍歷查詢結果;每循環一次,就代表有一行數據
//實例化一個UserInfo的對象;
ui = new UserInfo(); // 每次都要實例化對象
//要將這個數據保存到 ui對象裏面去
ui.setUid(rs.getInt("uid"));
ui.setUname(rs.getString("uname"));
ui.setUpass(rs.getString("upass"));
ui.setUage(rs.getInt("uage"));
//把這個ui對象,添加到集合裏面去
list.add(ui); //存進去的不是ui這個引用名稱,存的是引用 x001x01 x002123 x1231231
}
//關閉連接
rs.close();
ps.close();
con.close();
for(UserInfo aa : list) {
System.out.println(aa);
}
}catch (Exception e) {
e.printStackTrace();
}
}
}
2、使用配置文件的方式封裝DBtuil
package com.qianfeng.ps.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DBUtils {
// 不變
static final String URL = "jdbc:mysql://127.0.0.1:3306/nz2001?rewriteBatchedStatements=true";
static final String USER = "root";
static final String PASS_WORD = "123456";
// 1: 加載驅動,在我們整個項目裏面,只需要跑一次;
static {
// 加載驅動;
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
// 提供靜態方法獲取數據庫的連接;
/**
* 返回一個數據庫的連接
*
* @return
*/
public static Connection getConnection() {
try {
return DriverManager.getConnection(URL, USER, PASS_WORD);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
// 提供靜態方法,關閉我們的結果集; 關閉我們的 ps對象; 關閉我們的連接對象;
public static void close(Connection con, PreparedStatement ps, ResultSet rs) {
closeResultSet(rs); // 關閉結果集
closePreparedStatement(ps); //關閉操作數據庫的對象
closeConnection(con);//關閉連接
}
private static void closeResultSet(ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
private static void closePreparedStatement(PreparedStatement ps) {
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
private static void closeConnection(Connection con) {
if (con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
3、java操作數據庫的步驟和主要的接口類
**
步驟
-
導入JDBC驅動包:需要下載包含數據庫編程所需的JDBC的jar包。
-
註冊JDBC驅動程序:要求您初始化驅動程序,以便您可以打開與數據庫的通信通道。
-
創建連接:需要使用 D riv e r M a n a g e r.g e t C o n n e c tio n ()
方法創建一個Connection對象,該對象表示 與數據庫的物理連接。 -
執行查詢:需要使用類型爲Statement的對象來構建和提交SQL語句到數據庫。
-
從結果集中提取數據:需要使用相應的 R e s ult S e t .g e t X X X () 方法從結果集中檢索數據。
-
釋放資源:需要明確地關閉所有數據庫資源,而不依賴於JVM的垃圾收集。
**
步驟詳細操作
**
(1)導入jar包,在項目下創建lib目錄,把mysql的jdbc包放入此目錄,並添加到build path中(idea不 同)。
如圖是數據庫驅動
如圖
(2)註冊驅動
第一種方式(推薦寫法):Class.forName()
註冊驅動程序最常見的方法是使用Java的Class.forName()方法,將驅動程序的類文件動態加載到內 存中,並將其自動註冊
try {
Class.forName("com.mysql.jdbc.Driver");
}
catch(ClassNotFoundException ex) {
System.out.println("Error: unable to load driver class!");
System.exit(1);
}
第二種方式:是使用靜態DriverManager.registerDriver()方法。
try {
Driver myDriver = new com.mysql.jdbc.Driver();
DriverManager.registerDriver( myDriver );
}
catch(ClassNotFoundException ex) {
System.out.println("Error: unable to load driver class!");
System.exit(1);
}
(3)獲取連接
3.1數據庫URL配置
加載驅動程序後,可以使用DriverManager.getConnection()方法建立連接。爲了方便參考,讓我列出 三個重載的DriverManager.getConnection()方法
- getConnection(String url
**
getConnection(String url,Properties prop)
** - getConnection(String url,String user,String password)
創建數據庫連接對象
String URL = "jdbc:mysql://localhost:3306/emp";
String USER = "root";
String PASS = "root" Connection conn = DriverManager.getConnection(URL, USER, PASS);
主要的接口
Statement | 用於對數據庫進行通用訪問。在運行時使用靜態SQL語句時很有用。 Statement接口不能接受參數。 |
---|---|
PreparedStatement(推 薦使用) | **當您計劃多次使用SQL語句時使用。PreparedStatement接口在運行時接 受輸入參數。 |
** |