Java练手项目实战 ——学生管理系统(Java Swing + JDBC)

书读的越多而不加思考,你就会觉得你知道得很多;而当你读书而思考得越多的时候,你就会越清楚地看到,你知道得很少。

导读:本篇文章讲解 Java练手项目实战 ——学生管理系统(Java Swing + JDBC),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

基于Java Swing的学生管理系统

1、源码下载地址

Gitee: https://gitee.com/liu-yipin/stu-manager.

2、效果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、部分代码实现

在这里插入图片描述

StuClassDao.java

package com.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import com.model.StuClass;
import com.util.StringUtil;





/**
 * 学生班级Dao类
 * @author ASUS
 *
 */
public class StuClassDao {
	/**
	 * 学生班级添加
	 * @param con
	 * @param bookType
	 * @return
	 * @throws Exception
	 */
	public int add(Connection con,StuClass stuClass)throws Exception{
		String sql ="insert into t_stuclass values(null,?,?)";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1,stuClass.getStuClassName());
		pstmt.setString(2,stuClass.getStuClassDesc());
		return pstmt.executeUpdate();
	}
	/**
	 * 学生班级查询
	 * @param con
	 * @param stuClass
	 * @return
	 * @throws Exception
	 */
	public ResultSet list(Connection con,StuClass stuClass)throws Exception{
		StringBuffer sb=new StringBuffer("select * from t_stuclass");
		if(StringUtil.isNotEmpty(stuClass.getStuClassName())) {
			sb.append(" and stuClassName like '%"+stuClass.getStuClassName()+"%'");
		}
		PreparedStatement pstmt=con.prepareStatement(sb.toString().replaceFirst("and", "where"));
		return pstmt.executeQuery();
	}
	
	/**
	 * 删除学生班级
	 * @param con
	 * @param id
	 * @return
	 * @throws Exception
	 */
	public int delete(Connection con,String id)throws Exception{
		String sql="delete from t_stuclass where id=?";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1, id);
		return pstmt.executeUpdate();
	}
	
	/**
	 * 更新学生班级
	 * @param con
	 * @param bookType
	 * @return
	 * @throws Exception
	 */
	public int update(Connection con,StuClass stuClass)throws Exception{
		String sql="update t_stuclass set stuClassName=?,StuClassDesc=? where id=?";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1, stuClass.getStuClassName());
		pstmt.setString(2, stuClass.getStuClassDesc());
		pstmt.setInt(3, stuClass.getId());
		return pstmt.executeUpdate();
	}
	
}

StudentDao.java

package com.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import com.model.Student;
import com.util.StringUtil;

/**
 * 学生Dao类
 * @author ASUS
 *
 */
public class StudentDao {
	/**
	 * 学生添加
	 * @param con
	 * @param student
	 * @return
	 * @throws Exception
	 */
	public int add(Connection con,Student student)throws Exception{
		String sql="insert into t_student values(null,?,?,?,?,?,?)";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1,student.getName());
		pstmt.setString(2,student.getHome());
		pstmt.setString(3,student.getSex());
		pstmt.setFloat(4,student.getScore());
		pstmt.setInt(5,student.getStuClassId());
		pstmt.setString(6,student.getStuDesc());
		return pstmt.executeUpdate();
	}
	
	/**
	 * 学生信息查询
	 * @param con
	 * @param book
	 * @return
	 * @throws Exception
	 */
	public ResultSet list(Connection con,Student stu)throws Exception{
		StringBuffer sb=new StringBuffer("select * from t_student b,t_stuclass bt where b.stuClassId=bt.id");
		if(StringUtil.isNotEmpty(stu.getName())) {
			sb.append(" and b.name like '%"+stu.getName()+"%'");
		}
		if(StringUtil.isNotEmpty(stu.getHome())) {
			sb.append(" and b.home like '%"+stu.getHome()+"%'");
		}
		if(stu.getStuClassId()!=null&&stu.getStuClassId()!=-1) {
			sb.append(" and b.stuClassId ="+stu.getStuClassId());
		} 
		PreparedStatement pstmt=con.prepareStatement(sb.toString());
		return pstmt.executeQuery();
	}
	
	/**
	 * 学生信息删除
	 * @param con
	 * @param id
	 * @return
	 * @throws Exception
	 */
	public int delete(Connection con,String id)throws Exception{
		String sql="delete from t_student where id=?";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1,id);
		return pstmt.executeUpdate();
	}
	
	/**
	 * 学生信息修改
	 * @param con
	 * @param stu
	 * @return
	 * @throws Exception
	 */
	public int update(Connection con,Student stu)throws Exception{
		String sql="update t_student set name=?,home=?,sex=?,score=?,stuDesc=?,stuClassId=? where id=?";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1,stu.getName());
		pstmt.setString(2,stu.getHome());
		pstmt.setString(3,stu.getSex());
		pstmt.setFloat(4,stu.getScore());
		pstmt.setString(5,stu.getStuDesc());
		pstmt.setInt(6,stu.getStuClassId());
		pstmt.setInt(7,stu.getId());
		return pstmt.executeUpdate();
	}
	
	/**
	 * 指定学生班级下是否存在学生
	 * @param con
	 * @param stuClassId
	 * @return
	 * @throws Exception
	 */
	public boolean existBookByBookTypeId(Connection con,String stuClassId)throws Exception{
		String sql="select * from t_student where stuClassId=?";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1,stuClassId);
		ResultSet rs=pstmt.executeQuery();
		return rs.next();
	}
}

UserDao.java

package com.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import com.model.User;


/**
 * ûDao
 * @author ASUS
 *
 */
public class UserDao {
	/**
	 * ¼֤
	 * @param con
	 * @param user
	 * @return
	 * @throws Exception
	 */
	public User login(Connection con,User user)throws Exception{
		User resultUser=null;
		String sql="select * from t_user where userName=? and password=?";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1, user.getUserName());
		pstmt.setString(2, user.getPassword());
		ResultSet rs=pstmt.executeQuery();
		if(rs.next()) {
			resultUser=new User();
			resultUser.setId(rs.getInt("id"));
			resultUser.setUserName(rs.getString("userName"));
			resultUser.setPassword(rs.getString("password"));
		}
		return resultUser;
	}
}

MainFrm.java

package com.view;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JInternalFrame;
import javax.swing.JMenu;
import javax.swing.JPopupMenu;
import java.awt.Component;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.ImageIcon;
import java.awt.Font;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JDesktopPane;
import java.awt.Color;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import java.awt.Toolkit;
import javax.swing.LayoutStyle.ComponentPlacement;

public class MainFrm extends JFrame {

	private JPanel contentPane;
	private JDesktopPane table=null;
	/**
	 * @wbp.nonvisual location=-261,584
	 */
	private final JInternalFrame internalFrame = new JInternalFrame("New JInternalFrame");

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					MainFrm frame = new MainFrm();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public MainFrm() {
		setIconImage(Toolkit.getDefaultToolkit().getImage(MainFrm.class.getResource("/icon/\u7EBF\u6027\u7537\u5B66\u751F.png")));
		setFont(new Font("宋体", Font.BOLD, 25));
		internalFrame.setVisible(true);
		setTitle("\u5B66\u751F\u7BA1\u7406\u7CFB\u7EDF\u4E3B\u754C\u9762");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 1761, 1048);
		
		JMenuBar menuBar = new JMenuBar();
		setJMenuBar(menuBar);
		
		JMenu mnNewMenu = new JMenu("\u57FA\u672C\u6570\u636E\u7EF4\u62A4");
		mnNewMenu.setHorizontalAlignment(SwingConstants.CENTER);
		mnNewMenu.setIcon(new ImageIcon(MainFrm.class.getResource("/icon/Maintenance_16px_1190918_easyicon.net.png")));
		menuBar.add(mnNewMenu);
		
		JMenu menu = new JMenu("\u5B66\u751F\u73ED\u7EA7\u7BA1\u7406");
		menu.setIcon(new ImageIcon(MainFrm.class.getResource("/icon/edit\u7F16\u8F91.png")));
		mnNewMenu.add(menu);
		
		JMenuItem menuItem = new JMenuItem("\u5B66\u751F\u73ED\u7EA7\u6DFB\u52A0");
		menuItem.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				StuClassAddInterFrm bookTypeAddInterFrm=new StuClassAddInterFrm();
				bookTypeAddInterFrm.setVisible(true);
				table.add(bookTypeAddInterFrm);
			}
		});
		menuItem.setIcon(new ImageIcon(MainFrm.class.getResource("/icon/add_folder_16.681757656458px_1232041_easyicon.net.png")));
		menu.add(menuItem);
		
		JMenuItem menuItem_1 = new JMenuItem("\u5B66\u751F\u73ED\u7EA7\u7EF4\u62A4");
		menuItem_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				StuClassManageInterFrm bookTypeManageInterFrm=new StuClassManageInterFrm();
				bookTypeManageInterFrm.setVisible(true);
				table.add(bookTypeManageInterFrm);
			}
		});
		menuItem_1.setIcon(new ImageIcon(MainFrm.class.getResource("/icon/\u7EBF\u6027\u94C5\u7B14.png")));
		menu.add(menuItem_1);
		
		JMenu mnNewMenu_2 = new JMenu("\u5B66\u751F\u7BA1\u7406");
		mnNewMenu_2.setIcon(new ImageIcon(MainFrm.class.getResource("/icon/edit\u7F16\u8F91.png")));
		mnNewMenu.add(mnNewMenu_2);
		
		JMenuItem menuItem_2 = new JMenuItem("\u5B66\u751F\u6DFB\u52A0");
		menuItem_2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				StudentAddInterFrm bookAddInterFrm=new StudentAddInterFrm();
				bookAddInterFrm.setVisible(true);
				table.add(bookAddInterFrm);
			}
		});
		menuItem_2.setIcon(new ImageIcon(MainFrm.class.getResource("/icon/plus\u6DFB\u52A0.png")));
		mnNewMenu_2.add(menuItem_2);
		
		JMenuItem menuItem_3 = new JMenuItem("\u5B66\u751F\u7EF4\u62A4");
		menuItem_3.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				StudentManageInterFrm bookManageInterFrm=new StudentManageInterFrm();
				bookManageInterFrm.setVisible(true);
				table.add(bookManageInterFrm);	
			}
		});
		menuItem_3.setIcon(new ImageIcon(MainFrm.class.getResource("/icon/\u7EBF\u6027\u94C5\u7B14.png")));
		mnNewMenu_2.add(menuItem_3);
		
		JMenuItem menuItem_4 = new JMenuItem("\u5B89\u5168\u9000\u51FA");
		menuItem_4.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				int result=JOptionPane.showConfirmDialog(null, "是否退出系统");
				if(result==0) {
					dispose();
				}
			}
		});
		menuItem_4.setIcon(new ImageIcon(MainFrm.class.getResource("/icon/\u767B\u5F55-\u8F93\u5165\u6E05\u7A7A.png")));
		mnNewMenu.add(menuItem_4);
		
		JMenu mnNewMenu_1 = new JMenu("\u5173\u4E8E\u6211\u4EEC");
		mnNewMenu_1.setIcon(new ImageIcon(MainFrm.class.getResource("/icon/\u9996\u98755.png")));
		menuBar.add(mnNewMenu_1);
		
		JMenuItem mntmjava = new JMenuItem("\u5173\u4E8E\u4F5C\u8005");
		mntmjava.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				JavaFrm java1234InterFrm=new JavaFrm();
				java1234InterFrm.setVisible(true);
				table.add(java1234InterFrm);
				
			}
		});
		mntmjava.setIcon(new ImageIcon(MainFrm.class.getResource("/icon/collaborator_32px_1170216_easyicon.net.png")));
		mnNewMenu_1.add(mntmjava);
		contentPane = new JPanel();
		contentPane.setBackground(Color.WHITE);
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		
		table = new JDesktopPane();
		table.setBackground(Color.WHITE);
		GroupLayout gl_contentPane = new GroupLayout(contentPane);
		gl_contentPane.setHorizontalGroup(
			gl_contentPane.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_contentPane.createSequentialGroup()
					.addContainerGap()
					.addComponent(table, GroupLayout.PREFERRED_SIZE, 1728, GroupLayout.PREFERRED_SIZE)
					.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
		);
		gl_contentPane.setVerticalGroup(
			gl_contentPane.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_contentPane.createSequentialGroup()
					.addComponent(table, GroupLayout.PREFERRED_SIZE, 970, GroupLayout.PREFERRED_SIZE)
					.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
		);
		contentPane.setLayout(gl_contentPane);
		contentPane.add(table,BorderLayout.CENTER);
		
		JLabel lblL = new JLabel("l");
		lblL.setIcon(new ImageIcon(MainFrm.class.getResource("/photo/046.jpg")));
		
		JLabel label = new JLabel("");
		label.setIcon(new ImageIcon(MainFrm.class.getResource("/photo/120.jpg")));
		GroupLayout gl_table = new GroupLayout(table);
		gl_table.setHorizontalGroup(
			gl_table.createParallelGroup(Alignment.TRAILING)
				.addGroup(Alignment.LEADING, gl_table.createSequentialGroup()
					.addContainerGap()
					.addComponent(label)
					.addPreferredGap(ComponentPlacement.RELATED, 501, Short.MAX_VALUE)
					.addComponent(lblL, GroupLayout.PREFERRED_SIZE, 589, GroupLayout.PREFERRED_SIZE)
					.addGap(32))
		);
		gl_table.setVerticalGroup(
			gl_table.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_table.createSequentialGroup()
					.addContainerGap(404, Short.MAX_VALUE)
					.addGroup(gl_table.createParallelGroup(Alignment.LEADING)
						.addGroup(Alignment.TRAILING, gl_table.createSequentialGroup()
							.addComponent(label)
							.addGap(54))
						.addGroup(Alignment.TRAILING, gl_table.createSequentialGroup()
							.addComponent(lblL, GroupLayout.PREFERRED_SIZE, 435, GroupLayout.PREFERRED_SIZE)
							.addGap(67))))
		);
		table.setLayout(gl_table);
		
		//设置最大化
		this.setExtendedState(JFrame.MAXIMIZED_BOTH);
	}

	private static void addPopup(Component component, final JPopupMenu popup) {
		component.addMouseListener(new MouseAdapter() {
			public void mousePressed(MouseEvent e) {
				if (e.isPopupTrigger()) {
					showMenu(e);
				}
			}
			public void mouseReleased(MouseEvent e) {
				if (e.isPopupTrigger()) {
					showMenu(e);
				}
			}
			private void showMenu(MouseEvent e) {
				popup.show(e.getComponent(), e.getX(), e.getY());
			}
		});
	}
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/123014.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
半码博客——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!