目录
功能:
效果图:
项目结构:
一些细节:
Gitee:
功能:
在学生成绩数据保存到数据库的提前下实现以下功能:
1) 学生成绩新增界面设计及功能实现
2) 学生成绩查询界面设计及功能实现、支持多条件查询
3) 学生成绩修改界面设计及功能实现
4) 学生成绩删除界面设计及功能实现
5)提供学生成绩批量导入和导出的功能(txt文件)
6) 可统计学生成绩信息,课程成绩信息
第一次用swing,网上swing的相关资料相对较少,边学边写算是写出来了.
效果图:
项目结构:
一些细节:
界面主要是通过eclipse的插件:WindowBuilder完成的,用起来还算方便,但是细节还是要自己写代码,查查API或者百度就能搞定了。
在导入信息的时候需要注意格式:
如果格式错误程序就识别错误了。。。
导出信息的话只需要弄一个空的txt文件进行接收就好了。
如果导出成功就会变成绿色,反之红色。(导入也是一样)
存储方面用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 ListfindAll() { 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; } @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页面也有这样的设计工具就好了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)