Java+Mysql学⽣管理系统源码
最近正在学java和数据库,想起以前写的学⽣管理系统,都是从⽹上下载,敷衍了事。闲来⽆事,也就⾃⼰写了⼀个,不过功能实现的不是很多。
开发语⾔:java;开发环境:Mysql, java;开发⼯具:eclipse
开发此案例,⾸先得在电脑上有java开发环境和Mysql, java开发环境与Mysql的搭建,就不再叙述了,如果需要,请联系我最下⾯的联系⽅式:dingyelf@aliyun
此次系统⽐较简易:数据库中只有⼀个表:stu;功能:能够对学⽣增加、删除、修改。
开发步骤:
1.在数据库中建表:
create table stu(
stuId String,
stuName String,
stuSex String,
stuAge int,
stuJG String,
stuDept Sring
);
2.java 代码主要由四个类组成:
Test3包含主函数;StuModel⽤来刷新、呈现数据库;StuAddDiag⽤来实现增添读者功能;StuUpDiag是修改学⽣信息。具体代码如下:
Test3.java:
import javax.swing.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
public class Test3 extends JFrame implements ActionListener {
//定义⼀些控件
JPanel jp1,jp2;
JLabel jl1,jl2;
JButton jb1,jb2,jb3,jb4;
JTable jt;
JScrollPane jsp;
JTextField jtf;
StuModel sm;
//定义连接数据库的变量
Statement stat = null;
PreparedStatement ps;
Connection ct = null;
ResultSet rs = null;
public static void main(String[] args){
Test3 test3 = new Test3();
}
//构造函数
public Test3(){
jp1 = new JPanel();
jtf = new JTextField(10);
jb1 = new JButton("查询");
jb1.addActionListener(this);
jl1 = new JLabel("请输⼊名字:");
jp1.add(jl1);
jp1.add(jtf);
jp1.add(jb1);
jb2 = new JButton("添加");
jb2.addActionListener(this);
jb3 = new JButton("修改");
jb3.addActionListener(this);
jb4 = new JButton("删除");
jb4.addActionListener(this);
jp2 = new JPanel();
jp2.add(jb2);
jp2.add(jb3);
jp2.add(jb4);
/
/创建模型对象
sm = new StuModel();
//初始化
jt = new JTable(sm);
jsp = new JScrollPane(jt);
//将jsp放⼊到jframe中
this.add(jsp);
this.add(jp1,"North");
this.add(jp2,"South");
this.setSize(600, 400);
//this.setLocation(300, 200);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public void actionPerformed(ActionEvent arg0) {
//判断是哪个按钮被点击
Source() == jb1){
System.out.println("⽤户希望被查询...");
//因为把对表的数据封装到StuModel中,可以⽐较简单的完成查询
String name = Text().trim();
//写⼀个sql语句
String sql = "select * from stu where stuName = '"+name+"' ";
/
/构建⼀个数据模型类,并更新
sm = new StuModel(sql);
//更新jtable
jt.setModel(sm);
}
//⼀、弹出添加界⾯
else Source() == jb2){
System.out.println("添加...");
StuAddDiag sa = new StuAddDiag(this,"添加学⽣",true);
//重新再获得新的数据模型,
sm = new StuModel();
jt.setModel(sm);
}else Source() == jb4){
//⼆、删除记录
//1.得到学⽣的ID
int rowNum = SelectedRow();//getSelectedRow会返回给⽤户点中的⾏ //如果该⽤户⼀⾏都没有选,就返回-1
if(rowNum == -1){
//提⽰
JOptionPane.showMessageDialog(this, "请选中⼀⾏");
return ;
}
//得到学术ID
String stuId = (ValueAt(rowNum, 0);
System.out.println("Id: "+stuId);
//连接数据库,完成删除任务
try{
//1.加载驱动
Class.forName("sql.jdbc.Driver");
//2.连接数据库
String url = "jdbc:mysql://localhost:3306/spdb1";
String user = "root";
String passwd = "lfdy";
ct = Connection(url, user, passwd);
System.out.println("连接成功");
ps = ct.prepareStatement("delete from stu where stuId = ?");
ps.setString(1,stuId);
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(rs!= null){
rs.close();
rs = null;
}
if(ps!= null){
ps.close();
ps = null;
}
if(ct != null){
ct.close();
ct = null;
}
} catch(Exception e){
e.printStackTrace();
}
}
sm = new StuModel();
//更新jtable
jt.setModel(sm);
}else Source() == jb3){
System.out.println("11111");
//三、⽤户希望修改
int rowNum = SelectedRow();
if(rowNum == -1){
//提⽰
JOptionPane.showMessageDialog(this, "请选择⼀⾏");
return ;
}
//显⽰对话框
System.out.println( "12435");
StuUpDiag su = new StuUpDiag(this, "修改学术", true, sm, rowNum); sm = new StuModel();
jt.setModel(sm);
}
}
}
StuModel.java:
/
*
* 这是我的⼀个stu表的模型
* 可以把对学⽣表的操作全都封装到这个类
*/
st2;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Vector;
import javax.swing.table.*;
public class StuModel extends AbstractTableModel{
//rowData存放⾏数据,columnNames存放列名
Vector rowData,columnNames;
//定义连接数据库的变量
Statement stat = null;
Connection ct = null;
ResultSet rs = null;
//初始化
public void init(String sql){
if(sql.equals("")){
sql = "select * from stu";
}
//中间
//设置列名
columnNames = new Vector();
columnNames.add("学号");
columnNames.add("名字");
columnNames.add("性别");
columnNames.add("年龄");
columnNames.add("籍贯");
columnNames.add("门派");
//rowData存放多⾏
rowData = new Vector();
java库try{
//1.加载驱动
Class.forName("sql.jdbc.Driver");
System.out.println("加载成功");
//2.连接数据库
//定义⼏个常量
String url = "jdbc:mysql://localhost:3306/spdb1";
String user = "root";
String passwd = "lfdy";
ct = Connection(url,user,passwd); stat = ct.createStatement();//创建stat对象
rs = uteQuery(sql);//查询结果
()){
Vector hang = new Vector();
hang.String(1));
hang.String(2));
hang.String(3));
hang.Int(4));
hang.String(5));
hang.String(6));
//加⼊到rowData中
rowData.add(hang);
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(rs!=null){
rs.close();
rs = null;
}
if(stat != null){
stat.close();
stat = null;
}
if(ct != null){
ct.close();
ct = null;
}
}catch(Exception e){
e.printStackTrace();
}
}
}
/
/增加学⽣函数
public void addStu(String sql){
//根据⽤户输⼊的sql语句,完成添加任务
}
//第⼆个构造函数,通过传递的sql语句来获得数据模型 public StuModel(String sql){
this.init(sql);
}
//构造函数,⽤于初始化我的数据模型(表)
public StuModel(){
this.init("");
}
/
/得到共有多少⾏
public int getRowCount() {
// TODO Auto-generated method stub
wData.size();
}
//得到共有多少列
public int getColumnCount() {
// TODO Auto-generated method stub
lumnNames.size();
}
//得到某⾏某列的数据
public Object getValueAt(int row, int column) {
// TODO Auto-generated method stub
return ((Vector)((row))).get(column);
}
//得到属性名字
public String getColumnName(int column) {
// TODO Auto-generated method stub
return ((column);
}
}
StuAddDiag.java:
st2;
import javax.swing.JDialog;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.*;
public class StuAddDiag extends JDialog implements ActionListener {
//定义我需要的swing组件
JLabel jl1,jl2,jl3,jl4,jl5,jl6;
JTextField jf1,jf2,jf3,jf4,jf5,jf6;
JPanel jp1,jp2,jp3;
JButton jb1,jb2;
//owner代笔⽗窗⼝,title是窗⼝的名字,modal指定是模式窗⼝()或者⾮模式窗⼝ public StuAddDiag(Frame owner,String title, boolean modal){
//调⽤⽗类⽅法
super(owner,title,modal);
jl1 = new JLabel("学号");
jl2 = new JLabel("名字");
jl3 = new JLabel("性别");
jl4 = new JLabel("年龄");
jl5 = new JLabel("籍贯");
jl6 = new JLabel("门派");
jf1 = new JTextField(10);
jf2 = new JTextField(10);
jf3 = new JTextField(10);
jf4 = new JTextField(10);
jf5 = new JTextField(10);
jf6 = new JTextField(10);
jb1 = new JButton("添加");
jb1.addActionListener(this);
jb2 = new JButton("取消");
jp1 = new JPanel();
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论