學生管理系統(增刪改查)

2020-10-06 12:00:41

DBUtil工具類(增刪改查共同程式碼)

.java程式碼

package top.gaojc;

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

public class DBUtil {
	
	// 1.載入驅動程式(專案中新增驅動包)
	static{
		try {
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	
	// 2.使用DriverManager連線資料庫
	public static Connection getConn(){
		Connection conn = null;
		try {
			// ("jdbc:執行環境://localhost:埠號;databaseName=資料庫名稱","SQL賬號","SQL密碼")
			conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=school", "sa", "1");
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return conn;
	}
	
	// 7.關閉資源
	public static void Close(Connection conn,PreparedStatement ps,ResultSet rs){
		try {
			if(conn != null)
			conn.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		try {
			if(ps != null)
			ps.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		try {
			if(rs != null)
			rs.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

新增學生資訊

.java程式碼

package top.gaojc;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

public class Insert {
	
	public static void main(String[] args) throws SQLException {
		
		// 從控制檯輸入我想新增的資料
		System.out.println("請輸入需要新增的資料:");
		Scanner scan = new Scanner(System.in);
		System.out.print("姓名:");
		String name = scan.nextLine();
		System.out.print("性別:");
		String sex = scan.nextLine();
		System.out.print("年齡:");
		int age = scan.nextInt();
		
		// 1 2  呼叫DBUtil
		Connection conn = DBUtil.getConn();
		
		// 3.準備一個sql語句
		String sql = "insert into student(name,sex,age) values (?,?,?)";
		
		// 4.準備一個和資料庫打交道的
		PreparedStatement ps = conn.prepareStatement(sql);
		
		// 給sql語句中的?賦值
		ps.setString(1, name);
		ps.setString(2, sex);
		ps.setInt(3, age);
		
		// 5.結果賦值
		int count = ps.executeUpdate();
		
		// 6.輸出
		if (count > 0) {
			System.out.println("新增成功!");
		}else{
			System.out.println("新增失敗!");
		}
		
		// 7.呼叫DBUtil
		DBUtil.Close(conn, ps, null);
	}
}

效果展示

原資料:

在這裡插入圖片描述
執行
在這裡插入圖片描述
新增之後的資料:
在這裡插入圖片描述

刪除學生資訊

.java程式碼

package top.gaojc;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

public class Delete {

	public static void main(String[] args) throws SQLException {

		// 從控制檯輸入我想刪除的資料id
		System.out.print("請輸入需要刪除的資料id:");
		Scanner scan = new Scanner(System.in);
		int id = scan.nextInt();

		// 1 2  呼叫DBUtil
		Connection conn = DBUtil.getConn();

		// 3.準備一個sql語句
		String sql = "delete from student where id = ?";

		// 4.準備一個和資料庫打交道的
		PreparedStatement ps = conn.prepareStatement(sql);

		// 給sql語句中的?賦值
		ps.setInt(1, id);

		// 5.結果賦值
		int count = ps.executeUpdate();

		// 6.輸出
		if (count > 0) {
			System.out.println("刪除成功!");
		} else {
			System.out.println("刪除失敗!");
		}

		// 7.呼叫DBUtil
		DBUtil.Close(conn, ps, null);
	}
}

效果展示

原資料:

在這裡插入圖片描述
執行

在這裡插入圖片描述
刪除之後的資料:

在這裡插入圖片描述

修改學生資訊

.java程式碼

package top.gaojc;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

public class Update {
	public static void main(String[] args) throws SQLException {

		// 從控制檯輸入我想修改的資料
		Scanner scan = new Scanner(System.in);
		System.out.print("請輸入新的姓名:");
		String name = scan.nextLine();
		System.out.print("請輸入新的性別:");
		String sex = scan.nextLine();
		System.out.print("請輸入新的年齡:");
		int age = scan.nextInt();
		System.out.print("請輸入需要修改的資料id:");
		int id = scan.nextInt();

		// 1 2  呼叫DBUtil
		Connection conn = DBUtil.getConn();

		// 3.準備一個sql語句
		String sql = "Update student set name=?,sex=?,age=? where id = ?";

		// 4.準備一個和資料庫打交道的
		PreparedStatement ps = conn.prepareStatement(sql);

		// 給sql語句中的?賦值
		ps.setString(1, name);
		ps.setString(2, sex);
		ps.setInt(3, age);
		ps.setInt(4, id);

		// 5.結果賦值
		int count = ps.executeUpdate();

		// 6.輸出
		if (count > 0) {
			System.out.println("修改成功!");
		} else {
			System.out.println("修改失敗!");
		}

		// 7.呼叫DBUtil
		DBUtil.Close(conn, ps, null);
	}
}

效果展示

原資料:
在這裡插入圖片描述
執行

在這裡插入圖片描述
修改之後的資料:
在這裡插入圖片描述

查詢所有學生資訊

.java程式碼

package top.gaojc;

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

public class Select {
	
	public static void main(String[] args) throws SQLException {
		
		System.out.println("                              學生資訊表");
		
		// 1 2  呼叫DBUtil
		Connection conn = DBUtil.getConn();

		// 3.準備一個sql語句
		String sql = "select * from student";

		// 4.準備一個和資料庫打交道的
		PreparedStatement ps = conn.prepareStatement(sql);

		// 5.使用ResultSet接收ps執行的結果
		ResultSet rs = ps.executeQuery();

		// 6.資料的展示
		while (rs.next()) {
			System.out.println("編號:"+rs.getString("id")+"   姓名:"+rs.getString("name")+
					"       性別:"+rs.getString("sex")+"      年齡:"+rs.getString("age"));
		}

		// 7.呼叫DBUtil
		DBUtil.Close(conn, ps, rs);
	}
}

效果展示

在這裡插入圖片描述

合併呼叫

.java程式碼

package top.gaojc;

import java.sql.SQLException;
import java.util.Scanner;

public class StudentMain {

	public static void main(String[] args) throws SQLException {
		while (true) {
			// 呼叫功能
			System.out.println("學生管理系統");
			System.out.println("0:退出系統");
			System.out.println("1:新增學生資訊");
			System.out.println("2:刪除學生資訊");
			System.out.println("3:修改學生資訊");
			System.out.println("4:查詢所有學生資訊");
			System.out.print("請輸入相應的編號完成相應的功能:");
			Scanner scan = new Scanner(System.in);
			int index = scan.nextInt();
			if (index == 0) {
			    System.out.println("已退出!");
				break;
			} else if (index == 1) {
				Insert.main(args);
			} else if (index == 2) {
				Delete.main(args);
			} else if (index == 3) {
				Update.main(args);
			} else if (index == 4) {
				Select.main(args);
			} else {
				System.out.print("輸入錯誤!");
			}
		}
	}
}

效果展示

在這裡插入圖片描述