界面展示
登錄界面
管理員界面
學(xué)生界面
教師界面
一、環(huán)境搭建
eclipse網(wǎng)址:https://www.eclipse.org/downloads/
(進(jìn)入之后安裝包直接安裝就行)
MySql官方網(wǎng)址:http://www.mysql.com
這里我推薦用C語言中文網(wǎng)的下載方式,較為詳細(xì) MySql下載步驟詳解
配置為 MySql安裝配置教程
在這溫馨提醒一下,一般配置路徑不要有中文,因?yàn)榭赡軙?huì)在編程過程中有許多奇奇怪怪的錯(cuò)誤。
在我們下載完并搭建好路徑之后,我推薦使用WindowBulider來進(jìn)行UI界面設(shè)計(jì)。在學(xué)過Qt的家人們應(yīng)該知道Qt有對(duì)應(yīng)專門的UI界面設(shè)計(jì)組件。而在Eclipse中也是有的(我也不知道哪個(gè)鬼才想出來的,反正好用就對(duì)了)。它的下載方式有很多種,這里推薦一種最為簡(jiǎn)單的方法:
首先打開下載好的Eclipse,選擇好工作環(huán)境之后進(jìn)入界面
點(diǎn)擊Help找到下滑欄中的Eclipse Market點(diǎn)擊打開
在Find搜索框中搜索WindowBulider點(diǎn)擊Install就會(huì)自動(dòng)安裝到Eclipse的目錄中。
二、項(xiàng)目目錄介紹
image是Source Folder類型的包,用于存儲(chǔ)圖片,就是你如果想要你的UI界面美觀的話就可以放icon和background在里面
model用于存儲(chǔ)一些模型;util用于放和MySql連接的模塊;view則放置UI界面,也就是用WindowBuilder創(chuàng)建的JavaSwing界面。
三、WindowBuilder的使用
首先創(chuàng)建登錄界面,在這里是LoginFrm.java。那么如何用WindowBuilder創(chuàng)建一個(gè)界面,操作如下
右鍵單擊想加的包,選擇New,選擇Other,之后會(huì)彈出一個(gè)界面,向下滑動(dòng)找到我們下載的WindowBuilder,點(diǎn)擊打開,
選擇Next會(huì)自動(dòng)生成一個(gè)界面。想要可視化編程則點(diǎn)擊界面下方的design按鈕。如圖:一般我們都會(huì)采用Absolute Layout,這樣可以拖拽組件到任意地方,如果有些許誤差,我們還可以點(diǎn)擊Source回到編程界面,在對(duì)應(yīng)的組件名稱創(chuàng)建的地方改變位置坐標(biāo)。
四、MySql連接Eclipse
數(shù)據(jù)庫連接方法:首先要有驅(qū)動(dòng)文件,這里是下載地址 jdbc驅(qū)動(dòng)下載地址 https://dev.mysql.com/downloads/connector/j/
下載完成后右鍵項(xiàng)目,選擇Bulid Path—Configure Build Path有的時(shí)候你會(huì)發(fā)現(xiàn)右邊的按鈕為灰色,這時(shí)只需點(diǎn)擊一下Mudulepath就行。選擇add External JARs,找到你下載的jdbc驅(qū)動(dòng)文件點(diǎn)擊添加即可。
五、數(shù)據(jù)庫信息
CREATE TABLE Student (
SID varchar(10) NOT NULL ,
Sname nvarchar(10) NOT NULL ,
Sex nvarchar(5) check(sex='男' or sex='女') NOT NULL,
SchoolAge int check(Schoolage > 10 and Schoolage < 50) NOT NULL ,
SchoolYear int NOT NULL ,
Class nvarchar(20) NOT NULL ,
primary key(SID)
)
CREATE TABLE Course (
CID varchar(7) NOT NULL ,
Cname nvarchar(10) NOT NULL ,
TID varchar(5) NOT NULL ,
Credit int NOT NULL ,
Grade varchar(30) NOT NULL ,
CancelYear int NULL ,
primary key(CID)
)
CREATE TABLE Teacher (
TID varchar(5) NOT NULL ,
Tname nvarchar(10) NOT NULL ,
Course nvarchar(10) NOT NULL ,
primary key(TID)
)
CREATE TABLE Choose (
SID varchar(10) NOT NULL,
CID varchar(7) NOT NULL,
TID varchar(5) NOT NULL ,
Score int NULL ,
ChooseYear int NOT NULL ,
foreign key(SID) references Student(SID),
foreign key(CID) references Course(CID),
foreign key(TID) references Teacher(TID)
)
CREATE TABLE Permission1 (
SID varchar(10) NOT NULL ,
SPW varchar(10) NOT NULL ,
primary key(SID)
)
CREATE TABLE Permission2 (
TID varchar(5) NOT NULL ,
TPW varchar(10) NOT NULL ,
primary key(TID)
)
CREATE TABLE Permission3 (
MID varchar(7) NOT NULL ,
MPW varchar(10) NOT NULL ,
primary key(MID)
)
六、部分代碼展示
數(shù)據(jù)庫連接代碼(DBconnection.java)
package zyz.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.sql.Statement;
public class DBconnection {
private static final String jdbcName="com.mysql.cj.jdbc.Driver";
private static final String dbUrl="jdbc:mysql://localhost:3306/MDB?characterEncoding=utf8";
private static final String dbUserName="root";
private static final String dbPassword="462813";
public static Connection con=null;
/**
* 獲取數(shù)據(jù)庫連接
* @return
* @throws Exception
*/
public Connection getCon() {
try {
Class.forName(jdbcName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
con=DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
}catch(SQLException e) {
e.printStackTrace();
}
return con;
}
/**
* 關(guān)閉數(shù)據(jù)庫連接
* @param con
* @throws Exception
*/
public void closeCon(Connection con)throws Exception{
if(con!=null) {
con.close();
}
}
}
登錄功能的實(shí)現(xiàn)
protected void loginAct(ActionEvent ae) {
// TODO Auto-generated method stub
String userName=userNameTextField.getText().toString();
String password=passwordTextField.getText().toString();
String jdbcName="com.mysql.cj.jdbc.Driver";
String dbUrl="jdbc:mysql://localhost:3306/MDB?characterEncoding=utf8";
String dbUserName="root";
String dbPassword="462813";
if(StringUtil.isEmpty(userName)){
System.out.println("用戶名不能為空");
return;
}
if(adminRadioButton.isSelected()==true) {
DBconnection dbutil=new DBconnection();
try {
dbutil.getCon();
System.out.println("數(shù)據(jù)庫連接成功!");
}catch (Exception e) {
e.printStackTrace();
System.out.println("數(shù)據(jù)庫連接失敗");
}
Connection conn = null;
try {
conn = DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sql="select * from permission3";
try {
Statement stat = conn.createStatement();
ResultSet rs = stat.executeQuery(sql);
while(rs.next()) {
if(userName.equals(rs.getString(1))) {
if(password.equals(rs.getString(2))) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
adminFrm.frame3 = new adminFrm();
adminFrm.frame3.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
frame.dispose();
}
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(teacherRadioButton.isSelected()==true) {
DBconnection dbutil1=new DBconnection();
try {
dbutil1.getCon();
System.out.println("數(shù)據(jù)庫連接成功!");
}catch (Exception e) {
e.printStackTrace();
System.out.println("數(shù)據(jù)庫連接失敗");
}
Connection conne = null;
try {
conne = DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sql1="select * from permission2";
try {
Statement state = conne.createStatement();
ResultSet rs1 = state.executeQuery(sql1);
while(rs1.next()) {
String temp=rs1.getString(1);
if(userName.equals(temp)) {
if(password.equals(rs1.getString(2))) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
teacherFrm.frame8 = new teacherFrm();
teacherFrm.frame8.setextend(temp);
teacherFrm.frame8.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
frame.dispose();
}
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(studentRadioButton.isSelected()==true) {
DBconnection dbutil2=new DBconnection();
try {
dbutil2.getCon();
System.out.println("數(shù)據(jù)庫連接成功!");
}catch (Exception e) {
e.printStackTrace();
System.out.println("數(shù)據(jù)庫連接失敗");
}
Connection conn2 = null;
try {
conn2 = DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sql2="select * from permission1";
try {
Statement stat2 = conn2.createStatement();
ResultSet rs2 = stat2.executeQuery(sql2);
while(rs2.next()) {
String temp1=rs2.getString(1);
String temp2=rs2.getString(2);
if(userName.equals(temp1)) {
if(password.equals(temp2)) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
studentFrm.frame7 = new studentFrm();
studentFrm.frame7.setextend(temp1);
studentFrm.frame7.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
frame.dispose();
}
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
數(shù)據(jù)庫添加操作
String t1=idtextField.getText().toString();
String t2=nametextField.getText().toString();
String t3=sextextField.getText().toString();
String t4=enterYearTextField.getText().toString();
String t5=enterAgeTextField.getText().toString();
String t6=classtextField.getText().toString();
String jdbcName="com.mysql.cj.jdbc.Driver";
String dbUrl="jdbc:mysql://localhost:3306/MDB?characterEncoding=utf8";
String dbUserName="root";
String dbPassword="462813";
if(studentNewRadioButton.isSelected()==true) {
DBconnection dbutil=new DBconnection();
try {
dbutil.getCon();
System.out.println("數(shù)據(jù)庫連接成功!");
}catch (Exception e) {
e.printStackTrace();
System.out.println("數(shù)據(jù)庫連接失敗");
}
Connection conn = null;
try {
conn = DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sql = "insert into student(SID,Sname,Sex,SchoolAge,SchoolYear,Class) values ('"
+t1+"','"+t2+"','"+t3+"','"+t4+"','"+t5+"','"+t6+"')" ;
try {
Statement stat = conn.createStatement();
int i = stat.executeUpdate(sql);
if (i>0) {
JOptionPane.showMessageDialog(null, "添加成功!", "關(guān)于添加操作",JOptionPane.INFORMATION_MESSAGE);
System.out.println("添加成功!");
}
else {
JOptionPane.showMessageDialog(null, "添加失敗,請(qǐng)檢查!", "關(guān)于添加操作", JOptionPane. ERROR_MESSAGE);
System.out.println("添加失敗!");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(teacherNewRadioButton.isSelected()==true) {
DBconnection dbutil=new DBconnection();
try {
dbutil.getCon();
System.out.println("數(shù)據(jù)庫連接成功!");
}catch (Exception e) {
e.printStackTrace();
System.out.println("數(shù)據(jù)庫連接失敗");
}
Connection conn = null;
try {
conn = DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sql = "insert into course(TID,Tname,Course) values ('"
+t1+"','"+t2+"','"+t3+"')" ;
try {
Statement stat = conn.createStatement();
int i = stat.executeUpdate(sql);
if (i>0) {
JOptionPane.showMessageDialog(null, "添加成功!", "關(guān)于添加操作",JOptionPane.INFORMATION_MESSAGE);
System.out.println("添加成功!");
}
else {
JOptionPane.showMessageDialog(null, "添加失敗,請(qǐng)檢查!", "關(guān)于添加操作", JOptionPane. ERROR_MESSAGE);
System.out.println("添加失??!");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(courseNewRadioButton.isSelected()==true) {
DBconnection dbutil=new DBconnection();
try {
dbutil.getCon();
System.out.println("數(shù)據(jù)庫連接成功!");
}catch (Exception e) {
e.printStackTrace();
System.out.println("數(shù)據(jù)庫連接失敗");
}
Connection conn = null;
try {
conn = DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sql = "insert into course(CID,Cname,TID,Credit,Grade,CancelYear) values ('"
+t1+"','"+t2+"','"+t3+"','"+t4+"','"+t5+"','"+t6+"')" ;
try {
Statement stat = conn.createStatement();
int i = stat.executeUpdate(sql);
if (i>0) {
JOptionPane.showMessageDialog(null, "添加成功!", "關(guān)于添加操作",JOptionPane.INFORMATION_MESSAGE);
System.out.println("添加成功!");
}
else {
JOptionPane.showMessageDialog(null, "添加失敗,請(qǐng)檢查!", "關(guān)于添加操作", JOptionPane. ERROR_MESSAGE);
System.out.println("添加失??!");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(chooseNewRadioButton.isSelected()==true) {
DBconnection dbutil=new DBconnection();
try {
dbutil.getCon();
System.out.println("數(shù)據(jù)庫連接成功!");
}catch (Exception e) {
e.printStackTrace();
System.out.println("數(shù)據(jù)庫連接失敗");
}
Connection conn = null;
try {
conn = DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sql = "insert into choose(SID,CID,TID,Score,ChooseYear) values ('"
+t1+"','"+t2+"','"+t3+"','"+t4+"','"+t5+"')" ;
try {
Statement stat = conn.createStatement();
int i = stat.executeUpdate(sql);
if (i>0) {
JOptionPane.showMessageDialog(null, "添加成功!", "關(guān)于添加操作",JOptionPane.INFORMATION_MESSAGE);
System.out.println("添加成功!");
}
else {
JOptionPane.showMessageDialog(null, "添加失敗,請(qǐng)檢查!", "關(guān)于添加操作", JOptionPane. ERROR_MESSAGE);
System.out.println("添加失??!");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
數(shù)據(jù)庫刪除操作
String id1=ID_1textField.getText().toString();
String id2=ID_2textField.getText().toString();
String jdbcName="com.mysql.cj.jdbc.Driver";
String dbUrl="jdbc:mysql://localhost:3306/MDB?characterEncoding=utf8";
String dbUserName="root";
String dbPassword="462813";
if(deleteStudentRadioButton.isSelected()==true) {
DBconnection dbutil=new DBconnection();
try {
dbutil.getCon();
System.out.println("數(shù)據(jù)庫連接成功!");
}catch (Exception e) {
e.printStackTrace();
System.out.println("數(shù)據(jù)庫連接失敗");
}
Connection conn = null;
try {
conn = DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sql = "delete from student where SID='"+id1+"'";
try {
Statement stat = conn.createStatement();
int i = stat.executeUpdate(sql);
if (i>0) {
JOptionPane.showMessageDialog(null, "刪除成功!", "關(guān)于刪除操作",JOptionPane.INFORMATION_MESSAGE);
System.out.println("刪除成功!");
}
else {
JOptionPane.showMessageDialog(null, "刪除失敗,請(qǐng)檢查!", "關(guān)于刪除操作", JOptionPane. ERROR_MESSAGE);
System.out.println("刪除失敗!");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(deleteTeacherRadioButton.isSelected()==true) {
DBconnection dbutil=new DBconnection();
try {
dbutil.getCon();
System.out.println("數(shù)據(jù)庫連接成功!");
}catch (Exception e) {
e.printStackTrace();
System.out.println("數(shù)據(jù)庫連接失敗");
}
Connection conn = null;
try {
conn = DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sql = "delete from teacher where TID='"+id1+"'";
try {
Statement stat = conn.createStatement();
int i = stat.executeUpdate(sql);
if (i>0) {
JOptionPane.showMessageDialog(null, "刪除成功!", "關(guān)于刪除操作",JOptionPane.INFORMATION_MESSAGE);
System.out.println("刪除成功!");
}
else {
JOptionPane.showMessageDialog(null, "刪除失敗,請(qǐng)檢查!", "關(guān)于刪除操作", JOptionPane. ERROR_MESSAGE);
System.out.println("刪除失?。?);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(deleteCourseRadioButton.isSelected()==true) {
DBconnection dbutil=new DBconnection();
try {
dbutil.getCon();
System.out.println("數(shù)據(jù)庫連接成功!");
}catch (Exception e) {
e.printStackTrace();
System.out.println("數(shù)據(jù)庫連接失敗");
}
Connection conn = null;
try {
conn = DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sql = "delete from course where CID='"+id1+"'";
try {
Statement stat = conn.createStatement();
int i = stat.executeUpdate(sql);
if (i>0) {
JOptionPane.showMessageDialog(null, "刪除成功!", "關(guān)于刪除操作",JOptionPane.INFORMATION_MESSAGE);
System.out.println("刪除成功!");
}
else {
JOptionPane.showMessageDialog(null, "刪除失敗,請(qǐng)檢查!", "關(guān)于刪除操作", JOptionPane. ERROR_MESSAGE);
System.out.println("刪除失敗!");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(deleteChooseRadioButton.isSelected()==true) {
DBconnection dbutil=new DBconnection();
try {
dbutil.getCon();
System.out.println("數(shù)據(jù)庫連接成功!");
}catch (Exception e) {
e.printStackTrace();
System.out.println("數(shù)據(jù)庫連接失敗");
}
Connection conn = null;
try {
conn = DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sql = "delete from choose where SID='"+id1+"'"+" and CID='"+id2+"'";
try {
Statement stat = conn.createStatement();
int i = stat.executeUpdate(sql);
if (i>0) {
JOptionPane.showMessageDialog(null, "刪除成功!", "關(guān)于刪除操作",JOptionPane.INFORMATION_MESSAGE);
System.out.println("刪除成功!");
}
else {
JOptionPane.showMessageDialog(null, "刪除失敗,請(qǐng)檢查!", "關(guān)于刪除操作", JOptionPane. ERROR_MESSAGE);
System.out.println("刪除失?。?);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
數(shù)據(jù)庫修改操作
String chooseColumn=chooseColumnTextField.getText().toString();
String userID=userIDtextField.getText().toString();
String alterValue=alterValueTextField.getText().toString();
String jdbcName="com.mysql.cj.jdbc.Driver";
String dbUrl="jdbc:mysql://localhost:3306/MDB?characterEncoding=utf8";
String dbUserName="root";
String dbPassword="462813";
if(studentRadioButton.isSelected()==true) {
DBconnection dbutil=new DBconnection();
try {
dbutil.getCon();
System.out.println("數(shù)據(jù)庫連接成功!");
}catch (Exception e) {
e.printStackTrace();
System.out.println("數(shù)據(jù)庫連接失敗");
}
Connection conn = null;
try {
conn = DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(chooseColumn.equals("2")) {chooseColumn="Sname";}
else if(chooseColumn.equals("3")) {chooseColumn="Sex";}
else if(chooseColumn.equals("4")) {chooseColumn="SchoolAge";}
else if(chooseColumn.equals("5")) {chooseColumn="SchoolYear";}
else if(chooseColumn.equals("6")) {chooseColumn="Class";}
String sql="update student set `"+chooseColumn+"`='"+alterValue+"' where `SID` = '"+userID+"'";
try {
Statement stat = conn.createStatement();
int i = stat.executeUpdate(sql);
if (i>0) {
JOptionPane.showMessageDialog(null, "修改成功!", "關(guān)于修改操作",JOptionPane.INFORMATION_MESSAGE);
System.out.println("修改成功!");
}
else {
JOptionPane.showMessageDialog(null, "修改失敗,請(qǐng)檢查!", "關(guān)于修改操作", JOptionPane. ERROR_MESSAGE);
System.out.println("修改失敗!");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(teacherNewRadioButton.isSelected()==true) {
DBconnection dbutil=new DBconnection();
try {
dbutil.getCon();
System.out.println("數(shù)據(jù)庫連接成功!");
}catch (Exception e) {
e.printStackTrace();
System.out.println("數(shù)據(jù)庫連接失敗");
}
Connection conn = null;
try {
conn = DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(chooseColumn.equals("2")) {chooseColumn="Tname";}
else if(chooseColumn.equals("3")) {chooseColumn="Course";}
String sql="update teacher set `"+chooseColumn+"`='"+alterValue+"' where `TID` = '"+userID+"'";
try {
Statement stat = conn.createStatement();
int i = stat.executeUpdate(sql);
if (i>0) {
JOptionPane.showMessageDialog(null, "修改成功!", "關(guān)于修改操作",JOptionPane.INFORMATION_MESSAGE);
System.out.println("修改成功!");
}
else {
JOptionPane.showMessageDialog(null, "修改失敗,請(qǐng)檢查!", "關(guān)于修改操作", JOptionPane. ERROR_MESSAGE);
System.out.println("修改失?。?);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(courseNewRadioButton.isSelected()==true) {
DBconnection dbutil=new DBconnection();
try {
dbutil.getCon();
System.out.println("數(shù)據(jù)庫連接成功!");
}catch (Exception e) {
e.printStackTrace();
System.out.println("數(shù)據(jù)庫連接失敗");
}
Connection conn = null;
try {
conn = DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(chooseColumn.equals("2")) {chooseColumn="Cname";}
else if(chooseColumn.equals("3")) {chooseColumn="TID";}
else if(chooseColumn.equals("4")) {chooseColumn="Credit";}
else if(chooseColumn.equals("5")) {chooseColumn="Grade";}
else if(chooseColumn.equals("6")) {chooseColumn="CancleYear";}
String sql="update course set `"+chooseColumn+"`='"+alterValue+"' where `CID` = '"+userID+"'";
try {
Statement stat = conn.createStatement();
int i = stat.executeUpdate(sql);
if (i>0) {
JOptionPane.showMessageDialog(null, "修改成功!", "關(guān)于修改操作",JOptionPane.INFORMATION_MESSAGE);
System.out.println("修改成功!");
}
else {
JOptionPane.showMessageDialog(null, "修改失敗,請(qǐng)檢查!", "關(guān)于修改操作", JOptionPane. ERROR_MESSAGE);
System.out.println("修改失?。?);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(courseNewRadioButton.isSelected()==true) {
DBconnection dbutil=new DBconnection();
try {
dbutil.getCon();
System.out.println("數(shù)據(jù)庫連接成功!");
}catch (Exception e) {
e.printStackTrace();
System.out.println("數(shù)據(jù)庫連接失敗");
}
Connection conn = null;
try {
conn = DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(chooseColumn.equals("2")) {chooseColumn="Cname";}
else if(chooseColumn.equals("3")) {chooseColumn="TID";}
else if(chooseColumn.equals("4")) {chooseColumn="Credit";}
else if(chooseColumn.equals("5")) {chooseColumn="Grade";}
else if(chooseColumn.equals("6")) {chooseColumn="CancleYear";}
String sql="update course set `"+chooseColumn+"`='"+alterValue+"' where `CID` = '"+userID+"'";
try {
Statement stat = conn.createStatement();
int i = stat.executeUpdate(sql);
if (i>0) {
JOptionPane.showMessageDialog(null, "修改成功!", "關(guān)于修改操作",JOptionPane.INFORMATION_MESSAGE);
System.out.println("修改成功!");
}
else {
JOptionPane.showMessageDialog(null, "修改失敗,請(qǐng)檢查!", "關(guān)于修改操作", JOptionPane. ERROR_MESSAGE);
System.out.println("修改失?。?);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(chooseNewRadioButton.isSelected()==true) {
DBconnection dbutil=new DBconnection();
try {
dbutil.getCon();
System.out.println("數(shù)據(jù)庫連接成功!");
}catch (Exception e) {
e.printStackTrace();
System.out.println("數(shù)據(jù)庫連接失敗");
}
Connection conn = null;
try {
conn = DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(chooseColumn.equals("1")) {chooseColumn="SID";}
else if(chooseColumn.equals("2")) {chooseColumn="CID";}
else if(chooseColumn.equals("3")) {chooseColumn="TID";}
else if(chooseColumn.equals("4")) {chooseColumn="Score";}
else if(chooseColumn.equals("5")) {chooseColumn="ChooseYear";}
String sql="update choose set `"+chooseColumn+"`='"+alterValue+"' where `CID` = '"+userID+"'";
try {
Statement stat = conn.createStatement();
int i = stat.executeUpdate(sql);
if (i>0) {
JOptionPane.showMessageDialog(null, "修改成功!", "關(guān)于修改操作",JOptionPane.INFORMATION_MESSAGE);
System.out.println("修改成功!");
}
else {
JOptionPane.showMessageDialog(null, "修改失敗,請(qǐng)檢查!", "關(guān)于修改操作", JOptionPane. ERROR_MESSAGE);
System.out.println("修改失??!");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
七、小坑避免
在我寫登錄界面時(shí),是用ResultSet對(duì)數(shù)據(jù)庫數(shù)據(jù)進(jìn)行訪問,
Statement state = conne.createStatement();
ResultSet rs1 = state.executeQuery(sql1);
while(rs1.next()) {
String temp=rs1.getString(1);
if(userName.equals(temp)) {
if(password.equals(rs1.getString(2))) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
teacherFrm.frame8 = new teacherFrm();
teacherFrm.frame8.setextend(temp);
teacherFrm.frame8.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
frame.dispose();
}
}
}
這里如果不用temp對(duì)rs1.getString(1)進(jìn)行替換而是直接是用的話就會(huì)報(bào)錯(cuò)。原因目前我也不大清楚,希望有大佬可以給予講解。
在頁面跳轉(zhuǎn)中,我看了網(wǎng)上教程,都感覺有點(diǎn)云里霧里。我這里推薦一個(gè)比較簡(jiǎn)單的操作方式,在每個(gè)JavaSwing界面都加上一個(gè)public公有成員。以本項(xiàng)目為例,如果我們要實(shí)現(xiàn)LoginFrm(登錄界面)和adminFrm(管理員界面)的跳轉(zhuǎn),我們只需要在LoginFrm中加入public static LoginFrm frame;
公有成員以及public static void LoginFrmClose()
公有函數(shù)
public class LoginFrm extends JFrame {
private JPanel contentPane;
private JTextField userNameTextField;
private JTextField passwordTextField;
private JRadioButton adminRadioButton;
private JRadioButton teacherRadioButton;
private JRadioButton studentRadioButton;
public static LoginFrm frame;
private final Action action = new SwingAction();
/**
* Launch the application.
*/
public static void LoginFrmClose() {
frame.dispose();
}
而在adminFrm中加入public static adminFrm frame3;
公有成員和public static void adminFrmClose()
公有函數(shù)
public class adminFrm extends JFrame {
private JPanel contentPane;
private JTextField nameTextField;
private JTextField idtextField;
private JTextPane textPane;
public static adminFrm frame3;
public static void adminFrmClose() {
frame3.dispose();
}
在控制另一個(gè)界面打開時(shí),這個(gè)界面就關(guān)閉。我們采取一下代碼
\\關(guān)閉adminFrm,打開LoginFrm,實(shí)現(xiàn)adminFrm中退出功能
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
LoginFrm.frame = new LoginFrm();
LoginFrm.frame.setVisible(true);
frame3.adminFrmClose();
} catch (Exception e) {
e.printStackTrace();
}
}
});
\\關(guān)閉LoginFrm,打開adminFrm,實(shí)現(xiàn)LoginFrm中管理員登錄功能
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
adminFrm.frame3 = new adminFrm();
adminFrm.frame3.setVisible(true);
frame.dispose();
} catch (Exception e) {
e.printStackTrace();
}
}
});
而此項(xiàng)目還未完成是因?yàn)闊o法處理較大量的數(shù)據(jù),只適用于應(yīng)付DDL,如果需要的話可以自行在achievementStatic.java的classScoreNewButton按鈕監(jiān)聽時(shí)間中用String鏈表替換String。文章來源:http://www.zghlxwxcb.cn/news/detail-438344.html
測(cè)試數(shù)據(jù)
use MDB;
alter table choose NOCHECK constraint all;
alter table student NOCHECK constraint all;
alter table course NOCHECK constraint all;
alter table teacher NOCHECK constraint all;
alter table choose DISABLE trigger all;
alter table student DISABLE trigger all;
alter table course DISABLE trigger all;
alter table teacher DISABLE trigger all;
insert into Student values('1561401613',N'毛挺','男','18','2015',N'計(jì)聯(lián)');
insert into Student values('1530561331',N'談力','男','18','2015',N'計(jì)聯(lián)');
insert into Student values('1530501085',N'晁陽','男','19','2015',N'計(jì)聯(lián)');
insert into Student values('1530591376',N'韓梅梅','女','17','2015',N'計(jì)科');
insert into Course values('1008060',N'算法','10001',2,'2','2019');
insert into Course values('1203006',N'計(jì)組','10003',1,'2','2018');
insert into Course values('3009405',N'java','20010',2,'1','2020');
insert into Course values('7787564',N'經(jīng)濟(jì)學(xué)','35790',1,'1','2020');
insert into Teacher values('10001',N'顏老師',N'算法');
insert into Teacher values('10003',N'毛老師',N'計(jì)組');
insert into Teacher values('20010',N'張老師',N'java');
insert into Teacher values('35790',N'田老師',N'經(jīng)濟(jì)學(xué)');
insert into Choose values('1561401613','1008060','10001',95,null);
insert into Choose values('1561401613','1203006','10003',92,null);
insert into Choose values('1561401613','3009405','20010',94,null);
insert into Choose values('1530561331','1008060','10001',96,null);
insert into Choose values('1530561331','1203006','10003',88,null);
insert into Choose values('1530591376','1203006','10003',94,null);
insert into Choose values('1530591376','3009405','20010',92,null);
insert into Permission1 values('1561401613','111111');
insert into Permission1 values('1530561331','222222');
insert into Permission1 values('1530501085','333333');
insert into Permission1 values('1530591376','444444');
insert into Permission2 values('10001','555555');
insert into Permission2 values('10003','666666');
insert into Permission2 values('30405','777777');
insert into Permission2 values('35790','888888');
insert into Permission3 values('24680','100000');
select * from choose;
select * from Student;
select * from Teacher;
select * from Course;
select * from Permission1;
select * from Permission2;
select * from Permission3;
第一次做有關(guān)項(xiàng)目可能結(jié)構(gòu)不是很好,地址在這
https://download.csdn.net/download/qq_50062694/85322004文章來源地址http://www.zghlxwxcb.cn/news/detail-438344.html
到了這里,關(guān)于Eclipse+MySql+JavaSwing(WindowBuilder)學(xué)生管理系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!