java+SQL做學生資訊管理系統(增刪改查)學生新作
java+SQL做學生資訊管理系統(增刪改查)
過程中需要用到的所有工具資料庫以及資料庫管理器等等
密碼:q80t
大學學習java後做的第一個小專案忍不住分享一下,也是我自己的物件導向程式設計的實踐作業啦,有點水,不是很優。廢話不多數,下面進入正題
介面的編寫是非常簡單的,直接貼程式碼了,首先看新增功能
Add.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Add extends JFrame implements ActionListener{
private static final Statement PraparedStatement = null;
Connection con;
JLabel id = new JLabel("Id");
JLabel name = new JLabel("Name");
JLabel sex = new JLabel("sex");
JLabel tel = new JLabel("Tel");
JLabel grade = new JLabel("Grade");
JLabel address = new JLabel("Address");
JLabel birthday = new JLabel("Birthday");
JTextField id1 = new JTextField(10);
JTextField name1 = new JTextField(10);
JTextField sex1 = new JTextField(10);
JTextField tel1 = new JTextField(10);
JTextField grade1 = new JTextField(10);
JTextField address1 = new JTextField(10);
JTextField birthday1 = new JTextField(8);
JButton yes = new JButton("確認");
JButton no = new JButton("取消");
public Add() {
setTitle("新增學生資訊");
setLayout(null);
id.setBounds(100,90,100,50);
id1.setBounds(300,100,200,30);
name.setBounds(100,140,100,50);
name1.setBounds(300,150,200,30);
sex.setBounds(100,190,100,50);
sex1.setBounds(300,200,200,30);
tel.setBounds(100,240,100,50);
tel1.setBounds(300,250,200,30);
grade.setBounds(100, 290, 100, 50);
grade1.setBounds(300, 300, 200, 30);
address.setBounds(100, 340, 100, 50);
address1.setBounds(300,350,200,30);
birthday.setBounds(100, 390, 100, 50);
birthday1.setBounds(300, 400, 200, 30);
yes.setBounds(100,450, 100, 60);
no.setBounds(400, 450, 100,60);
add(id);
add(id1);
add(name);
add(name1);
add(sex);
add(sex1);
add(tel);
add(tel1);
add(grade);
add(grade1);
add(address);
add(address1);
add(birthday);
add(birthday1);
add(yes);
add(no);
yes.addActionListener(this);
no.addActionListener(this);
setVisible(true);
setBounds(600,300,600,600);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
public static void main(String args[]){
new Add();
}
}
這就是執行以後的介面
下面就是按鈕功能的實現,同時包含了資料庫的操作
將下面的程式碼直接加在上面的程式碼的主函式上面就可以,這是上面的按鈕的監聽器方法
public void actionPerformed(ActionEvent e) {
if(e.getSource()==yes) { //如果你點選的是確認按鈕
String s1=id1.getText(); //獲取文字框中的資訊
String s2=name1.getText();
String s3=sex1.getText();
String s4=tel1.getText();
String s5=grade1.getText();
String s6=address1.getText();
String s7=birthday1.getText();
int num = Integer.parseInt(s7); //將獲得的日期轉換為整數型別
//載入資料庫驅動
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDrive");
}
catch(Exception e1) {
}
//連線資料庫
String uri ="jdbc:sqlserver://172.16.8.54:1433;DatebaseName=Stu"; //ip改為自己的ip,“Stu”資料庫中自己新建的資料庫名
String user = "sa"; //sa為自己的資料庫使用者名稱
String password = "962464"; //自己的資料庫密碼
try {
con = DriverManager.getConnection(uri,user,password);
} catch (SQLException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
JOptionPane.showMessageDialog(null, "資料庫連線成功", "連線資料庫",
JOptionPane.INFORMATION_MESSAGE);
try {
if(init()==true) { //假如新增的id資料庫中已經存在,則不新增
JOptionPane.showMessageDialog(null, "資料庫中此 Id 已存在,不可新增", "提示",
JOptionPane.INFORMATION_MESSAGE);
dispose();
}
else if(init()==false){ //如果沒有,則執行新增
String sql="insert into Students(Id,Name,Sex,Tel,Grade,Address,Birth)"+"values('"+s1+"','"+s2+"','"+s3+"','"+s4+"','"+s5+"','"+s6+"','"+num+"')"; //建立sql語句
Statement statement = null;
try {
statement = con.createStatement();
} catch (SQLException e2) {
e2.printStackTrace();
}
try {
int result = statement.executeUpdate(sql); //執行sql語句
} catch (SQLException e1) {
e1.printStackTrace();
}
JOptionPane.showMessageDialog(null, "新增學生資訊成功", "完成",
JOptionPane.INFORMATION_MESSAGE);
dispose();
}
} catch (HeadlessException | SQLException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
}
else if(e.getSource()==no) {
dispose();
}
}
//判斷新增的Id在資料庫中是否存在的方法
public boolean init() throws SQLException {
String sql1="select Id FROM Students where Id='"+s1+"'";
PreparedStatement pstm = con.prepareStatement(sql1);// 執行查詢
ResultSet rs = pstm.executeQuery();
boolean result = false;
while(rs.next()) {
result = true;
}
rs = pstm.executeQuery();
return result;
}
}
新增功能就完成了,大功告成
刪除功能,介面百年不變,所以我就只寫按鈕監聽器裡面的方法了,直接寫個介面加到裡面就可以了。
刪除功能是按照id刪除,需要輸入要刪除的id
下面是執行刪除功能的核心程式碼,資料庫連線等程式碼都是恆定不變的,就不貼了,學程式設計絕對不能一味的Ctrl+c;Ctrl+v;一定要自己的思考,親手敲一遍
Delete.java
String sql="delete Students where Id ='"+s1+"'";
Statement statement = null;
try {
statement = con.createStatement();
} catch (SQLException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
try {
int resultset = statement.executeUpdate(sql);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
JOptionPane.showMessageDialog(null, "刪除學生資訊成功", "完成",
JOptionPane.INFORMATION_MESSAGE);
}
}catch (HeadlessException | SQLException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
更新功能
更新功能的實現,我用到了sql中if語句的拼接,從而實現,更新指定標籤的內容
Update.java
String sql = "update Students set Id = '"+s1+"'";
String sql1="where Id='"+s1+"'";
if(s2!= null&&!s2.equals("")) sql+=",Name ='"+s2+"'";
if(s3!= null&&!s3.equals("")) sql +=",Sex ='"+s3+"'";
if(s4!= null&&!s4.equals("")) sql +=",Tel ='"+s4+"'";
if(s5!= null&&!s5.equals("")) sql += ",Grade ='"+s5+"'";
if(s6!= null&&!s6.equals("")) sql +=",Address ='"+s6+"'";
if(s7!= null&&!s7.equals("")) sql +=",Birth ='"+s7+"'";
String sql3= sql+sql1;
Statement statement=null;
try {
statement = con.createStatement();
} catch (SQLException e2) {
e2.printStackTrace();
}
try {
int result = statement.executeUpdate(sql3);
} catch (SQLException e1) {
e1.printStackTrace();
}
JOptionPane.showMessageDialog(null, "更新學生資訊成功", "完成",
JOptionPane.INFORMATION_MESSAGE);
查詢功能
Select.java
String sql="select Id,Name,Sex,Tel,Grade,Address,Birth from Stu.Students where ID ='"+Select.id1.getText()+"'";
PreparedStatement pstm = con.prepareStatement(sql);// 執行查詢
ResultSet rs = pstm.executeQuery();
// 計算有多少條記錄
int count = 0;
while(rs.next()){
count++;
}
rs=pstm.executeQuery();
查詢還涉及到最後是用文字區顯示還是使用表格顯示,這個就需要自己設計了
一定要注意,程式碼中凡是涉及資料庫名,和資料表名字的一定要改成自己的
好了,就分享到這裡,歡迎留言,大家探討。
相關文章
- 學生選題資訊管理系統
- 學生資訊管理系統用例
- 基於php學生資訊管理系統PHP
- Java簡單學生資訊管理系統Java
- 某學校的學生資訊管理系統網站網站
- 學生管理系統
- 學生管理系統(springMVC)SpringMVC
- Python編寫簡單的學生資訊管理系統Python
- 【C++】學生管理系統C++
- JAVA學生宿舍管理系統Java
- python實現學生資訊管理系統(從淺到深)Python
- Python專案開發案例(一)————學生資訊管理系統Python
- 教你如何運用python實現學生資訊管理系統Python
- Python學生資訊管理系統-簡易版(Python基礎)Python
- Django學生資訊管理系統(6)學生成績新增和學生成績查詢(多對對關係)Django
- (十)ArrayList&&學生管理系統
- Python簡易學生管理系統Python
- Java入門專案:學生資訊管理系統V1Java
- DreamJudge-1177-查詢學生資訊
- 一起學Vue:CRUD(增刪改查)Vue
- Django練習-學生管理系統案例Django
- 9、ArrayList集合完成學生管理系統
- 增刪改查
- MySQL增刪改查學習筆記(手寫)MySql筆記
- Java之學生資訊管理系統升級版(資料庫程式設計)Java資料庫程式設計
- 教你如何用python實現學生通訊錄管理系統Python
- C語言學生管理系統原始碼C語言原始碼
- C++實現控制檯學生學籍管理系統C++
- python基礎(16):學生資訊管理系統——Python編寫(附全部程式碼)Python
- SQL增刪改查SQL
- Mongoose查增改刪Go
- indexedDB 增刪改查Index
- mysql增刪改查MySql
- [.NET學習]EFCore學習之旅 -2 簡單的增刪改查
- mysql資料增刪改查操作MySql
- day09 集合基礎、學生管理系統
- 基於jsp學生資訊管理系統的設計與實現(含原始檔)JS
- 基於java的大學生健康資訊管理系統的設計與實現Java