jdbc連接設置mysql,直接設置與預處理方式
發表時間:2023-07-20 來源:明輝站整理相關軟件相關文章人氣:
[摘要]步驟: 1. 加載sql數據庫驅動 Class.forName(“com.mysql.jdbc.Driver”);2. 連接數據庫 con = DriverManager.getConnect...
步驟: 1. 加載sql數據庫驅動 Class.forName(“com.mysql.jdbc.Driver”);
2. 連接數據庫
con = DriverManager.getConnection(url, username, pwd);
3.獲得Statement
stmt = con.createStatement();
4.寫入想要執行的sql語句
eg: String sql = “select * from student”;
5.操作數據庫
為方面理解下面是本人操作的數據庫內容:


package com.wql.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;/**
* @author wql
*
*/public class jdbc { public static void main(String[] args) { /// 加載sql數據庫驅動
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) { // TODO Auto-generated catch block
e.printStackTrace();
}
Connection con = null;
Statement stmt = null;
ResultSet result = null;
PreparedStatement pstm = null;// 預處理
String url = "jdbc:mysql://localhost:3306/work"; // 數據庫所在位置
String username = "root"; // 數據庫用戶名
String pwd = "123456"; // 數據庫密碼
try { /// 連接數據庫
con = DriverManager.getConnection(url, username, pwd); /// 獲得Statement
stmt = con.createStatement(); /// 寫入想要執行的sql語句
String sql = "select * from student"; /// 獲得sql語句執行后的集
result = stmt.executeQuery(sql); // 在控制臺打印出數據庫內容
System.out.println("學號" + " 姓名" + " 年 齡 " + " 性別"); while (result.next()) { int id = result.getInt(1); // 這里對應數據庫中表的第一個字段屬性,接受內容的屬性要根據數據庫的屬性
String name = result.getString(2);
String age = result.getString(3);
String sex = result.getString(4);
System.out.println(" " + id + " " + name + " " + age + " " + sex);/////////////////////下面有驗證截圖1 /////////////////////////
} // 用Statement向表中插入數據
String sql2 = "insert into student values(9,\"李麗\",\"1990-12-25\",\"女\")";
stmt.executeUpdate(sql2);// 更新數據/////////////////////下面有驗證截圖2 /////////////////////////
///// 上面用Statement操作數據庫十分麻煩,在一些特定場合可以使用預處理方法來操作數據庫
String sql3 = "insert into student values(?,?,?,?)";/// 插入數據
pstm = con.prepareStatement(sql3);
pstm.setInt(1, 10); /// 前面的數字1代碼表中的第1字段,后面的9是要插入表中第1個字段的內容
pstm.setString(2, "流星雨");
pstm.setString(3, "1998-02-03");
pstm.setString(4, "男");
pstm.executeUpdate();/////////////////////下面有驗證截圖 /////////////////////////
} catch (SQLException e) { // TODO Auto-generated catch block
e.printStackTrace();
}
}
}
截圖1:

截圖2:

截圖3:

上面對數據庫的操作可以舉一反三,重點說下:預處理的好處:
jdbc連接預處理可以預防SQL注入,提高安全性。因為SQL語句在程序運行前已經進行了預編譯,在程序運行時第一次操作數據庫之前,SQL語句已經被數據庫分析,編譯和優化,對應的執行計劃也會緩存下來并允許數據庫已參數化的形式進行查詢,當運行時動態地把參數傳給PreprareStatement時, 即使參數里有敏感字符如 or’1=1’也數據庫會作為一個參數一個字段的屬性值來處理而不會作為一個SQL指令, 如此,就起到了SQL注入的作用了!
以上就是jdbc連接操作mysql,直接操作和預處理方式的詳細內容,更多請關注php中文網其它相關文章!
學習教程快速掌握從入門到精通的SQL知識。