Java之學生資訊管理系統升級版(資料庫程式設計)
經過了幾天的學習後,我覺得如果僅僅使用檔案來儲存資料,不僅十分繁瑣而且資料也不安全,如果檔案丟失或者出現異常,那麼將無法挽回。這時候使用資料庫MySQL來儲存則更好。
學生類:
package Student;
public class Student {
private String Name;
private int StNo;
private int StAge;
private String Sex;
public void SetStudent(String name,int StNo,int StAge,String sex){
this.Name = name;
this.StNo = StNo;
this.StAge = StAge;
this.Sex = sex;
}
public void print(){
System.out.println("學號:"+this.StNo+" "+"姓名:"+this.Name+" "+"年齡:"+this.StAge);
}
public int GetNO()
{
return this.StNo;
}
public String GetName(){
return this.Name;
}
public int GetAge(){
return this.StAge;
}
public String GetSex(){
return this.Sex;
}
}
資料庫類:
package Student;
import java.sql.*;
import java.util.Scanner;
public class StuSql {
public boolean idIsUsed(Connection con, int id){
Statement stat = null;
try {
stat = con.createStatement();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
ResultSet result = null;
try {
result = stat.executeQuery("select * from test");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
while (result.next())
{
if(id == result.getInt("id")){
return true;
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
public Connection getconnection(){
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("成功載入MySql驅動器");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("找不到MySql驅動器");
e.printStackTrace();
}
String url="jdbc:mysql://localhost:3306/hello"; //JDBC的URL,hello為資料庫名字
// MySQL配置時的使用者名稱
String user = "root";
// MySQL配置時的密碼
String password = "123456";
//呼叫DriverManager物件的getConnection()方法,獲得一個Connection物件
Connection con = null;
try {
con = DriverManager.getConnection(url,user,password);
System.out.println("成功連線到資料庫");
}catch (SQLException e) {
e.printStackTrace();
}
return con;
}
public void insertStuSql(Connection con){
Student st = new Student();
System.out.println("請輸入學號姓名年齡和性別:");
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
int StNo = sc.nextInt();
String name = sc.next();
int StAge = sc.nextInt();
String sex = sc.next();
st.SetStudent(name, StNo, StAge, sex);
if (!idIsUsed(con, StNo) && StNo > 0) {
java.sql.PreparedStatement stat = null;
try {
stat = con.prepareStatement("insert into test values(?, ?, ?, ?)");
} catch (SQLException e4) {
// TODO Auto-generated catch block
e4.printStackTrace();
}
try {
stat.setInt(1, st.GetNO());
} catch (SQLException e3) {
e3.printStackTrace();
}
try {
stat.setString(2, st.GetName());
} catch (SQLException e2) {
e2.printStackTrace();
}
try {
stat.setInt(3, st.GetAge());
} catch (SQLException e1) {
e1.printStackTrace();
}
try {
stat.setString(4, st.GetSex());
} catch (SQLException e) {
e.printStackTrace();
}
try {
stat.execute();
} catch (SQLException e) {
e.printStackTrace();
}
}
else{
System.out.println("無法新增,id已使用!");
}
}
public void reviseStuSql(Connection con,int StuNo)
{
if (idIsUsed(con, StuNo) && StuNo > 0) {
Statement stat = null;
try {
stat = con.createStatement();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sql = "delete from test where id=" + StuNo;
try {
stat.executeUpdate(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else{
System.out.println("無法刪除,使用者不存在!");
}
}
public void updateStuSql(Connection con,int StuNo){
if (idIsUsed(con, StuNo) && StuNo > 0) {
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
System.out.println("請輸入更新後的名字年齡性別:");
String name = sc.next();
int age = sc.nextInt();
String sex = sc.next();
String sql = "update test set name='" + name + "',age='"+age+"',sex='"+sex+"' where id='"
+ StuNo + "'";
PreparedStatement pstmt = null;
try {
pstmt = (PreparedStatement) con.prepareStatement(sql);
int i = pstmt.executeUpdate();
System.out.println("resutl: " + i);
if (i < 1) {
System.out.println("使用者不存在!");
}
pstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else {
System.out.println("無法更新,使用者不存在!");
}
}
public void selectStuSql(Connection con){
Statement stat = null;
try {
stat = con.createStatement();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
ResultSet result = null;
try {
result = stat.executeQuery("select * from test");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
System.out.println("當前資料如下:");
while (result.next())
{
System.out.println(result.getInt("id") + " " + result.getString("name") + " " + result.getInt("age")+" " + result.getString("sex"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
展示類:
package Student;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Scanner;
public class StList {
public void Show(){
@SuppressWarnings("resource")
Scanner scanner = new Scanner(System.in);
StuSql sql = new StuSql();
Connection con = sql.getconnection();
int value;
while(true){
System.out.println("學生管理系統");
System.out.println("請輸入相應的數字選擇功能方式:");
System.out.println("1:增加\t2:刪除\t3:修改\t4:檢視\t5:退出");
value = scanner.nextInt();
switch (value) {
case 1:
sql.insertStuSql(con);
break;
case 2:
System.out.println("請輸入要刪除的學號:");
int index = scanner.nextInt();
sql.reviseStuSql(con, index);
break;
case 3:
System.out.println("請輸入要修改的學號!");
int inde = scanner.nextInt();
sql.updateStuSql(con, inde);
break;
case 4:
sql.selectStuSql(con);
break;
case 5:
System.out.println("程式已退出!");
try {
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return;
default:
System.out.println("您的輸入有誤!");
break;
}
}
}
public static void main(String[] args){
StList list = new StList();
list.Show();
}
}
web版:https://blog.csdn.net/pycharm_u/article/details/85727570
相關文章
- Java簡單學生資訊管理系統Java
- 資料庫升級之-資料泵資料庫
- 基於java的大學生健康資訊管理系統的設計與實現Java
- 資料庫升級之-XTTS資料庫TTS
- 學生選題資訊管理系統
- 學生資訊管理系統用例
- 資料庫升級之-Dataguard滾動升級資料庫
- Python學生資訊管理系統-簡易版(Python基礎)Python
- 基於php學生資訊管理系統PHP
- java+SQL做學生資訊管理系統(增刪改查)學生新作JavaSQL
- android資料庫如何進行版本升級?架構之資料庫框架升級Android資料庫架構框架
- 資料庫課程設計—超市零售資訊管理系統(Python實現)資料庫Python
- Java入門專案:學生資訊管理系統V1Java
- 好程式設計師大資料學習資料之YARN資源管理程式設計師大資料Yarn
- 學生管理升級
- 資料庫系統設計概述資料庫
- GUI程式設計--班級資訊收集系GUI程式設計
- GUI程式設計--班級資訊收集系..GUI程式設計
- C# 簡單的學生資訊管理系統,好看的UI介面,與資料庫互動C#UI資料庫
- MySQL練習——教學系統資料庫設計MySql資料庫
- Go Web 程式設計之 資料庫GoWeb程式設計資料庫
- 某學校的學生資訊管理系統網站網站
- 基於jsp學生資訊管理系統的設計與實現(含原始檔)JS
- 職工資訊管理系統的設計
- 資料庫與資料庫管理系統概述資料庫
- 通用許可權系統之資料庫表設計資料庫
- 資料庫:系統設計的核心資料庫
- 資料庫系統設計:分割槽資料庫
- 達夢資料庫手動管理統計資訊方法資料庫
- Javaweb的例項--訂單管理系統--設計資料庫JavaWeb資料庫
- GUI程式設計--班級資訊收集系6.3GUI程式設計
- 自定義開發資料庫升級程式資料庫
- EasyUI+JavaWeb獎助學金管理系統[3]-資料庫結構設計UIJavaWeb資料庫
- java 資料庫程式設計(一)JDBC連線Sql Server資料庫Java資料庫程式設計JDBCSQLServer
- Java 程式設計技巧之資料結構Java程式設計資料結構
- Python編寫簡單的學生資訊管理系統Python
- JAVA學生宿舍管理系統Java
- Java面向資料程式設計1.1版本Java程式設計