1.Java連線MySQL資料庫

Java連線MySql需要下載JDBC驅動MySQL-connector-java-5.0.5.zip(舉例,現有新版本)。然後將其解壓縮到任一目錄。我是解壓到D盤,然後將其目錄下的MySQL-connector-java-5.0.5-bin.jar加到classpath裡,具體如下:

“我的電腦”-> “屬性” -> “高階” -> “環境變數”,在系統變數那裡編輯classpath,將D:\MySQL-connector-java-5.0.5\MySQL-connector-java-5.0.5-bin.jar加到最後,在加這個字串前要加“;”,以與前一個classpath區分開。然後確定。

package hqs;
import java.sql.*;
public class DataBasePractice {
 
    public static void main(String[] args) {
        //宣告Connection物件
        Connection con;
        //驅動程式名
        String driver = "com.mysql.jdbc.Driver";
        //URL指向要訪問的資料庫名mydata
        String url = "jdbc:mysql://localhost:3306/mydata";
        //MySQL配置時的使用者名稱
        String user = "root";
        //MySQL配置時的密碼
        String password = "root";
        //遍歷查詢結果集
        try {
            //載入驅動程式
            Class.forName(driver);
            //1.getConnection()方法,連線MySQL資料庫!!
            con = DriverManager.getConnection(url,user,password);
            if(!con.isClosed())
                System.out.println("Succeeded connecting to the Database!");
            //2.建立statement類物件,用來執行SQL語句!!
            Statement statement = con.createStatement();
            //要執行的SQL語句
            String sql = "select * from student";
            //3.ResultSet類,用來存放獲取的結果集!!
            ResultSet rs = statement.executeQuery(sql);
            System.out.println("-----------------");
            System.out.println("執行結果如下所示:"); 
            System.out.println("-----------------"); 
            System.out.println(" 學號" "\t" " 姓名"); 
            System.out.println("-----------------"); 
             
            String name = null;
            String id = null;
            while(rs.next()){
                //獲取stuname這列資料
                name = rs.getString("stuname");
                //獲取stuid這列資料
                id = rs.getString("stuid");
                //首先使用ISO-8859-1字符集將name解碼為位元組序列並將結果儲存新的位元組陣列中。
                //然後使用GB2312字符集解碼指定的位元組陣列。
                name = new String(name.getBytes("ISO-8859-1"),"gb2312");
                //輸出結果
                System.out.println(id + "\t" + name);
            }
            rs.close();
            con.close();
        catch(ClassNotFoundException e) {  
            //資料庫驅動類異常處理
            System.out.println("Sorry,can`t find the Driver!");  
            e.printStackTrace();  
            catch(SQLException e) {
            //資料庫連線失敗異常處理
            e.printStackTrace(); 
            }catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }finally{
            System.out.println("資料庫資料成功獲取!!");
        }
    }
 
}

2.新增、修改、刪除操作

在上面while程式碼段後面新增以下程式碼段:

String name = null;
            String id = null;
            while(rs.next()){
                //獲取stuname這列資料
                name = rs.getString("stuname");
                //獲取stuid這列資料
                id = rs.getString("stuid");
                //首先使用ISO-8859-1字符集將name解碼為位元組序列並將結果儲存新的位元組陣列中。
                //然後使用GB2312字符集解碼指定的位元組陣列。
                name = new String(name.getBytes("ISO-8859-1"),"gb2312");
                //輸出結果
                System.out.println(id + "\t" + name);
            }
         
             
             
            PreparedStatement psql;
            ResultSet res;
            //預處理新增資料,其中有兩個引數--“?”
            psql = con.prepareStatement("insert into student values(?,?)");
            psql.setInt(18);              //設定引數1,建立id為5的資料
            psql.setString(2"xiaogang");      //設定引數2,name 為小明
            psql.executeUpdate();           //執行更新
             
            //預處理更新(修改)資料
            psql = con.prepareStatement("update student set stuname = ? where stuid = ?");
            psql.setString(1,"xiaowang");       //設定引數1,將name改為王五
            psql.setInt(2,10);              //設定引數2,將id為2的資料做修改
            psql.executeUpdate();
             
            //預處理刪除資料
            psql = con.prepareStatement("delete from student where stuid = ?");
            psql.setInt(15);
            psql.executeUpdate();
             
            //查詢修改資料後student表中的資料
            psql = con.prepareStatement("select*from student");
            res = psql.executeQuery();          //執行預處理sql語句
            System.out.println("執行增加、修改、刪除後的資料");
            while(res.next()){
                name = res.getString("stuname");
                id = res.getString("stuid");
                name = new String(name.getBytes("ISO-8859-1"),"gb2312");
                System.out.println(id + "\t" + name);
            }
            res.close();
            psql.close();

該程式碼段使用到了預處理語句:

con.prepareStatement(String sql);

這樣生成資料庫底層的內部命令,並將該命令封裝在preparedStatement物件中,可以減輕資料庫負擔,提高訪問資料庫速度。

Java連線Oracle資料庫的示例程式碼

最基本的Oracle資料庫連線程式碼(只針對Oracle11g):

1、右鍵專案->構建路徑->配置構建路徑,選擇第三項“庫”,然後點選“新增外部Jar”,選擇“D:\Oracle\app\oracle\product\11.2.0\server \jdbc\lib\ojdbc6_g.jar”(注:D:\Oracle為資料庫的安裝路徑)。

2、以下程式碼為非常標準的Oracle資料庫連線程式碼示例:

/**
* 一個非常標準的連線Oracle資料庫的示例程式碼
*/
public void testOracle()
{
Connection con = null;// 建立一個數據庫連線
PreparedStatement pre = null;// 建立預編譯語句物件,一般都是用這個而不用Statement
ResultSet result = null;// 建立一個結果集物件
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");// 載入Oracle驅動程式
System.out.println("開始嘗試連線資料庫!");
String url = "jdbc:oracle:" + "thin:@127.0.0.1:1521:XE";// 127.0.0.1是本機地址,XE是精簡版Oracle的預設資料庫名
String user = "system";// 使用者名稱,系統預設的賬戶名
String password = "147";// 你安裝時選設定的密碼
con = DriverManager.getConnection(url, user, password);// 獲取連線
System.out.println("連線成功!");
String sql = "select * from student where name=?";// 預編譯語句,“?”代表引數
pre = con.prepareStatement(sql);// 例項化預編譯語句
pre.setString(1, "劉顯安");// 設定引數,前面的1表示引數的索引,而不是表中列名的索引
result = pre.executeQuery();// 執行查詢,注意括號中不需要再加引數
while (result.next())
// 當結果集不為空時
System.out.println("學號:" + result.getInt("id") + "姓名:"
+ result.getString("name"));
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
try
{
// 逐一將上面的幾個物件關閉,因為不關閉的話會影響效能、並且佔用資源
// 注意關閉的順序,最後使用的最先關閉
if (result != null)
result.close();
if (pre != null)
pre.close();
if (con != null)
con.close();
System.out.println("資料庫連線已關閉!");
}
catch (Exception e)
{
e.printStackTrace();
}
}
}