javaswing连接mysql,学生管理系统实训

具体实现步骤
1、把jar文件复制进项目
2、用navicat建立数据库db_studentinfo,建立表student
3、新建项目Java,在str中建立包Second
4、建立类
Window.java
Add.java
Ask.java
Change.java
Delete.java
Look.java

(1、把jar文件复制进项目)
在这里插入图片描述

前面几分钟有怎么加入jar包
在这里插入图片描述

界面实现如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

window窗口的实现
window.java
这里的图片路径得改成自己的,自己下载个图片在桌面上,复制一下路径就好了

package Second;
 
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;





public class Window extends JFrame{
   
	ImageIcon background;
	JPanel myPanel;
	JLabel label;
	public static void main(String[] args) {
   
		// TODO Auto-generated method stub
		new Window();
	}
	
	
	
	
	Window()
	{
      
		JButton button1 = new JButton("!添加学生信息");
		   JButton button2 = new JButton("!修改学生信息");
		   JButton button3 = new JButton("!查询学生信息");
		   JButton button4 = new JButton("!删除学生信息");
		   JButton button5 = new JButton("!浏览");
		   
		   FlowLayout flow = new FlowLayout(FlowLayout.LEFT,10,10);
		   JPanel panel = new JPanel(flow);
		   panel.add(button1);
		   panel.add(button2);
		   panel.add(button3);
		   panel.add(button4);
		   panel.add(button5);
		
		
	    
		background = new ImageIcon("C:/Users/Pictures/校园3.jpg");	//图片路径 创建一个背景图片
		label = new JLabel(background);		//把背景图片添加到标签里
		label.setBounds(0, 0, background.getIconWidth(), background.getIconHeight());	//把标签设置为和图片等高等宽
		myPanel = (JPanel)this.getContentPane();		//把我的面板设置为内容面板
		myPanel.setOpaque(false);					//把我的面板设置为不可视
		myPanel.setLayout(new FlowLayout());		//把我的面板设置为流动布局
		this.getLayeredPane().setLayout(null);		//把分层面板的布局置空
		myPanel.add(panel);						//把按钮添加到我的面板里
		this.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));		//把标签添加到分层面板的最底层
		//设置界面属性
		this.setTitle("肇庆学院学生管理系统!!");
		this.setBounds(400, 400, background.getIconWidth(), background.getIconHeight());
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
		
		button1.addActionListener(new ActionListener(){
   
			public void actionPerformed(ActionEvent e){
   
				Add add = new Add(); 
 
			}			
		});
	   
	   button2.addActionListener(new ActionListener(){
   
			public void actionPerformed(ActionEvent e){
   
				Change change = new Change();			
			}			
		});
	   
	   button3.addActionListener(new ActionListener(){
   
			public void actionPerformed(ActionEvent e){
   
				Ask ask = new Ask();			
			}			
		});
	   
	   button4.addActionListener(new ActionListener(){
   
			public void actionPerformed(ActionEvent e){
   
				Delete delete = new Delete();			
			}			
		});
	   
	   button5.addActionListener(new ActionListener(){
   
			public void actionPerformed(ActionEvent e){
   
				Look look = new Look();			
			}			
		});
		
		
		
	}
}

add.java
添加界面/窗口的实现

package Second;


import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.GridLayout;
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;
import java.util.Vector;

import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;

import First.Window;

public class Add extends JFrame{
   
	JLabel jlnumber = new JLabel("学号:");
	JLabel jlname = new JLabel("姓名:");
	JLabel jlsex = new JLabel("性别:");
	JLabel jlbirthday = new JLabel("出生日期:");
	JLabel jldepartment = new JLabel("学院:");
	
	JTextField jtnumber = new JTextField("",20);
	JTextField jtname = new JTextField("",20);
	JTextField jtsex = new JTextField("",20);
	JTextField jtbirthday = new JTextField("",20);
	JTextField jtdepartment = new JTextField("",20);
	
	JButton buttonadd = new JButton("添加");
	JButton buttontable = new JButton("更新");
	
	private ButtonGroup group = new ButtonGroup();//用于逻辑上单选按钮成组。
	
	
	private JPanel jp_top= new JPanel();//顶部面板
	private JPanel jp_center= new JPanel(); //中间面板
	private JPanel jp_floor= new JPanel();//底部面板
	
	//用指定行数组和列名数组去构造一个表格
			JTable table = null;
			//为JTable增加垂直滚动条
		    JScrollPane scrollPane =null;
	
	
	public Add() {
   
		super("!添加学生信息");
		init();
		
		
		
		
	}
	public void init() {
   
		setSize(480,480);
		setLocationRelativeTo(null);
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setLayout(new BorderLayout());
		//GridLayout下标签占满一个网格,默认左对齐,改为右对齐
		jlnumber.setHorizontalAlignment(SwingConstants.RIGHT);
		jlname.setHorizontalAlignment(SwingConstants.RIGHT);
		jlsex.setHorizontalAlignment(SwingConstants.RIGHT);
		jlbirthday.setHorizontalAlignment(SwingConstants.RIGHT);
		jldepartment.setHorizontalAlignment(SwingConstants.RIGHT);
		
		jp_floor.setLayout(new GridLayout(6,2));
		jp_floor.add(jlnumber);
		jp_floor.add(jtnumber);
		jp_floor.add(jlname);
		jp_floor.add(jtname);
		jp_floor.add(jlsex);
		jp_floor.add(jtsex);
		jp_floor.add(jlbirthday);
		jp_floor.add(jtbirthday);
		jp_floor.add(jldepartment);
		jp_floor.add(jtdepartment);
		jp_floor.add(buttonadd);
		jp_floor.add(buttontable);
		
		//面板边框设置
		jp_floor.setBorder(BorderFactory.createTitledBorder("请输入要添加的学生信息"));
		jp_top.add(new JLabel("欢迎进入学生管理系统!!"));
		
		
		Vector columnNames = new Vector();
		Vector rowData = new Vector();
		columnNames.add("学号");
		columnNames.add("姓名");
		columnNames.add("性别");
		columnNames.add("出生日期");
		columnNames.add("学院");
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet res = null;
		try {
   
			Class.forName("com.mysql.jdbc.Driver");
			conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_studentinfo","root","123456");
			ps = conn.prepareStatement("SELECT * FROM student");
			res = ps.executeQuery();
			while (res.next())
			{
   
				Vector hang = new Vector();
				hang.add(res.getString(1));
				hang.add(res.getString(2));
				hang.add(res.getString(3));
				hang.add(res.getString(4));
				hang.add(res.getString(5));
				rowData.add(hang);
				
			}
			System.out.println("load  ok!");
		}catch (Exception q){
   
			q.printStackTrace();
			System.out.println("go die");
		}finally{
   
			try{
   
				res.close();
				ps.close();
				conn.close();
				System.out.println("close ok");
			}catch (SQLException o){
   
				o.printStackTrace();
				System.out.println("go die 2");
			}
		}
		
		//用指定行数组和列名数组去构造一个表格
		JTable table = new JTable(rowData, columnNames);
		//为JTable增加垂直滚动条
	    JScrollPane scrollPane = new JScrollPane(table);

		//设置表头字体
		table.getTableHeader().setFont(new Font("宋体",Font.BOLD,14));
		//设置表格字体
		table.setFont(new Font("宋体",Font.PLAIN,14));
		//设置表格行高
		table.setRowHeight(20);
		//实现单击列名排序功能
		TableRowSorter sorter = new TableRowSorter(table.getModel());
		table.setRowSorter(sorter);
	
		table.setFillsViewportHeight(true);
		//设置JTable行选择模型为一次只能选择一行。
		table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		//设置指定列的宽度
		int[] ia={
   80,100,40,100,150};
		for(int i=0;i<table.getColumnCount();i++){
   
			table.getColumnModel().getColumn(i).setPreferredWidth(ia[i]);
			table.getColumnModel().getColumn(i).setMaxWidth(ia[i]);
			table.getColumnModel().getColumn(i).setMinWidth(ia[i]);
		}
		
       
		buttontable.addActionListener(new ActionListener() {
   
			public void actionPerformed(ActionEvent e) {
   
//				当点击按钮重新设置表格数据,即刷新最新的表格数据
//				新表格的内容
				Connection conn = null;
				PreparedStatement ps = null;
				ResultSet res = null;
				try {
   
					Class.forName("com.mysql.jdbc.Driver");
					conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_studentinfo","root","123456");
					ps = conn.prepareStatement("SELECT * FROM student");
					res = ps.executeQuery();
					while (res.next())
					{
   
						Vector hang = new Vector();
						hang.add(res.getString(1));
						hang.add(res.getString(2));
						hang.add(res.getString(3));
						hang.add(res.getString(4));
						hang.add(res.getString(5));
						rowData.add(hang);
						
					}
					System.out.println("load  ok!");
				}catch (Exception q){
   
					q.printStackTrace
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值