JDBC+java+swing实现学生信息管理系统

您所在的位置:网站首页 java编程编写简单课程表 JDBC+java+swing实现学生信息管理系统

JDBC+java+swing实现学生信息管理系统

2024-03-24 04:18| 来源: 网络整理| 查看: 265

目录

引言

一、定义学生类

二、编写学生接口

三、连接数据库,编写JDBC的工具类

三、编写接口实现类

四、下载WindowBuilder插件并安装,新建一个JFram文件,命名为StudentInformationFrame,在design界面中设置如下布局:

设置好布局之后,点击Source就会自动生成如下代码:

引言

       笔者最近刚学完java编程的基础,所以尝试做了一个简单的学生管理系统,主要实现了学生信息表的增删改查,如有不足之处,敬请各位读者批评指正。如下是效果图:

 

    大致思路如下:1、创建一个学生类  2、编写学生类的是实现接口  3、编写接口实现类  4、连接数据库  5、使用SWI制作界面

一、定义学生类 public class Student { private int Sno;//学号 private String Sname;//姓名 private int age;//年龄 private String gender;//性别 private String department;//系别 private String courseSelected;//选课情况 public Student() { super(); } public Student(int sno, String sname, int age, String gender, String department, String courseSelected) { super(); this.Sno = sno; this.Sname = sname; this.age = age; this.gender = gender; this.department = department; this.courseSelected = courseSelected; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getSno() { return Sno; } public void setSno(int sno) { this.Sno = sno; } public String getSname() { return Sname; } public void setSname(String sname) { this.Sname = sname; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public String getDepartment() { return department; } public void setDepartment(String department) { this.department = department; } public String getCourseSelected() { return courseSelected; } public void setCourseSelected(String courseSelected) { this.courseSelected = courseSelected; } @Override public String toString() { return "Student [Sno=" + Sno + ", Sname=" + Sname + ", age=" + age + ", gender=" + gender + ", department=" + department + ", courseSelected=" + courseSelected + "]"; } } 二、编写学生接口 public interface IStudentDao { //查询所有学生的信息 public ArrayList selectStudentAll(); //查询单个学生的信息 public Student selectStudent(int sno); //插入一条学生记录 public boolean insertStudent(Student s); //删除一条学生记录 public boolean deleteStudent(int sno); //修改某条学生记录的信息 public boolean updateStudent(Student s); } 三、连接数据库,编写JDBC的工具类 import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; 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.Properties; public class DBUtil { private static Properties proper=new Properties(); /** * 静态代码块 */ static { try { //加载properties文件 proper.load(new FileInputStream("config/db.properties")); //1 加载外部JDBC驱动程序 Class.forName(proper.getProperty("driverClassName")); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 获取连接 * @return */ public static Connection getConnection() { try { //建立连接 Connection con=DriverManager.getConnection(proper.getProperty("url") ,proper.getProperty("username"),proper.getProperty("password")); return con; } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } /** *获取Statement对象 */ public static Statement getStatement(Connection con) { try { return con.createStatement(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } /** * 获取PreparedStatement对象 */ public static PreparedStatement getPreparedStatement(Connection con,String sql) { try { return con.prepareStatement(sql); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } /** * 关闭资源 */ public static void close(Connection con,Statement stat,ResultSet rs) { if(rs!=null) { try { rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(stat!=null) { try { stat.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(con!=null) { try { con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public static void close(Connection con,Statement stat) { if(stat!=null) { try { stat.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(con!=null) { try { con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public static void close(Connection con) { if(con!=null) { try { con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public static void close(Connection con,PreparedStatement stat,ResultSet rs) { if(rs!=null) { try { rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(stat!=null) { try { stat.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(con!=null) { try { con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public static void close(Connection con,PreparedStatement stat) { if(stat!=null) { try { stat.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(con!=null) { try { con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } 三、编写接口实现类 import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import com.yf.bean.Student; import com.yf.utils.DBUtil; public class StudentDaoImpl implements IStudentDao{ @Override public ArrayList selectStudentAll() { Connection con = null; Statement stat = null; ResultSet rs = null; try { //1、获取连接 con = DBUtil.getConnection(); //2、创建Statement对象 stat = DBUtil.getStatement(con); //3、定义SQL语句 String sql = "select * from Student order by Sno"; //返回查询到的结果集 rs = stat.executeQuery(sql); ArrayList stuList = new ArrayList(); while(rs.next()) { Student stu = new Student(); stu.setSno(rs.getInt("Sno")); stu.setSname(rs.getString("Sname")); stu.setAge(rs.getInt("age")); stu.setGender(rs.getString("gender")); stu.setDepartment(rs.getString("department")); stu.setCourseSelected(rs.getString("courseSelected")); stuList.add(stu); } return stuList; } catch (SQLException e) { e.printStackTrace(); } finally { //关闭资源 DBUtil.close(con, stat, rs); } return null; } @Override public Student selectStudent(int sno) { Connection con = null; PreparedStatement stat = null; ResultSet rs = null; try { //建立连接 con = DBUtil.getConnection(); //定义SQL语句 String sql = "select * from Student where sno = ?"; //创建预编译对象 stat = con.prepareStatement(sql); stat.setInt(1,sno); rs = stat.executeQuery(); //6、结果处理 Student stu = new Student(); while(rs.next()) { stu.setSno(rs.getInt("Sno")); stu.setSname(rs.getString("Sname")); stu.setAge(rs.getInt("age")); stu.setGender(rs.getString("gender")); stu.setDepartment(rs.getString("department")); stu.setCourseSelected(rs.getString("courseSelected")); } return stu; } catch (SQLException e) { e.printStackTrace(); } finally { DBUtil.close(con, stat, rs); } return null; } @Override public boolean insertStudent(Student s) { Connection con = null; PreparedStatement stat = null; try { con = DBUtil.getConnection(); String sql = "insert into Student(Sno,Sname,age,gender,department,courseSelected) values(?,?,?,?,?,?)"; stat = con.prepareStatement(sql); stat.setInt(1,s.getSno()); stat.setString(2,s.getSname()); stat.setInt(3,s.getAge()); stat.setString(4,s.getGender()); stat.setString(5,s.getDepartment()); stat.setString(6,s.getCourseSelected()); if(stat.executeUpdate()>0) { return true; } } catch (SQLException e) { e.printStackTrace(); } finally { DBUtil.close(con, stat); } return false; } @Override public boolean deleteStudent(int sno) { Connection con = null; PreparedStatement stat = null; con = DBUtil.getConnection(); String sql = "delete from Student where Sno = ?"; try { stat = con.prepareStatement(sql); stat.setInt(1,sno); if(stat.executeUpdate()>0) { //System.out.println("删除成功"); return true; } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { DBUtil.close(con, stat); } return false; } @Override public boolean updateStudent(Student s) { Student stu = selectStudent(s.getSno()); Connection con = null; PreparedStatement stat = null; if(stu == null) { return false; }else { try { con = DBUtil.getConnection(); String sql = "update Student set Sname=?,age = ?,gender=?,department=?,courseSelected=? where Sno = ?"; stat = con.prepareStatement(sql); stat.setString(1,s.getSname()); stat.setInt(2,s.getAge()); stat.setString(3,s.getGender()); stat.setString(4,s.getDepartment()); stat.setString(5,s.getCourseSelected()); stat.setInt(6,s.getSno()); if(stat.execute()){ return true; } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { DBUtil.close(con, stat); }return false; } } } 四、下载WindowBuilder插件并安装,新建一个JFram文件,命名为StudentInformationFrame,在design界面中设置如下布局:

设置好布局之后,点击Source就会自动生成如下代码: public class StudentInformationFrame extends JFrame { private JPanel contentPane; private JTable table; private JTextField selectstubo; private JTextField stuNo;//学生编号 private JTextField stuName_2;// private JTextField stuAge; private JTextField stuSex; private JTextField stuDepart; private JTextField select; private JTable table_1; private JTable table_2; private JTextField updatestuno; private JTextField updatestuname; private JTextField updatestusex; private JTextField updatestuage; private JTextField updatestudept; private JTextField updateselected; private JTable table_3; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { StudentInformationFrame frame = new StudentInformationFrame(true,""); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. * @param usertype */ public StudentInformationFrame() { setFont(null); setBackground(new Color(240, 240, 240)); setIconImage(Toolkit.getDefaultToolkit().getImage("image/stop.gif"));//窗口左上角图标 this.setVisible(true);//设置窗口显示隐藏 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 800, 600);//设置窗口位置、尺寸(统一800*600) setResizable(false);//设置窗口不可缩放 contentPane = new JPanel(); contentPane.setBackground(Color.WHITE);//设置窗口颜色 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); //左栏 JPanel Left = new JPanel(); Left.setBackground(Color.PINK); Left.setBounds(0, 0, 154, 572); contentPane.add(Left); //右栏查询页 JPanel Right1 = new JPanel(); Right1.setBounds(152, 0, 642, 572); contentPane.add(Right1); //右栏插入页 JPanel Right2 = new JPanel(); Right2.setBounds(152, 0, 642, 572); contentPane.add(Right2); //右栏删除页 JPanel Right3 = new JPanel(); Right3.setBounds(152, 0, 642, 572); contentPane.add(Right3); //右栏修改页 JPanel Right4 = new JPanel(); Right4.setBounds(152, 0, 642, 572); contentPane.add(Right4); //菜单1:查询,点击即可查询全部学生记录的按钮 JButton menu1 = new JButton("查询"); menu1.setFont(new Font("宋体", Font.PLAIN, 16)); menu1.setBounds(10, 10, 134, 50); menu1.addActionListener(new ActionListener() { Object[][] stuArray; public void actionPerformed(ActionEvent e) { StudentDaoImpl stuAll = new StudentDaoImpl(); ArrayList stulist = stuAll.selectStudentAll(); for (Student student : stulist) { student.toString(); } Object[] array = stulist.toArray(); stuArray = new Object[stulist.size()][6]; for(int i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3