Java對MySQL數據庫進行連接、查詢和修改


0. 一般過程:

  (1) 調用Class.forName()方法加載驅動程序。

  (2) 調用DriverManager對象的getConnection()方法,獲得一個Connection對象。

  (3) 創建一個Statement對象,准備一個SQL語句,這個SQL語句可以是Statement對象(立即執行的的語句)、PreparedStatement語句(預編譯的語句)或CallableStatement對象(存儲過程調用的語句)。

  (4) 調用excuteQuery()等方法執行SQL語句,並將結果保存在ResultSet對象;或者調用executeUpdate()等方法執行SQL語句,不返回ResultSet對象的結果。

  (5)對返回的ResultSet對象進行顯示等相當的處理。

  (6)釋放資源。

 

1. 連接數據庫

  (1) 下載Mysql連接驅動

網址: http://dev.mysql.com/downloads/connector/j/ ,下載后放在F:\博士科研資料\數據庫學習\mysql相關程序文件中,解壓。

  (2) 加載JDBC驅動

操作方法:在Eclipse中,選中相應的工程,點擊Project-Properties中的Java Build Path,在Libraries中增加mysql-connector-java-5.1.21-bin.jar,點OK。

  (3) 建一個簡單的數據庫如下:

                  

import java.sql.*;
public class GetConnection {
    public static void main(String[] args){
        try{
            //調用Class.forName()方法加載驅動程序
            Class.forName("com.mysql.jdbc.Driver");
            System.out.println("成功加載MySQL驅動!");
        }catch(ClassNotFoundException e1){
            System.out.println("找不到MySQL驅動!");
            e1.printStackTrace();
        }
        
        String url="jdbc:mysql://localhost:3306/mysql";    //JDBC的URL    
        //調用DriverManager對象的getConnection()方法,獲得一個Connection對象
        Connection conn;
        try {
            conn = DriverManager.getConnection(url,    "root","");
            //創建一個Statement對象
            Statement stmt = conn.createStatement(); //創建Statement對象
            System.out.print("成功連接到數據庫!");
            stmt.close();
            conn.close();
        } catch (SQLException e){
            e.printStackTrace();
        }
    }
}

 

2. 查詢數據表

  在詢數據表時,需要用到ResultSet接口,它類似於一個數據表,通過該接口的實例可以獲得檢索結果集,以及對應數據表的接口信息。

import java.sql.*;

public class SelectTable {
    
    public static void main(String[] args){
        try{
            //調用Class.forName()方法加載驅動程序
            Class.forName("com.mysql.jdbc.Driver");
            System.out.println("成功加載MySQL驅動!");
                
            String url="jdbc:mysql://localhost:3306/aniu";    //JDBC的URL    
            Connection conn;

            conn = DriverManager.getConnection(url,    "root","");
            Statement stmt = conn.createStatement(); //創建Statement對象
            System.out.println("成功連接到數據庫!");

            String sql = "select * from stu";    //要執行的SQL
            ResultSet rs = stmt.executeQuery(sql);//創建數據對象
                System.out.println("編號"+"\t"+"姓名"+"\t"+"年齡");
                while (rs.next()){
                    System.out.print(rs.getInt(1) + "\t");
                    System.out.print(rs.getString(2) + "\t");
                    System.out.print(rs.getInt(3) + "\t");
                    System.out.println();
                }
                rs.close();
                stmt.close();
                conn.close();
            }catch(Exception e)
            {
                e.printStackTrace();
            }
    }
}

 

3. 修改和刪除數據庫

//修改刪除數據
import java.sql.*;
public class UpdateDeleteDemo {
    public static void main(String[] args)throws Exception{
        try{
            //調用Class.forName()方法加載驅動程序
            Class.forName("com.mysql.jdbc.Driver");
            System.out.println("成功加載MySQL驅動!");
                
            String url="jdbc:mysql://localhost:3306/aniu";    //JDBC的URL    
            Connection conn;

            conn = DriverManager.getConnection(url,    "root","");
            Statement stmt = conn.createStatement(); //創建Statement對象
            System.out.println("成功連接到數據庫!");

            //查詢數據的代碼
            String sql = "select * from stu";    //要執行的SQL
            ResultSet rs = stmt.executeQuery(sql);//創建數據對象
                System.out.println("編號"+"\t"+"姓名"+"\t"+"年齡");
                while (rs.next()){
                    System.out.print(rs.getInt(1) + "\t");
                    System.out.print(rs.getString(2) + "\t");
                    System.out.print(rs.getInt(3) + "\t");
                    System.out.println();
                }
                
            //修改數據的代碼
            String sql2 = "update stu set name=? where number=?";
            PreparedStatement pst = conn.prepareStatement(sql2);
            pst.setString(1,"8888");
            pst.setInt(2,198);
            pst.executeUpdate();
                
            //刪除數據的代碼
            String sql3 = "delete from stu where number=?";
            pst = conn.prepareStatement(sql3);
            pst.setInt(1,701);
            pst.executeUpdate();
                
            ResultSet rs2 = stmt.executeQuery(sql);//創建數據對象
            System.out.println("編號"+"\t"+"姓名"+"\t"+"年齡");
            while (rs.next()){
                System.out.print(rs2.getInt(1) + "\t");
                System.out.print(rs2.getString(2) + "\t");
                System.out.print(rs2.getInt(3) + "\t");
                System.out.println();
            }
                
            rs.close();
            stmt.close();
            conn.close();
            }catch(Exception e)
            {
                e.printStackTrace();
            }
    }
}

 

[1]       http://school.itzcn.com/video-vid-2308-spid-50.html

[2]       http://school.itzcn.com/video-vid-2309-spid-50.html

[3]       http://school.itzcn.com/video-vid-2310-spid-50.html

 


免責聲明!

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



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