1. 程式人生 > >eclipse(Java)對MySQL資料庫進行連線、查詢和修改

eclipse(Java)對MySQL資料庫進行連線、查詢和修改

  (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連線驅動

  (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();
            }
    }
}