java课程作业——学生信息管理系统(swing实现图形化界面)

目录

功能:

效果图:

 项目结构:

一些细节:

Gitee:


功能:

在学生成绩数据保存到数据库的提前下实现以下功能:

1) 学生成绩新增界面设计及功能实现

2) 学生成绩查询界面设计及功能实现、支持多条件查询

3) 学生成绩修改界面设计及功能实现

4) 学生成绩删除界面设计及功能实现

5)提供学生成绩批量导入和导出的功能(txt文件)

6)  可统计学生成绩信息,课程成绩信息

第一次用swing,网上swing的相关资料相对较少,边学边写算是写出来了.

效果图:

java课程作业——学生信息管理系统(swing实现图形化界面)_第1张图片 ​

java课程作业——学生信息管理系统(swing实现图形化界面)_第2张图片

 java课程作业——学生信息管理系统(swing实现图形化界面)_第3张图片

 java课程作业——学生信息管理系统(swing实现图形化界面)_第4张图片

 java课程作业——学生信息管理系统(swing实现图形化界面)_第5张图片

 java课程作业——学生信息管理系统(swing实现图形化界面)_第6张图片

 java课程作业——学生信息管理系统(swing实现图形化界面)_第7张图片

 java课程作业——学生信息管理系统(swing实现图形化界面)_第8张图片

 java课程作业——学生信息管理系统(swing实现图形化界面)_第9张图片

 项目结构:

 java课程作业——学生信息管理系统(swing实现图形化界面)_第10张图片

一些细节:

界面主要是通过eclipse的插件:WindowBuilder完成的,用起来还算方便,但是细节还是要自己写代码,查查API或者百度就能搞定了。

java课程作业——学生信息管理系统(swing实现图形化界面)_第11张图片

 ​在导入信息的时候需要注意格式:

java课程作业——学生信息管理系统(swing实现图形化界面)_第12张图片

如果格式错误程序就识别错误了。。。

导出信息的话只需要弄一个空的txt文件进行接收就好了。

java课程作业——学生信息管理系统(swing实现图形化界面)_第13张图片

 如果导出成功就会变成绿色,反之红色。(导入也是一样)

存储方面用mysql,使用了JdbcTemplate。

dao层:
 

public class StuDaoImpl implements StuDao {
    //注入JdbcTemplate
    private JdbcTemplate jdbcTemplate=new JdbcTemplate(JDBCUtils.getDataSource());


    @Override
    public void add(Stu stu) {
        String sql="insert into student values(?,?,?,?,?)";
        jdbcTemplate.update(sql,stu.getID(),stu.getName(),stu.getCourse(),stu.getClasses(),stu.getScore());
    }

    @Override
    public void delete(int ID,String course) {
        jdbcTemplate.update("DELETE FROM student WHERE id = ? AND course= ?",ID,course);
    }

    @Override
    public void update(Stu stu) {
        jdbcTemplate.update("UPDATE student SET NAME=?,course=?,classes=?,score=? WHERE id =?",
                stu.getName(),stu.getCourse(),stu.getClasses(),stu.getScore(),stu.getID());
    }

    @Override
    public List findAll() {
        List query = jdbcTemplate.query("select * from student",
                new BeanPropertyRowMapper(Stu.class));
        return query;
    }

    @Override
    public List findById(int id) {
        String sql="select * from student where id =?";
        List query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Stu.class), id);
        return query;
    }

    @Override
    public List findByCourse(String course) {
        String sql="select * from student where course =?";
        List query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Stu.class), course);
        return query;
    }

    @Override
    public List findByIdAndCourse(int id, String course) {
        String sql="select * from student where id =? and course =?";
        List query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Stu.class), id, course);
        return query;
    }
    /*
        业务需要根据行数查询,通过行数得到改行的数据
        SELECT * FROM student LIMIT n-1,1
         */
    @Override
    public Stu findByRow(int row) {
        String sql="SELECT * FROM student LIMIT ?,1";
        Stu stu = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<>(Stu.class), row );
        return stu;
    }

	@Override
	public List findAllCourse() {
		String sql="SELECT DISTINCT course FROM student";
		List all=jdbcTemplate.queryForList(sql, String.class);
		return all;
	}

	@Override
	public List findAllClasses() {
		String sql="SELECT DISTINCT classes FROM student";
		List all=jdbcTemplate.queryForList(sql, String.class);
		return all;
	}

	@Override
	public List findAllStu() {
		String sql="SELECT  DISTINCT  * FROM student";
		 List query = jdbcTemplate.query(sql,
	                new BeanPropertyRowMapper(Stu.class));
	        return query;
	}

	public String findAvgCourse(String course) {
		String sql="SELECT AVG(score) FROM student WHERE course =?";
		String avg=jdbcTemplate.queryForObject(sql, String.class,course);
		return avg;
	}

	@Override
	public String findAvgPerson(int id) {
		String sql="SELECT AVG(score) FROM student WHERE id = ?";
		String avg=jdbcTemplate.queryForObject(sql, String.class,id);
		return avg;
	}

	@Override
	public String findSumPerson(int id) {
		String sql="SELECT SUM(score) FROM student WHERE id=?";
		String sum=jdbcTemplate.queryForObject(sql, String.class,id);
		return sum;
		
	}
//	SELECT MAX(score) FROM student WHERE course ='音乐'
//			SELECT MIN(score) FROM student WHERE course ='音乐'
	//SELECT SUM(score) FROM student WHERE id=103

	@Override
	public String findMaxCourse(String course) {
		String sql="SELECT MAX(score) FROM student WHERE course =?";
		String max=jdbcTemplate.queryForObject(sql, String.class,course);
		return max;
	}

	@Override
	public String findMinCourse(String course) {
		String sql="SELECT MIN(score) FROM student WHERE course =?";
		String min=jdbcTemplate.queryForObject(sql, String.class,course);
		return min;
	}

}

放一个主页面的代码: 

//初始化主页面
	private void initialize() {
		frame = new JFrame();
		frame.getContentPane().setBackground(Color.BLACK);
		frame.setTitle("主页面");
		frame.setBounds(100, 100, 529, 717);
		frame.setResizable(true);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(null);
		
		JPanel panel = new JPanel();
		panel.setBounds(0, 0, 511, 82);
		panel.setBackground(Color.BLACK);
		frame.getContentPane().add(panel);
		
		JButton button = new JButton("新增单个");
		button.setForeground(Color.WHITE);
		button.setBackground(Color.BLACK);
		button.setFont(new Font("宋体", Font.PLAIN, 15));
		button.setBounds(249, 28, 101, 41);
		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
			}
		});
		button.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				//添加按钮点击进入添加界面
				new Add_Gui();		 
			}
		});
		panel.setLayout(null);
		
		JButton button_3 = new JButton("批量导出");
		button_3.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				new DeriveTips();
			}
		});
		button_3.setForeground(Color.WHITE);
		button_3.setBackground(Color.BLACK);
		button_3.setFont(new Font("宋体", Font.PLAIN, 15));
		button_3.setBounds(37, 28, 101, 41);
		panel.add(button_3);
		
		JButton button_1 = new JButton("批量导入");
		button_1.setForeground(Color.WHITE);
		button_1.setBackground(Color.BLACK);
		button_1.setFont(new Font("宋体", Font.PLAIN, 15));
		button_1.setBounds(146, 28, 97, 41);
		button_1.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				new ImportTips();
			}
		});
		panel.add(button_1);
		panel.add(button);
		
		JButton button_2 = new JButton("查询/修改");
		button_2.setForeground(Color.WHITE);
		button_2.setBackground(Color.BLACK);
		button_2.setFont(new Font("宋体", Font.PLAIN, 15));
		button_2.setBounds(358, 28, 110, 41);
		button_2.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				//查询按钮点击进入查询界面
				new Query_Gui();
			}
		});
		panel.add(button_2);
		
		JPanel panel_1 = new JPanel();
		panel_1.setBounds(0, 95, 445, 575);
		panel_1.setBackground(Color.BLACK);
		frame.getContentPane().add(panel_1);
		panel_1.setLayout(null);
		
		JLabel label = new JLabel("");
		label.setIcon(new ImageIcon(BdGrade.class.getResource("/img/4.jpg")));
		label.setBounds(-118, -132, 657, 694);
		panel_1.add(label);
		
	}

Gitee:

昨天刚刚学了git管理,就把这个放上去了,算是我的第一个完整项目吧。

java学生信息管理系统: 使用javaGUI实现的图形化java学生信息管理系统。 (gitee.com)

ps:前面刚刚学SSM,但是web的前端页面好乱,写出来的根本就乱七八糟的,就算后台实现了功能前端页面也是丑的一批。。要是web页面也有这样的设计工具就好了。 

你可能感兴趣的:(JAVA入门,笔记,eclipse,java)