JAVA加上界面實作JDBC資料庫的增刪改
一、首先下載MySQL資料庫
輸入網址:
https://downloads.mysql.com/archives/community/
請求下載頁,然后在出現的頁面中選擇Windows (x86, 64-bit), ZIP Archive 8.0.15(184.1M),然后單擊Download(下載)按鈕,
下載完解壓后如同所示:

首次啟動之前必須進行安全初始化,必須用管理員身份啟動命令列視窗找到cmd.exe(window+r打開),然后在命令列進入MySQL安裝目錄的bin子目錄,鍵入
mysqld --initialize-insecure
命令,回車確認,
初始化后,必須用管理員身份啟動命令列視窗,然后進入MySQL安裝目錄的bin子目錄下鍵入:
mysqld 或 mysqld -nt
回車確認,啟動MySQL資料庫服務器



二、下載navicat for mysql
下載鏈接:http://www.navicat.com.cn/download/navicat-for-mysql
下載完之后,打開軟體,記住使用軟體時前面打開的cmd.exe不要關掉
新建連接:

輸入你取的連接名,再把你前面設的root的密碼輸入,點擊連接測驗
如果出現如下畫面,表示連接成功,然后點擊確定,

要是出現如下情況:

解決方案如下:
1.打開命令列cmd,進入MySQL的bin目錄,然后輸入mysql -u root -p,輸入密碼
2.然后輸入
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘password(這是指你的原先的密碼)’ PASSWORD EXPIRE NEVER; #修改加密規則
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password(你想要改為的密碼)’; #更新一下用戶的密碼
FLUSH PRIVILEGES; #重繪權限
3.輸入剛剛修改的密碼,再次測驗連接,驚喜地發現連接成功
三、下載JDBC-MySQL資料庫連接器
下載鏈接:https://downloads.mysql.com/archives/c-j/
這里我選擇的是8.0.15版本
下載完成后解壓到自己想要的目錄下
四、開始創建專案
java專案檔案夾:

1.使用mysql創建資料庫:
create database student;//創建資料庫
//創建表
CREATE TABLE IF NOT EXISTS student(
StuID int(11) NOT NULL ,
Cid int(11) NOT NULL,
Sname varchar(20) NOT NULL,
Sex char(2) NOT NULL,
PRIMARY KEY (StuID));
//插入值
INSERT INTO student (StuID, Cid, Sname, Sex) VALUES
(1, '2', '張梅', '女'),
(2, '3', '王蘭', '女'),
(3, '4', '李竹', '男'),
(4, '5', '趙菊', '女');
2.使用Eclipse匯入jar包并創建連接;
創建一個java專案,我這里專案名稱為A,首先建一個空的檔案夾lib,將下載的JDBC-MySQL資料庫連接器復制到檔案夾里(我這里是
)
然后右鍵-Build Path–Add External Archiver–選擇JDBC驅動jar的存放位置–點擊確定;
我這里使用包名為org.clarck.jdbc(你們可以自己定義包名)
DataSource.java(連接資料庫)
package org.claarck.jdbc;
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 DataSource {
public static Connection getConnection() {// 用這個方法獲取mysql的連接
Connection conn = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");// 加載驅動類
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student?useUnicode = true&characterEncoding = utf-8&useSSL = false&serverTimezone = GMT", "root", "password");
// (url資料庫的IP地址,user資料庫用戶名,password資料庫密碼)
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
public void close(Connection con, Statement st, ResultSet rs) throws ClassNotFoundException, SQLException{
if(rs != null) {
rs.close();
}
if(st != null) {
st.close();
}
if(con != null) {
con.close();
}
}
public static void main(String[] args) {// 測驗資料庫是否連接成功的方法
Connection conn = DataSource.getConnection();
System.out.println(conn);
}
}
這段代碼老師給的是下面這段,但是在我的電腦上運行出錯你們可以試試
package org.clarck.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException
;import java.sql.Statement;
public class DataSource {
private final String url = "jdbc:mysql://localhost:3306/student?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&rewriteBatchedStatements=true";
private final String user = "root";
private final String password = "password";
//定義一個資料庫的鏈接變數用于存放物件
public Connection getCon() throws ClassNotFoundException, SQLException{
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con = DriverManager.getConnection(url,user,password);
return con;
}
public void close(Connection con, Statement st, ResultSet rs) throws ClassNotFoundException, SQLException{
if(rs != null) {
rs.close();
}
if(st != null) {
st.close();
}
if(con != null) {
con.close();
}
}
}
Student.java(物體類,為了便于操作)
package org.claarck.jdbc;
public class Student {
private int sid; // 學生編號
private String name; // 姓名
private String sex; // 性別
private int cid; // 班級編號
public Student() {
}
// 用于添加使用
public Student(String name, String sex, int cid) {
super();
this.name = name;
this.sex = sex;
this.cid = cid;
}
// 用于修改使用
public Student(int sid, String name, String sex, int cid) {
super();
this.sid = sid;
this.name = name;
this.sex = sex;
this.cid = cid;
}
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getCid() {
return cid;
}
public void setCid(int cid) {
this.cid = cid;
}
}
StudentDAO.java(用于操作資料庫的增刪改查)
package org.claarck.jdbc;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class StudentDAO extends DataSource {
// 添加的方法
public void add(Student student) throws ClassNotFoundException, SQLException {
Connection con = null;
PreparedStatement ps = null; // 預編譯物件
String sql = "insert into Student(cid, sname, sex) values(?,?,?)";
try {
con = this.getConnection();
ps = con.prepareStatement(sql);
// 設定占位符對應的引數
ps.setInt(1, student.getCid());
ps.setString(2, student.getName());
ps.setString(3, student.getSex());
ps.executeUpdate();
} finally {
this.close(con, ps, null);
}
}
// 修改
public void update(Student student) throws ClassNotFoundException, SQLException {
Connection con = null;
PreparedStatement ps = null; // 預編譯物件
String sql = "update Student set Cid = ?, Sname = ?, Sex = ? where StuID = ?";
try {
con = this.getConnection();
ps = con.prepareStatement(sql);
// 設定占位符對應的引數
ps.setInt(1, student.getCid());
ps.setString(2, student.getName());
ps.setString(3, student.getSex());
ps.setInt(4, student.getSid());
ps.executeUpdate();
} finally {
this.close(con, ps, null);
}
}
// 洗掉
public Student delete(int sid) throws ClassNotFoundException, SQLException {
Connection con = null;
PreparedStatement ps = null; // 預編譯物件
ResultSet rs = null;
String sql = "delete from Student where StuID = ?";
String sql1 = "select * from Student where StuID = ?";
Student s = null;
try {
con = this.getConnection();
ps = con.prepareStatement(sql1);
// 設定占位符對應的引數
ps.setInt(1, sid);
rs = ps.executeQuery();
while (rs.next()) {
s = new Student(rs.getInt(1), rs.getString(3), rs.getString(4), rs.getInt(2));
}
ps = con.prepareStatement(sql);
// 設定占位符對應的引數
ps.setInt(1, sid);
ps.executeUpdate();
} finally {
this.close(con, ps, null);
return s;
}
}
// 查詢
public List<Student> findAll() throws ClassNotFoundException, SQLException {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
List<Student> list = new ArrayList<Student>();
String sql = "select * from Student";
try {
con = this.getConnection();
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
Student s = new Student(rs.getInt(1), rs.getString(3), rs.getString(4), rs.getInt(2));
list.add(s);
}
} finally {
this.close(con, ps, rs);
}
return list;
}
public Student findByName(String name) throws ClassNotFoundException, SQLException {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
String sql = "select * from Student where Sname = ?";
Student s = null;
try {
con = this.getConnection();
ps = con.prepareStatement(sql);
ps.setString(1, name);
rs = ps.executeQuery();
while (rs.next()) {
s = new Student(rs.getInt(1), rs.getString(3), rs.getString(4), rs.getInt(2));
}
} finally {
this.close(con, ps, rs);
}
return s;
}
}
yemian.java(建立視窗,從視窗打開)
package org.claarck.jdbc;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.SQLException;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
public class yemian extends JFrame {
public yemian() {
init();// 初始化界面
}
void init() {
JFrame f = new JFrame("學生");// 創建一個視窗
Container con = f.getContentPane();
con.setBackground(Color.white);
//con.setLayout(new FlowLayout());//流布局
f.setBounds(500, 100, 380, 450);// 設定視窗大小
f.setLocationRelativeTo(null);// 把視窗設定到螢屏中心
f.setLayout(new FlowLayout());//浮動布局
f.setVisible(true);// 顯示視窗
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton add = new JButton("增加");// 創建增加按鈕
add.setBounds(50, 300, 60, 25);// 設定按鈕大小
JButton delete = new JButton("洗掉");// 創建洗掉按鈕
delete.setBounds(120, 300, 60, 25);
JButton update = new JButton("修改");// 創建修改按鈕
update.setBounds(190, 300, 60, 25);
JButton find = new JButton("按名字查詢");// 創建按名字查詢按鈕
find.setBounds(50, 330, 100, 25);
JButton findall = new JButton("查詢所有");// 創建查詢所有按鈕
findall.setBounds(160, 330, 90, 25);
JButton b = new JButton("");// 多設定一個按鈕其他按鈕可以顯示不被遮擋
b.setContentAreaFilled(false);// 是否填充
b.setBorderPainted(false);// 是否畫邊框
b.setEnabled(false);// 不可按
f.add(add);
f.add(delete);
f.add(find);
f.add(update);
f.add(findall);
f.add(b);
JTextArea area = new JTextArea();
area.setBounds(350, 150, 300, 150);
JScrollPane jsp = new JScrollPane(area);
try {
Student student = new Student();
StudentDAO dao = new StudentDAO();
List<Student> list = new ArrayList<Student>();
list = dao.findAll();
area.append("| StuID" + "\t" + "| Cid" + "\t" + "| Sname" + "\t" + "| Sex |\n");
area.append("|---------------------|---------------------|----------------------|-------|\n");
for (Student Student : list) {
area.append("| " + Student.getSid() + "\t| " + Student.getCid() + "\t| " + Student.getName()
+ "\t| " + Student.getSex() + " |\t" + "\n");
area.append("|---------------------|---------------------|----------------------|-------|\n");
}
} catch (Exception e2) {
}
f.add(area);
add.addActionListener(new AbstractAction() {// 添加按鈕的點擊事件監聽器
@Override
public void actionPerformed(ActionEvent e) {
f.setVisible(false);
TestAdd d = new TestAdd();
}
});
delete.addActionListener(new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
f.setVisible(false);
TestDelete d = new TestDelete();
}
});
update.addActionListener(new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
f.setVisible(false);
TestUpdate d = new TestUpdate();
}
});
find.addActionListener(new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
f.setVisible(false);
TestFindByName d = new TestFindByName();
}
});
findall.addActionListener(new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
f.setVisible(false);
TestFindAll d = new TestFindAll();
}
});
}
}
TestAdd.java(用于資料庫的增加)
package org.claarck.jdbc;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class TestAdd {
public TestAdd() {
init();// 添加資訊界面初始化
}
void init() {
JFrame f = new JFrame("添加學生資訊");// 添加學生資訊的視窗
f.setLayout(null);
f.setBounds(500, 100, 700, 540);// 視窗大小
f.setLocationRelativeTo(null);// 把視窗設定到螢屏中心
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);// 顯示視窗
JLabel Cid = new JLabel("Cid:");// 創建文本
Cid.setBounds(250, 150, 100, 25);
f.add(Cid);
JLabel Sname = new JLabel("Sname:");
Sname.setBounds(250, 200, 100, 25);
f.add(Sname);
JLabel Sex = new JLabel("Sex:");
Sex.setBounds(250, 250, 100, 25);
f.add(Sex);
JTextField 班級 = new JTextField();// 創建文本框
班級.setBounds(320, 150, 150, 25);
f.add(班級);
JTextField 姓名 = new JTextField();
姓名.setBounds(320, 200, 150, 25);
f.add(姓名);
JTextField 性別 = new JTextField();
性別.setBounds(320, 250, 150, 25);
f.add(性別);
JButton add = new JButton("確定添加");
add.setBounds(350, 350, 90, 25);
f.add(add);
add.addActionListener(new ActionListener() {// 設定添加的監聽事件
@Override
public void actionPerformed(ActionEvent e) {
try {
String name = 姓名.getText();
String sex = 性別.getText();
Integer cid = Integer.parseInt(班級.getText());
Student student = new Student(name, sex, cid);
StudentDAO dao = new StudentDAO();
try {
dao.add(student);
JOptionPane.showMessageDialog(f, "添加完成");
f.setVisible(false);
yemian run = new yemian();
} catch (ClassNotFoundException | SQLException e1) {
e1.printStackTrace();
} finally {
System.out.println("發生了添加事件");
}
} catch (Exception e2) {
JOptionPane.showMessageDialog(f, "添加失敗");
f.setVisible(false);
yemian run = new yemian();
}
}
});
}
}
TestDelete.java(用于資料庫的洗掉)
package org.claarck.jdbc;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class TestDelete {
public TestDelete() {
init();// 洗掉資訊界面初始化
}
void init() {
JFrame f = new JFrame("洗掉學生資訊");// 洗掉學生資訊的視窗
f.setLayout(null);
f.setBounds(500, 100, 700, 640);// 視窗大小
f.setLocationRelativeTo(null);// 把視窗設定到螢屏中心
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);// 顯示視窗
JLabel Sid = new JLabel("Sid(要洗掉學生的學號):");// 創建文本
Sid.setBounds(150, 100, 170, 25);
f.add(Sid);
JTextField 學號 = new JTextField();// 創建文本框
學號.setBounds(320, 100, 150, 25);
f.add(學號);
JButton delete = new JButton("確定洗掉");
delete.setBounds(350, 350, 90, 25);
f.add(delete);
delete.addActionListener(new ActionListener() {// 設定洗掉的監聽事件
@Override
public void actionPerformed(ActionEvent e) {
try {
Integer sid = Integer.parseInt(學號.getText());
Student student = new Student();
StudentDAO dao = new StudentDAO();
try {
student = dao.delete(sid);
if (student != null) {
JOptionPane.showMessageDialog(f, "洗掉完成");
f.setVisible(false);
yemian run = new yemian();
}
else {
JOptionPane.showMessageDialog(f, "洗掉失敗");
f.setVisible(false);
yemian run = new yemian();
}
} catch (ClassNotFoundException | SQLException e1) {
e1.printStackTrace();
} finally {
System.out.println("發生了洗掉事件");
}
} catch (Exception e2) {
JOptionPane.showMessageDialog(f, "洗掉失敗");
f.setVisible(false);
yemian run = new yemian();
}
}
});
}
}
TestUpdate.java(用于資料庫的修改)
package org.claarck.jdbc;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class TestUpdate {
public TestUpdate() {
init();// 修改資訊界面初始化
}
void init() {
JFrame f = new JFrame("修改學生資訊");// 修改學生資訊的視窗
f.setLayout(null);
f.setBounds(500, 100, 700, 640);// 視窗大小
f.setLocationRelativeTo(null);// 把視窗設定到螢屏中心
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);// 顯示視窗
JLabel Sid = new JLabel("Sid(輸入要修改學生的學號):");// 創建文本
Sid.setBounds(150, 100, 170, 25);
f.add(Sid);
JLabel Cid = new JLabel("Cid(將班級改為):");// 創建文本
Cid.setBounds(150, 150, 170, 25);
f.add(Cid);
JLabel Sname = new JLabel("Sname(將姓名改為):");
Sname.setBounds(150, 200, 170, 25);
f.add(Sname);
JLabel Sex = new JLabel("Sex(將性別改為):");
Sex.setBounds(150, 250, 170, 25);
f.add(Sex);
JTextField 學號 = new JTextField();// 創建文本框
學號.setBounds(320, 100, 150, 25);
f.add(學號);
JTextField 班級 = new JTextField();// 創建文本框
班級.setBounds(320, 150, 150, 25);
f.add(班級);
JTextField 姓名 = new JTextField();
姓名.setBounds(320, 200, 150, 25);
f.add(姓名);
JTextField 性別 = new JTextField();
性別.setBounds(320, 250, 150, 25);
f.add(性別);
JButton update = new JButton("確定修改");
update.setBounds(350, 350, 90, 25);
f.add(update);
update.addActionListener(new ActionListener() {// 設定修改的監聽事件
@Override
public void actionPerformed(ActionEvent e) {
try {
String name = 姓名.getText();
String sex = 性別.getText();
Integer sid = Integer.parseInt(學號.getText());
Integer cid = Integer.parseInt(班級.getText());
Student student = new Student(sid,name, sex, cid);
StudentDAO dao = new StudentDAO();
try {
dao.update(student);
JOptionPane.showMessageDialog(f, "修改完成");
f.setVisible(false);
yemian run = new yemian();
} catch (ClassNotFoundException | SQLException e1) {
e1.printStackTrace();
} finally {
System.out.println("發生了修改事件");
}
} catch (Exception e2) {
JOptionPane.showMessageDialog(f, "修改失敗");
f.setVisible(false);
yemian run = new yemian();
}
}
});
}
}
TestFindAll.java(用于資料庫的查詢)
package org.claarck.jdbc;
import javax.swing.*;
import com.mysql.cj.xdevapi.Statement;
import java.awt.*;
import java.sql.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
public class TestFindAll {
public TestFindAll() {
init();// 查詢資訊界面初始化
}
void init() {
JFrame f = new JFrame("查詢所有學生資訊");// 查詢所有學生資訊的視窗
f.setBounds(500, 100, 380, 450);// 視窗大小
f.setLayout(new FlowLayout());
f.setLocationRelativeTo(null);// 把視窗設定到螢屏中心
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);// 顯示視窗
try {
Student student = new Student();
StudentDAO dao = new StudentDAO();
List<Student> list = new ArrayList<Student>();
list = dao.findAll();
JTextArea area = new JTextArea();
area.setBounds(50, 150, 300, 150);
JScrollPane jsp = new JScrollPane(area);
area.append("| StuID" + "\t" + "| Cid" + "\t" + "| Sname" + "\t" + "| Sex |\n");
area.append("|---------------------|---------------------|----------------------|-------|\n");
for (Student Student : list) {
area.append("| " + Student.getSid() + "\t| " + Student.getCid() + "\t| " + Student.getName()
+ "\t| " + Student.getSex() + " |\t" + "\n");
area.append("|---------------------|---------------------|----------------------|-------|\n");
}
f.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
}
});
JButton findall = new JButton("回傳");
findall.setBounds(100, 340, 100, 25);
f.add(area);
f.add(findall);
findall.addActionListener(new ActionListener() {// 設定查詢的監聽事件
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(f,"查詢完成");
f.setVisible(false);
yemian run = new yemian();
}
});
} catch (Exception e2) {
JOptionPane.showMessageDialog(f,"查詢失敗");
f.setVisible(false);
yemian run = new yemian();
}
}
}
TestFindByName.java(用于資料庫的條件查詢)
package org.claarck.jdbc;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class TestFindByName {
public TestFindByName() {
init();// 查詢資訊界面初始化
}
void init() {
JFrame f = new JFrame("查詢學生資訊");// 查詢學生資訊的視窗
f.setLayout(null);
f.setBounds(500, 100, 700, 640);// 視窗大小
f.setLocationRelativeTo(null);// 把視窗設定到螢屏中心
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);// 顯示視窗
JLabel Sname = new JLabel("Sname:");// 創建文本
Sname.setBounds(250, 100, 100, 25);
f.add(Sname);
JTextField 姓名 = new JTextField();// 創建文本框
姓名.setBounds(320, 100, 150, 25);
f.add(姓名);
JButton sel = new JButton("確定查詢");
sel.setBounds(350, 350, 90, 25);
f.add(sel);
JFrame f1 = new JFrame("查詢學生資訊");// 查詢學生資訊的視窗
f1.setLayout(null);
f1.setBounds(280, 100, 380, 330);// 視窗大小
f1.setLayout(new FlowLayout());
f1.setLocationRelativeTo(null);// 把視窗設定到螢屏中心
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
sel.addActionListener(new ActionListener() {// 設定查詢的監聽事件
@Override
public void actionPerformed(ActionEvent e) {
try {
String sname = 姓名.getText();
Student Student = new Student();
StudentDAO dao = new StudentDAO();
try {
Student = dao.findByName(sname);
f.setVisible(false);
f1.setVisible(true);// 顯示視窗
JTextArea area = new JTextArea();
area.setBounds(30, 50, 300, 150);
JScrollPane jsp = new JScrollPane(area);
area.append("| StuID" + "\t" + "| Cid" + "\t" + "| Sname" + "\t" + "| Sex |\n");
area.append("|---------------------|---------------------|----------------------|-------|\n");
area.append("| " + Student.getSid() + "\t| " + Student.getCid() + "\t| "
+ Student.getName() + "\t| " + Student.getSex() + " |\t" + "\n");
area.append("|---------------------|---------------------|----------------------|-------|\n");
JButton findall = new JButton("回傳");
findall.setBounds(100, 240, 100, 25);
f1.add(area);
f1.add(findall);
findall.addActionListener(new ActionListener() {// 設定查詢的監聽事件
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(f, "查詢完成");
f1.setVisible(false);
yemian run = new yemian();
}
});
} catch (ClassNotFoundException | SQLException e1) {
e1.printStackTrace();
} finally {
System.out.println("發生了查詢事件");
}
} catch (Exception e2) {
JOptionPane.showMessageDialog(f1, "查詢失敗");
f1.setVisible(false);
yemian run = new yemian();
}
}
});
}
}
Test.java(主函式)
package org.claarck.jdbc;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
yemian y = new yemian();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/231988.html
標籤:其他
