1. 程式人生 > 資料庫 >Java第十九章-資料庫操作

Java第十九章-資料庫操作

緒論

//資料庫系統是由資料庫、資料庫管理系統、應用系統、資料庫管理員構成的。

連線資料庫

//通過建立的getConnection()方法,獲取與MySQL資料庫的連線。

package 資料庫操作;

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Conn {
//宣告Connection物件
Connection conn;
public Connection getConnection() {
    //載入資料庫驅動類
    try {
        Class.forName("com.myaql.jbdc.Driver");
        System.out.println("資料庫載入成功");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
    //通過訪問資料庫的URL,獲取資料庫連線物件
    try {
        conn = DriverManager.getConnection("jdbc.mysql:" +
                "//127.0.0.1:3306/test","root","123456");
        System.out.println("資料庫連線成功");
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return conn;
}
public static void main(String args[]) {
    Conn c = new Conn();
    c.getConnection();
}
}

在這裡插入圖片描述

順序查詢

//將資料表中的資料檢索出來,儲存在遍歷查詢結果集ResultSet中,並遍歷該結果集

package 資料庫操作;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

public class Gradation {
//宣告Connection類物件
static Connection con;
//宣告Statement類物件
static Statement sql;
//宣告ResultSet類物件
static ResultSet res;
public Connection getConnection() {
    //載入資料庫驅動類
    try {
        Class.forName("com.myaql.jbdc.Driver");
        System.out.println("資料庫載入成功");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
    //通過訪問資料庫的URL,獲取資料庫連線物件
    try {
        con = DriverManager.getConnection("jdbc.mysql:" +
                "//127.0.0.1:3306/test","123456");
        System.out.println("資料庫連線成功");
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return con;
}
public static void main(String args[]) {
    //建立本類物件
    Gradation c = new Gradation();
    //與資料連線
    con = c.getConnection();
    try {
        //例項化Statement物件
        sql = con.createStatement();
        //執行SQL語句,返回結果值
        res = sql.executeQuery("select","from tb_stu");
        //如果當前語句不是最後一條,進入迴圈
        while (res.next()) {
            //獲取列名是id的欄位值
            String id = res.getString("id");
            //獲取列名是name的欄位值
            String name = res.getString("name");
            //獲取列名是sex的欄位值
            String sex = res.getString("sex");
            //獲取列名是birthday的欄位名
            String birthday = res.getString("birthday");
            //將列值輸出
            System.out.println("編號:" + id);
            System.out.println("姓名" + name);
            System.out.println("性別:" + sex);
            System.out.println("生日:" + birthday);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

}
}

在這裡插入圖片描述

模糊查詢

//將姓張的同學資訊檢索出來

package 資料庫操作;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

public class Train {
//宣告Connection類物件
static Connection con;
//宣告Statement類物件
static Statement sql;
//宣告ResultSet類物件
static ResultSet res;
public Connection getConnection() {
    //載入資料庫驅動類
    try {
        Class.forName("com.myaql.jbdc.Driver");
        System.out.println("資料庫載入成功");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
    //通過訪問資料庫的URL,獲取資料庫連線物件
    try {
        con = DriverManager.getConnection("jdbc.mysql:" +
                "//127.0.0.1:3306/test","123456");
        System.out.println("資料庫連線成功");
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return con;
}
public static void main(String args[]) {
    //建立本類物件
    Train c = new Train();
    //與資料連線
    con = c.getConnection();
    try {
        //例項化Statement物件
        sql = con.createStatement();
        //執行SQL語句,返回結果值
        res = sql.executeQuery("select","from tb_stu where" + "name like '張%'");
        //如果當前語句不是最後一條,進入迴圈
        while (res.next()) {
            //獲取列名是id的欄位值
            String id = res.getString("id");
            //獲取列名是name的欄位值
            String name = res.getString("name");
            //獲取列名是sex的欄位值
            String sex = res.getString("sex");
            //獲取列名是birthday的欄位名
            String birthday = res.getString("birthday");
            //將列值輸出
            System.out.println("編號:" + id);
            System.out.println("姓名" + name);
            System.out.println("性別:" + sex);
            System.out.println("生日:" + birthday);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

}
}

在這裡插入圖片描述

預處理語句

//使用預處理語句可以使應用程式更容易的動態改變SQL語句中關於欄位值條件的設定

package 資料庫操作;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class Prep {
//宣告各類物件
static Connection con;
static PreparedStatement sql;
static ResultSet res;
//與資料庫連線的方法
public Connection getConnection() {
    try {
        Class.forName("com.mysql.jdbc.Driver");
        con  = DriverManager.getConnection("jdbc:mysql:" +
                "//127.0.0.1:3306/test","123456");
    } catch (Exception e) {
        e.printStackTrace();
    }
    return con;
}
public static void main(String args[]) {
    //建立本類物件
    Prep c = new Prep();
    //獲取與資料庫的連線
    con = c.getConnection();
    try {
        //例項化與處理物件
        sql = con.prepareStatement("select * from table_name " +
                " where id = ?");
        //設定引數
        sql.setInt(1,19);
        //執行預處理語句
        res = sql.executeQuery();
        //如果當前記錄不是聚合集中的最後一行,則進入迴圈體
        while (res.next()) {
            //獲取結果列中第一列的值
            String id = res.getString(1);
            //獲取name、sex、birthday的列值
            String name = res.getString("name");
            String sex = res.getString("sex");
            String birthday = res.getString("birthday");
            //輸出資訊
            System.out.println("編號:" + id);
            System.out.println("姓名:" + name);
            System.out.println("性別:" + sex);
            System.out.println("生日:" + birthday);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}
}

在這裡插入圖片描述

新增、修改、刪除記錄

//完成以上功能可以通過PreparedStatement類得指定參宿動態的資料表種的元素進行修改,並通過executeUpdate()方法執行更新後的語句

package 資料庫操作;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class Renewal {
//宣告各類物件
static Connection con;
static PreparedStatement sql;
static ResultSet res;
//與資料庫連線的方法
public Connection getConnection() {
    try {
        Class.forName("com.mysql.jdbc.Driver");
        con  = DriverManager.getConnection("jdbc:mysql:" +
                "//127.0.0.1:3306/test","123456");
    } catch (Exception e) {
        e.printStackTrace();
    }
    return con;
}
public static void main(String args[]) {
    //例項化本類物件
    Renewal c = new Renewal();
    //呼叫連線資料庫的方法
    con = c.getConnection();
    try {
        //查詢資料庫
        sql = con.prepareStatement("select * from tb_stu");
        //執行SQL語句
        res = sql.executeQuery();
        System.out.println("執行新增、修改、刪除操作之前的資料");
        while (res.next()) {
            String id = res.getString("1");
            String name = res.getString("name");
            String sex = res.getString("sex");
            String birthday = res.getString("birthday");
            System.out.println("編號:" + id);
            System.out.println("姓名:" + name);
            System.out.println("性別:" + sex);
            System.out.println("生日:" + birthday);
        }
        //預處理新增資料
        sql = con.prepareStatement("insert into tb_stu" + "values(?,?,?)");
        sql.setString(1,"張一");
        sql.setString(2,"女");
        sql.setString(3,"2012-12-1");
        sql.executeUpdate();
        //更新資料資訊
        sql = con.prepareStatement("update tb_stu birthday" +
                "=? where id = (select min(id) from tb_stu)");
        sql.setString(1,"2012-12-02");
        sql.executeUpdate();
        //刪除資料
        sql.executeUpdate("delete from tb_stu where id = " +
                "(select min(id)from tb_stu)");
        sql.setInt(1,1);
        sql.executeUpdate();
        //查詢修改資料後tb_stu表中的資料
        sql = con.prepareStatement("select * from tb_stu");
        //執行SQL語句
        res = sql.executeQuery();
        System.out.println("執行增加、修改、刪除後的資料");
        while (res.next()) {
            String id = res.getString("1");
            String name = res.getString("name");
            String sex = res.getString("sex");
            String birthday = res.getString("birthday");
            System.out.println("編號:" + id);
            System.out.println("姓名:" + name);
            System.out.println("性別:" + sex);
            System.out.println("生日:" + birthday);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}
}

在這裡插入圖片描述