資料庫學生管理系統(StudentManagerSystemDB_V1.0)
阿新 • • 發佈:2019-01-02
package cn.sxb.day1102; public class Student { private String name; private int number; private int age; private int sex;//0:男 1:女 public Student(){ } public Student(String name, int number, int age, int sex) { this.name = name; this.number = number; this.age = age; this.sex = sex; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getSex() { return sex; } public void setSex(int sex) { this.sex = sex; } }
package cn.sxb.day1102; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class UtilDB { private static final String URL = "jdbc:mysql://192.168.5.17:3306/db1606"; private static final String USER = "test"; private static final String PASSWORD = "123321"; /** * 構造方法載入驅動 */ public UtilDB() { try { Class.forName("com.mysql.jdbc.Driver");// 載入mysql驅動 } catch (ClassNotFoundException e) { e.printStackTrace(); } } /** * 建立連線資料庫 */ public Connection getConnection() { Connection connect = null; try { connect = DriverManager.getConnection(URL, USER, PASSWORD);//試圖建立到給定資料庫URL的連線 if (connect == null) { System.out.println("資料庫連線失敗"); } else { System.out.println("資料庫連線成功"); } } catch (SQLException e) { e.printStackTrace(); } return connect; } /** * 關閉資料庫連線 */ public void closeConnection(Connection connect) { try { if (connect != null) connect.close(); } catch (SQLException e) { e.printStackTrace(); } } }
package cn.sxb.day1102; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Scanner; public class StudentDB extends UtilDB { public StudentDB() { } /** * 建立表 */ public void createTable() { Statement statement = null; Connection connect = getConnection(); try { String sql = "create table studentThree (" + "id int(11) not null auto_increment primary key," // 主鍵 + "name varchar(10) not null," // 姓名 + "number int(4) not null," // 學號 + "age int(3)," // 年齡 + "sex int(1)" // 性別 + ")"; statement = connect.createStatement(); statement.execute(sql);//執行給定的sql語句 } catch (SQLException e) { e.printStackTrace(); } finally { try { if (statement != null) statement.close(); } catch (SQLException e) { e.printStackTrace(); } closeConnection(connect); } } /** * 向表中新增學生 */ public void addStudent() { Student stu = new Student(); Scanner scanner = new Scanner(System.in); System.out.println("請輸入學生姓名:"); String s = scanner.next(); stu.setName(s); System.out.println("請輸入學生學號:"); stu.setNumber(scanner.nextInt()); System.out.println("請輸入學生年齡:"); stu.setAge(scanner.nextInt()); System.out.println("請輸入學生性別:"); stu.setSex(scanner.nextInt()); Connection connect = getConnection(); PreparedStatement ps = null;//sql語句被預編譯並存儲在PreparedStatement物件中 String sql = "insert into studentThree(name,number,age,sex)values(?,?,?,?)"; try { ps = connect.prepareStatement(sql); // 執行SQL語句 ps.setString(1, stu.getName()); ps.setInt(2, stu.getNumber()); ps.setInt(3, stu.getAge()); ps.setInt(4, stu.getSex()); ps.execute(); } catch (SQLException e) { e.printStackTrace(); }finally{ try { if(ps != null) ps.close(); } catch (SQLException e) { e.printStackTrace(); } closeConnection(connect); } } /** * 顯示學生 */ public void showStudent(){ Connection connect = getConnection(); Statement statement = null; try { statement = connect.createStatement(); String sql = "select * from studentThree"; ResultSet rs = statement.executeQuery(sql);//執行給定的sql語句,單個ResultSet物件 //ResultSet表示資料庫結果集的資料表,通常通過執行查詢資料庫的語句生成。 System.out.println("姓名\t學號\t年齡\t性別"); while (rs.next()) { String name = rs.getString("name"); int number = rs.getInt("number"); int age =rs.getInt("age"); int sex = rs.getInt("sex"); System.out.println(name + "\t" + number + "\t" + age + "\t" + sex); } } catch (SQLException e) { e.printStackTrace(); } finally { try { if (statement != null) statement.close(); } catch (SQLException e) { e.printStackTrace(); } closeConnection(connect); } } /** * 查詢學生 */ public void selectStudent(){ System.out.println("請輸入查詢的學生學號"); Scanner scanner = new Scanner(System.in); int num = scanner.nextInt(); Connection connect = getConnection(); PreparedStatement ps = null; try { String sql = "select * from studentThree where number = ?"; ps = connect.prepareStatement(sql); ps.setInt(1,num); ResultSet rs = ps.executeQuery();// 返回結果集 while (rs.next()) { String name = rs.getString("name"); int number = rs.getInt("number"); int age =rs.getInt("age"); int sex = rs.getInt("sex"); System.out.println("你要查詢的學生是:"+name); } } catch (SQLException e) { e.printStackTrace(); } finally { try { if (ps != null) ps.close(); } catch (SQLException e) { e.printStackTrace(); } closeConnection(connect); } } /** * 刪除學生 */ public void deleteStudent(){ System.out.println("請輸入刪除的學生學號:"); Scanner scanner = new Scanner(System.in); int num = scanner.nextInt(); Connection connect = getConnection(); PreparedStatement ps = null; try { String sql = "delete from studentThree where number = ?"; ps = connect.prepareStatement(sql); ps.setInt(1,num); ps.execute(); System.out.println("刪除成功"); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (ps != null) ps.close(); } catch (SQLException e) { e.printStackTrace(); } closeConnection(connect); } } // public static void main(String[] args){ // StudentDB sdb = new StudentDB(); // sdb.createTable(); //// sdb.keyBoard(); //// sdb.addStudent(stu); //// sdb.showStudent(); //// sdb.selectStudent(); //// sdb.deleteStudent(); // // } }
package cn.sxb.day1102;
import java.util.Scanner;
/**
* 專案名稱: 《學生資訊管理系統》 英文:StudentManagerSystem
版本號: V1.0
功能描術: 學生資訊管理系統具有能對學生資訊進行顯示,新增,刪除,查詢(根據學號查詢),退出功能.
要求:
1>.建立一個學生類 Student至少包含:姓名(name)、學號(number)兩個屬性;
在Student類中封裝操作方法:
新增學生(addStudent)、顯示學生列表(showAllStudent)、刪除學生(deleteStudent)
查詢學生(findStudentByNumber)、退出系統(exit)
2>在新增,刪除學生時要求檢查該學生是否存在,如果不存在需給出提示。
3>.通過輸入命令進行互動操作,控制檯輸出效果如下:
===== 歡迎進入《學生資訊管理系統》! ======
1 新增學生,2 顯示學生列表,3 刪除學生,4 查詢學生,5 退出
<輸入操作命令:>
1
======新增學生資訊操作=========
請輸入姓名:
小明
請輸入學號:
1001
======新增成功 ! 學生姓名是 :小明,學號是 : 1001=========
<輸入操作命令:>
2
姓名 學號
小明 1001
<輸入操作命令:>
4
======查詢學生資訊操作=========
請輸入學號:
1001
===您查詢的學生是:小明====
<輸入操作命令:>
3
======刪除學生資訊操作=========
請輸入學號:
1001
====刪除學生成功!學號是:1001的學生已從學生管理系統中刪除====
<輸入操作命令:>
5
==== 您已經退出《學生資訊管理系統》 ====
*
*
*/
public class StudentTest {
public static void main(String[] args) {
StudentDB sdb = new StudentDB();
System.out.println("=====歡迎進入學生管理系統=====");
System.out.println(" 1 新增學生,2 顯示學生列表,3 刪除學生,4 查詢學生,5 退出");
Scanner scanner = new Scanner(System.in);
System.out.println("=====新增學生資訊操作=====");
for(;;){
System.out.println("<請輸入操作命令:>");
int num =scanner.nextInt();
switch(num){
case 1:
sdb.addStudent();
break;
case 2:
sdb.showStudent();
break;
case 3:
sdb.deleteStudent();
break;
case 4:
sdb.selectStudent();
break;
case 5:
System.out.println("你已經退出系統!");
System.exit(0);
break;
default :
break;
}
}
}
}