JDBC訪問數據庫步驟


  最近開始復習JAVASE,下面就看看一些之前忘記的點。

  JDBC訪問數據庫是之前自己比較迷糊的,現在正好來復習一下。數據庫連接首先要有一個JDBC驅動程序,還要有一個數據庫,這里兩者不屬於JAVA的知識,不再介紹。就只是介紹JDBC編程。

  JDBC編程有6步,分別是1.加載sql驅動,2.使用DriverManager獲取數據庫連接,3.使用Connecttion來創建一個Statement對象 Statement對象用來執行SQL語句,4.執行SQL語句,5.操作結果集,6.回收數據庫資源。以上就是大部分JDBC編程的步驟,也可以看自己的情況減少自己的步驟。因為是復習,所以代碼中的注釋還是比較多的。這里就不再累述了。代碼如下:

package JDBCtrain;

import java.sql.*;

public class demo1 {
	public static void main(String[] args) throws Exception {
		// 1.加載sql驅動
		// 加載驅動,利用反射知識
		Class.forName("com.mysql.jdbc.Driver");
		try (
		/*
		 * 2.使用DriverManager獲取數據庫連接 返回的conn代表着java程序和數據庫的連接 這里要注意導入的包,
		 * 這里還是要注意root@localhost和root@'127.0.0.1'是兩個不同用戶。還有就是賬戶和密碼的問題
		 * Access denied for user '123'@'localhost' (using password: YES)   就是密碼出錯
		 */
		Connection conn = DriverManager.getConnection(
				"jdbc:mysql://127.0.0.1:3306/javatrain", "123", "123456");
		/*
		 * 3.使用Connecttion來創建一個Statement對象 Statement對象用來執行SQL語句
		 */
		Statement stmt = conn.createStatement();
		/*
		 * 4.執行SQL語句
		 * Statement有三種執行SQL語句的方式
		 * (1)executeQuery(sql) 執行select語句,返回查詢到的結果集
		 * (2)execute(sql) 可執行任何的SQL語句,返回一個boolean值
		 * 如果執行第一個結果是ResultSet,返回true,否則返回false
		 * (3)executeUpdate(sql)執行DML語句,返回一個整數(代表SQL語句影響的行數)
		 */
		ResultSet rs=stmt.executeQuery("select * from demo1");
		)
		/*
		 * java7的特性,可以使用try語句來自動關閉數據庫的各種資源
		 */
		{
			//5.操作結果集
			/*
			 * ResultSet就是返回的結果集,get()是獲得特定列的值 next是下一行
			 */
			while (rs.next()) 
			{
				System.out.println("姓名為:"+rs.getInt(1)+",密碼為:"+rs.getInt(2)+"。");
			}
		}
	}

}

  下面就說一下代碼中要注意的,因為數據庫的不同,獲取數據庫連接時的代碼不一定一樣,這里我因為數據庫密碼的原因卡了好久(一定要記得自己數據庫的密碼),還有就是第六步,代碼中沒有寫出來,其實是JAVA7的特性,允許try塊中放置數據庫資源,在結束時系統會自動回收數據庫資源。這個也是企業中比較推薦的寫法。還有就是第三步,一定要注意Statement沒法防止SQL注入(常見的Cracker入侵方式,利用SQL語句的漏洞來入侵),登錄中可以使用PreparedStatement。以上就是一個簡單的例子。結束。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM