<sup id="sjju3"><noscript id="sjju3"></noscript></sup>
    <big id="sjju3"></big>

  • <blockquote id="sjju3"></blockquote>
    <blockquote id="sjju3"></blockquote>

      <td id="sjju3"></td>

      <big id="sjju3"></big>
        <code id="sjju3"><strong id="sjju3"><dl id="sjju3"></dl></strong></code>
      1. JDBC+GUI实现简单学生管理系统

         更新时间:2019年02月20日 10:15:59   作者:一加一i   我要评论

        这篇文章主要为大家详细介绍了JDBC+GUI实现简单学生管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参?#23478;?#19979;

        刚学完JDBC不久,做了一个简单的学生管理系统,可能还有不完善的地方,望各路大神见谅。废?#23433;?#22810;说,我先贴个图让大家让大家瞅瞅,觉得是你想要的再看下去吧。

        我是以管理者的身份去做的,适合初学者去学习。

        在做之前,先捋一遍思路,简单来说分为三大步。

        一、在数据库里建Student表存放学生信息

        二、用JDBC来连接、操作数据库

        三、展示Student数据,实现增删改查功能。

        思路是非常简单的,但是要实现还是有很多细节需要注意,下面我就贴上我的代码,结合着代码给大家一步步的分析说明。

        实现:

        一、在数据库建表:这个不用细说,直接贴图。


        二、用JDBC连接数据库:这一块对于刚刚学JDBC的同学来说可能比?#20808;疲?#25152;以我把这一块又分成了四部分(最后的db.properties跟com.student.db一起的),?#19968;?#36880;个说明。看图。

        (1)com.student.db包里有两个类,一个是DBHelper 一个是DBManager,这俩类是用JDBC连接数据库的,固定写法。

        DBManager类

        package com.student.db;
         
        import java.sql.Connection;
        import java.sql.PreparedStatement;
        import java.sql.ResultSet;
        import java.sql.SQLException;
        import java.util.ArrayList;
        import java.util.List;
        import com.student.mapper.IMapper;
        public class DBManager {
        //这里把JDBC连接数据库的步骤(找驱动,建连接,建通道,执行SQL)封装在DBHelper类里面,在DBManager里用getConnection()调用。这样写的目的是方便
         public Connection getConnection(){
         try {
         return DBHelper.getConnection();//得到DBHelper类里面写好的连接
         } catch (ClassNotFoundException e) {
         e.printStackTrace();
         } catch (SQLException e) {
         e.printStackTrace();
         }
         return null;
         }
        //增删改结果集。因为sql语句是变化的,所以设为参数比较方便。params是占位符的,没学的可以忽略。
         public int executeUpdate(String sql,Object[] params){
         Connection conn=null;
         PreparedStatement pst=null;
         try {
         conn=getConnection();//连接
         pst=conn.prepareStatement(sql);//通道
         if(params != null){//占位符的应用。
         for(int i=0;i<params.length;i++){
         pst.setObject(i+1,params[i]);//往通道里放数据,占位符下标从1开始。
         }
         }
         return pst.executeUpdate();
         
         } catch (SQLException e) {
         e.printStackTrace();
         }
         return -1;
         }
        //查询结果集。比增删改要复杂一些,慢慢?#30784;?
        //这里的IMapper是将所有可能的用到的类都放进去,方便以后继承使用。(现在我们写的是Student信息,以后可能会有Teacher信息,Class信息等等)
        //用接口是因为接口多继承,方便维护升级
         public List executeQuery(String sql,IMapper mapper,Object []params){
         Connection conn=null;
         PreparedStatement pst=null;
         ResultSet rst=null;//查询结果集
         List list=new ArrayList();//用一个集合存放Student信息
         try {
         conn=getConnection();
         pst=conn.prepareStatement(sql);
         if(params != null){
         for(int i=0;i<params.length;i++){
         pst.setObject(i+1,params[i]);
         }
         }
         rst=pst.executeQuery();//把通道里的数据放入结果集
         list=mapper.map(rst);//IMapper里有个map接口,里面存着结果集数据。把结果集的数据放入list集合
         } catch (SQLException e) {
         e.printStackTrace();
         }
         return list;
         }
         public int count(String sql){//分页查询 count代表页数。
         Connection conn=null;
         PreparedStatement pst=null;
         ResultSet rst=null;
         try {
         conn=getConnection();
         pst=conn.prepareStatement(sql);
         rst=pst.executeQuery();
         while(rst.next()){
         return rst.getInt(1);//sql语句是select count(*) from stu,显示的是count值,就是一?#23567;?
         }
         } catch (SQLException e) {
         e.printStackTrace();
         }
         return -1; 
         }
         
        }
        

        DBHelper类。在写之前先建一个properties文件,名字为db.properties(如图),注意不要建在包里面。

        package com.student.db;
         
        import java.io.IOException;
        import java.io.InputStream;
        import java.sql.Connection;
        import java.sql.DriverManager;
        import java.sql.SQLException;
        import java.util.Properties;
        public class DBHelper {
         private static String DRIVER;
         private static String URL;
         private static String USER;
         private static String PASSWORD;
         static{
         Properties pro=new Properties();
         InputStream in=DBHelper.class.getClassLoader()
         .getResourceAsStream("db.properties");//读取文件数据
         try {
         pro.load(in);
         } catch (IOException e) {
         e.printStackTrace();
         }
         DRIVER=pro.getProperty("DRIVER");
         URL=pro.getProperty("URL");
         USER=pro.getProperty("USER");
         PASSWORD=pro.getProperty("PASSWORD");
         
         }
         
         public static Connection getConnection() throws ClassNotFoundException, SQLException{
         Class.forName(DRIVER);//找驱动
         return DriverManager.getConnection(URL, USER, PASSWORD);//建连接
         }
         
        }

        (2)com.student.vo包。这里面有一个vo类,我们是要把数据库里的数据放到java里展示,用一个类对象把数据库里的信息一一对应起来就可以很容易的操作。数据库里的一个列对应类对象的一个属性。

        package com.student.vo;
         
        public class Student {
         private String stuid;
         private String name;
         private String age;
         private String sex;
         
         public String getStuid(){
         return stuid;
         }
         public void setStuid(String stuid){
         this.stuid=stuid;
         }
         public String getName() {
         return name;
         }
         public void setName(String name) {
         this.name = name;
         }
         public String getAge() {
         return age;
         }
         public void setAge(String age) {
         this.age = age;
         }
         public String getSex() {
         return sex;
         }
         public void setSex(String sex) {
         this.sex = sex;
         }
         public Student(String stuid,String name,String sex,String age){
         super();
         this.stuid=stuid;
         this.name=name;
         this.age=age;
         this.sex=sex;
         }
         public Student(){
         super();
         }
        }

        (3)com.student.mapper包。这里面一个接口,一个实现类。

        接口:

        package com.student.mapper;
         
        import java.sql.ResultSet;
        import java.util.List;
         
        public interface IMapper {
         List map(ResultSet rst);//声明一个方法存着结果集。
        }
        

        实现类:

        package com.student.mapper;
         
        import java.sql.ResultSet;
        import java.sql.SQLException;
        import java.util.ArrayList;
        import java.util.List;
         
        import com.student.vo.Student;
        public class StuMapper implements IMapper {//实现接口方法
         public List map(ResultSet rst) {
         List<Student> list=new ArrayList<Student>();//建一个集合,里面是Student类里的信息。
         try {
         while(rst.next()){//
         Student stu=new Student();
         stu.setStuid(rst.getString("STUID"));//类对象每一个属性对应数据库的每一?#23567;?
         stu.setName(rst.getString("STUNAME"));
         stu.setAge(rst.getString("AGE"));
         stu.setSex(rst.getString("SEX"));
         list.add(stu);//把类对象放到集合里
         }
         } catch (SQLException e) {
         e.printStackTrace();
         }
         return list;
         }
         
        }
        

        (4)com.student.dao包:这里面的StuDAO类放着增删改查分页等功能

        package com.student.dao;
         
        import java.util.List;
         
        import com.student.db.DBManager;
        import com.student.mapper.IMapper;
        import com.student.mapper.StuMapper;
        import com.student.vo.Student;
         
        public class StuDAO {
         public List<Student> check(){//查看
         String sql="select * from STUDENT";//sql语句
         DBManager db=new DBManager();
         IMapper mapper=new StuMapper();//实现StuMapper
         List<Student> list=db.executeQuery(sql, mapper,null);//null是?#21018;?#20301;符为null,因为查看的是所有信息
         return list;
         }
         public boolean add(Student stu){//添加
         String sql="insert into STUDENT values(?,?,?,?)";
         Object[] params={stu.getStuid(),stu.getName(),stu.getAge(),stu.getSex()};
         DBManager db=new DBManager();
         int i=db.executeUpdate(sql, params);
         if(i>=0){
         System.out.println("成功");
         }else{
         System.out.println("失败");
         }
         return true;
         }
         public boolean update(Student stu){//修改
         String sql="update STUDENT set stuname=?,age=?,sex=? where stuid=?";
         Object params[]={stu.getName(),stu.getAge(),stu.getSex(),stu.getStuid()};
         DBManager db=new DBManager();
         int i=db.executeUpdate(sql, params);
         if(i>=0){
         System.out.println("成功");
         }else{
         System.out.println("失败");
         }
         return true;
         }
         public boolean delete(Student stu){//删除
         String sql="delete from STUDENT where stuid=?";
         Object params[]={stu.getStuid()};
         DBManager db=new DBManager();
         int i=db.executeUpdate(sql, params);
         if(i>=0){
         System.out.println("成功");
         }else{
         System.out.println("失败");
         }
         return true;
         }
         public List<Student> findPage(int pagesize,int pagenow){//分页
         String sql="select * from (select rownum rn ,stu .* from stu) "
         + "where rownum<=? and rn>?";//分页公式
         Object []params={pagesize,(pagenow-1)*pagesize};
         DBManager db=new DBManager();
         IMapper mapper=new StuMapper();
         return db.executeQuery(sql, mapper, params);
         }
         public int findcount(){
         String sql="select count(*) from stu";
         DBManager db=new DBManager();
         return db.count(sql);
         }
         
        }
        

        当把这一块写完之后,其实大部分就已经完成了,JDBC连接数据库基本上是固定的,多写几遍就明白了。

        三、展示Student信息,实现增删改查。看图:

        (1)com.student.show包,展示界面:这里面内容比较多,但是都很容易理解

        package com.student.show;
         
         
        import java.awt.event.ActionEvent;
        import java.awt.event.ActionListener;
        import java.sql.SQLException;
        import java.sql.Statement;
        import java.util.ArrayList;
        import java.util.List;
         
         
        import javax.swing.JButton;
        import javax.swing.JFrame;
        import javax.swing.JOptionPane;
        import javax.swing.JScrollPane;
        import javax.swing.JTable;
         
         
        import com.student.add.Add;
        import com.student.check.Check;
        import com.student.dao.StuDAO;
        import com.student.delete.Delete;
        import com.student.update.Update;
        import com.student.vo.Student;
         
         
        public class Show extends JFrame {
         public static int pagesize=5;//每页显示5条信息
         public static int pagenow=1;//当前页为第一页
         public Show() {
         setSize(500, 430);
         setVisible(true);
         setDefaultCloseOperation(EXIT_ON_CLOSE);//点X号就是关闭
         setResizable(false);//不可改变窗口大小
         setLocationRelativeTo(null);//默认居中显示
         setLayout(null);//采用坐标布局
         
         StuDAO dao = new StuDAO();//前面我们已经?#35328;?#21024;改查分页写到StuDAO里面,现在就直接拿出来用
         List<Student> list =dao.findPage(pagesize, pagenow);
         Student stu = new Student();
         for (int i = 0; i < list.size(); i++) {
         stu = list.get(i);
         }
         String[] rowName = { "学号", "姓名", "年龄", "性别" };//从这里开始是二维数组的遍历使用
         Object[][] data = new Object[list.size()][4];
         for (int i = 0; i < list.size(); i++) {
         Student s = list.get(i);
         Object st[] = { s.getStuid(), s.getName(), s.getAge(), s.getSex() };
         data[i] = st;
         }
         final JTable table = new JTable(data,rowName);
         JScrollPane JSP=new JScrollPane(table);//这一步不能省去,否则显示不出列名
         JSP.setBounds(20, 10, 400, 200);
         add(JSP);
         
         
         JButton jb11=new JButton("首页");
         jb11.setBounds(40,220,80,30);
         add(jb11);
         JButton jb22=new JButton("上一页");
         jb22.setBounds(130,220,80,30);
         add(jb22);
         JButton jb33=new JButton("下一页");
         jb33.setBounds(220,220,80,30);
         add(jb33);
         JButton jb44=new JButton("尾页");
         jb44.setBounds(310,220,80,30);
         add(jb44);
         
         
         JButton jb1 = new JButton("查看信息");
         jb1.setBounds(50, 270, 100, 30);
         add(jb1);
         JButton jb2 = new JButton("修改信息");
         jb2.setBounds(280, 270, 100, 30);
         add(jb2);
         JButton jb3 = new JButton("添?#26377;?#24687;");
         jb3.setBounds(50, 320, 100, 30);
         add(jb3);
         JButton jb4 = new JButton("删除信息");
         jb4.setBounds(280, 320, 100, 30);
         add(jb4);
         JButton jb5 = new JButton("退出");
         jb5.setBounds(280, 360, 100, 30);
         add(jb5);
         
         
         jb1.addActionListener(new ActionListener() {//查看 
         public void actionPerformed(ActionEvent event) {
         int row = table.getSelectedRow();//选中第?#24863;?
         int index = 0;
         if(row==-1){
         JOptionPane.showMessageDialog(null,"您没有选中信息");
         return;
         }
         String id = (String) table.getValueAt(row, index);// 跟Check联系起来
         Check check=new Check(id);
         check.setVisible(true);
         setVisible(false); 
         }
         });
         
         
         jb2.addActionListener(new ActionListener() {//修改
         public void actionPerformed(ActionEvent event) {
         int row = table.getSelectedRow();
         int index = 0;
         if(row==-1){
         JOptionPane.showMessageDialog(null,"您没有选中信息");
         return;
         }
         String id = (String) table.getValueAt(row, index);// 跟Update联系起来
         Update up=new Update(id);
         up.setVisible(true);
         setVisible(false);
         
         
         }
         });
         
         
         jb3.addActionListener(new ActionListener() {//添加
         public void actionPerformed(ActionEvent event) {
         Add add = new Add();
         add.setVisible(true);
         setVisible(false);
         }
         });
         jb4.addActionListener(new ActionListener() {//删除
         public void actionPerformed(ActionEvent event) {
         int row = table.getSelectedRow();
         int index = 0;
         if(row==-1){
         JOptionPane.showMessageDialog(null,"您没有选中信息");
         return;
         }
         String num=(String) table.getValueAt(row, index);
         Delete d=new Delete(num);
         d.setVisible(true);
         setVisible(false);
         
         }
         });
         jb11.addActionListener(new ActionListener() {//首页
         public void actionPerformed(ActionEvent event) {
         pagenow=1;
         Show show=new Show();
         setVisible(false);
         show.setVisible(true);
         }
         });
         jb22.addActionListener(new ActionListener() {//上一页
         public void actionPerformed(ActionEvent event) {
         if(pagenow != 1){
         pagenow=pagenow-1;
         }else{
         return;
         }
         Show show=new Show();
         setVisible(false);
         show.setVisible(true);
         }
         });
         jb33.addActionListener(new ActionListener() {//下一页
         public void actionPerformed(ActionEvent event) {
         StuDAO dao=new StuDAO();
         int count=dao.findcount();
         int pageCount=(count-1)/pagesize+1;//pageCount表示最后一页
         if(pagenow != pageCount){
         pagenow=pagenow+1;
         }else{
         return;
         }
         Show show=new Show();
         setVisible(false);
         show.setVisible(true);
         }
         });
         jb44.addActionListener(new ActionListener() {//尾页
         public void actionPerformed(ActionEvent event) {
         StuDAO dao=new StuDAO();
         int count=dao.findcount();
         int pageCount=(count-1)/pagesize+1;
         pagenow=pageCount;
         Show show=new Show();
         setVisible(false);
         show.setVisible(true);
         }
         });
         }
         
         
         public static void main(String args[]) {
         Show s = new Show();
         }
        }

        (2)增删改查:大同小异,因为我们在StuDAO里面已经写好了,在用的时候就方便多了。

        ①添加:

        package com.student.add;
         
         
        import java.sql.SQLException;
        import java.util.List;
         
        import javax.swing.JButton;
        import javax.swing.JFrame;
        import javax.swing.JLabel;
        import javax.swing.JOptionPane;
        import javax.swing.JTextField;
         
        import com.student.dao.StuDAO;
        import com.student.db.DBManager;
        import com.student.show.Show;
        import com.student.vo.Student;
         
         
        public class Add extends JFrame{
         public Add(){
         setSize(300,400);
         setVisible(true);
         setDefaultCloseOperation(EXIT_ON_CLOSE);
         setResizable(false);
         setLocationRelativeTo(null);
         setLayout(null);
         
         JLabel j0=new JLabel("添?#26377;?#24687;");
         j0.setBounds(100,20,80,30);
         add(j0);
         
         JLabel j1=new JLabel("学号:");
         j1.setBounds(30,70,50,30);
         add(j1);
         
         final JTextField jt1=new JTextField();
         jt1.setBounds(100,70,130,30);
         add(jt1);
         
         JLabel j2=new JLabel("姓名:");
         j2.setBounds(30,120,50,30);
         add(j2);
         
         final JTextField jt2=new JTextField();
         jt2.setBounds(100,120,130,30);
         add(jt2);
         
         JLabel j3=new JLabel("性别:");
         j3.setBounds(30,170,50,30);
         add(j3);
         
         final JTextField jt3=new JTextField();
         jt3.setBounds(100,170,130,30);
         add(jt3);
         
         JLabel j4=new JLabel("年龄:");
         j4.setBounds(30,220,50,30);
         add(j4);
         
         final JTextField jt4=new JTextField();
         jt4.setBounds(100,220,130,30);
         add(jt4);
         
         JButton jb1=new JButton("添加");
         jb1.setBounds(50,280,80,30);
         add(jb1);
         
         JButton jb2=new JButton("返回");
         jb2.setBounds(150,280,80,30);
         add(jb2);
         
         jb1.addActionListener(new ActionListener(){
         public void actionPerformed(ActionEvent event){
         String a=jt1.getText();//获取输入的信息
         String b=jt2.getText();
         String c=jt3.getText();
         String d=jt4.getText();
         Student stu=new Student(a,b,c,d);
         StuDAO dao=new StuDAO();
         List<Student> list=dao.check();//调用StuDAO里面的check()方法
         for(Student st:list){//遍历集合
         if(st.getStuid().equals(a)){
         JOptionPane.showMessageDialog(null,"该账号存在");
         return;
         }
         }
         dao.add(stu);
         JOptionPane.showMessageDialog(null,"添加成功");
         Show show=new Show();
         show.setVisible(true);
         setVisible(false);
         }
         });
         jb2.addActionListener(new ActionListener(){
         public void actionPerformed(ActionEvent event){
         Show s=new Show();
         s.setVisible(true);
         setVisible(false);
         }
         });
         }
         public static void main(String []args){
         Add add=new Add();
         }
        }
        

        ②修改:

        package com.student.update;
         
        import java.awt.event.ActionEvent;
        import java.awt.event.ActionListener;
         
        import java.util.List;
         
        import javax.swing.JButton;
        import javax.swing.JFrame;
        import javax.swing.JLabel;
        import javax.swing.JOptionPane;
        import javax.swing.JTextField;
         
        import com.student.dao.StuDAO;
        import com.student.db.DBManager;
        import com.student.show.Show;
        import com.student.vo.Student;
         
        public class Update extends JFrame{
         public Update(final String id){
         setSize(300,400);
         setVisible(true);
         setDefaultCloseOperation(EXIT_ON_CLOSE);
         setResizable(false);
         setLocationRelativeTo(null);
         setLayout(null);
         
         JLabel j0=new JLabel("修改信息");
         j0.setBounds(100,20,80,30);
         add(j0);
         
         JLabel j1=new JLabel("学号:");
         j1.setBounds(30,70,50,30);
         add(j1);
         
         final JLabel jt1=new JLabel();
         jt1.setBounds(100,70,130,30);
         add(jt1);
         
         JLabel j2=new JLabel("姓名:");
         j2.setBounds(30,120,50,30);
         add(j2);
         
         final JTextField jt2=new JTextField();
         jt2.setBounds(100,120,130,30);
         add(jt2);
         
         JLabel j3=new JLabel("年龄:");
         j3.setBounds(30,170,50,30);
         add(j3);
         
         final JTextField jt3=new JTextField();
         jt3.setBounds(100,170,130,30);
         add(jt3);
         
         JLabel j4=new JLabel("性别:");
         j4.setBounds(30,220,50,30);
         add(j4);
         
         final JTextField jt4=new JTextField();
         jt4.setBounds(100,220,130,30);
         add(jt4);
         
         JButton jb1=new JButton("修改");
         jb1.setBounds(50,280,80,30);
         add(jb1);
         
         JButton jb2=new JButton("返回");
         jb2.setBounds(150,280,80,30);
         add(jb2);
         
         StuDAO dao=new StuDAO();
         List<Student> list=dao.check();
         Student stu=new Student();
         for(int i=0;i<list.size();i++){//遍历,找?#25509;雐d相同的学号。
         stu=list.get(i);
         if(stu.getStuid().equals(id)){//id是参数,跟前面Show联系起?#30784;?
         break;
         }
         }
         jt1.setText(stu.getStuid());
         jt2.setText(stu.getName());
         jt3.setText(stu.getAge());
         jt4.setText(stu.getSex());
         
         jb1.addActionListener(new ActionListener(){
         public void actionPerformed(ActionEvent event){
         StuDAO dao=new StuDAO();
         Student stu=new Student();
         stu.setStuid(id);
         stu.setName(jt2.getText());
         stu.setAge(jt3.getText());
         stu.setSex(jt4.getText());
         dao.update(stu);//StuDAO里的update()已经写好如何修改,这里直接用
         JOptionPane.showMessageDialog(null,"修改成功");
         Show show=new Show();
         show.setVisible(true);
         setVisible(false);
         }
         });
         jb2.addActionListener(new ActionListener(){
         public void actionPerformed(ActionEvent event){
         Show s=new Show();
         s.setVisible(true);
         setVisible(false);
         }
         });
         }
         
         
        }
        

        ③查看:

        package com.student.check;
         
        import java.awt.event.ActionEvent;
        import java.awt.event.ActionListener;
        import java.util.List;
         
        import javax.swing.JButton;
        import javax.swing.JFrame;
        import javax.swing.JLabel;
        import javax.swing.JTextField;
         
        import com.student.dao.StuDAO;
        import com.student.show.Show;
        import com.student.vo.Student;
         
        public class Check extends JFrame{
         public Check(String id) {
         setSize(300,400);
         setVisible(true);
         setDefaultCloseOperation(EXIT_ON_CLOSE);
         setResizable(false);
         setLocationRelativeTo(null);
         setLayout(null);
         
         JLabel j0=new JLabel("学生信息");
         j0.setBounds(100,20,80,30);
         add(j0);
         
         JLabel j1=new JLabel("学号:");
         j1.setBounds(30,70,50,30);
         add(j1);
         
         final JLabel jt1=new JLabel();
         jt1.setBounds(100,70,130,30);
         add(jt1);
         
         JLabel j2=new JLabel("姓名:");
         j2.setBounds(30,120,50,30);
         add(j2);
         
         final JLabel jt2=new JLabel();
         jt2.setBounds(100,120,130,30);
         add(jt2);
         
         JLabel j3=new JLabel("年龄:");
         j3.setBounds(30,170,50,30);
         add(j3);
         
         final JLabel jt3=new JLabel();
         jt3.setBounds(100,170,130,30);
         add(jt3);
         
         JLabel j4=new JLabel("性别:");
         j4.setBounds(30,220,50,30);
         add(j4);
         
         final JLabel jt4=new JLabel();
         jt4.setBounds(100,220,130,30);
         add(jt4);
         
         JButton jb1=new JButton("确认");
         jb1.setBounds(50,280,80,30);
         add(jb1);
         
         JButton jb2=new JButton("返回");
         jb2.setBounds(150,280,80,30);
         add(jb2);
         
         StuDAO dao=new StuDAO();
         List<Student> list=dao.check();
         Student stu=new Student();
         for(int i=0;i<list.size();i++){
         stu=list.get(i);
         if(stu.getStuid().equals(id)){
         break;
         }
         }
         jt1.setText(stu.getStuid());
         jt2.setText(stu.getName());
         jt3.setText(stu.getAge());
         jt4.setText(stu.getSex());
         
         jb1.addActionListener(new ActionListener(){
         public void actionPerformed(ActionEvent event){
         Show s=new Show();
         s.setVisible(true);
         setVisible(false);
         }
         });
         jb2.addActionListener(new ActionListener(){
         public void actionPerformed(ActionEvent event){
         Show s=new Show();
         s.setVisible(true);
         setVisible(false);
         }
         });
         
         }
         
        }

        ④删除:

        package com.student.delete;
         
        import java.awt.event.ActionEvent;
        import java.awt.event.ActionListener;
        import java.util.List;
         
        import javax.swing.JButton;
        import javax.swing.JFrame;
        import javax.swing.JLabel;
        import javax.swing.JOptionPane;
        import javax.swing.JTextField;
         
        import com.student.dao.StuDAO;
        import com.student.db.DBManager;
        import com.student.show.Show;
        import com.student.vo.Student;
         
         
        public class Delete extends JFrame{
         public Delete(final String num){
         setSize(300,400);
         setVisible(true);
         setDefaultCloseOperation(EXIT_ON_CLOSE);
         setResizable(false);
         setLocationRelativeTo(null);
         setLayout(null);
         
         JLabel j0=new JLabel("您确认要删除该信息吗");
         j0.setBounds(100,20,200,30);
         add(j0);
         
         JLabel j1=new JLabel("学号:");
         j1.setBounds(30,70,50,30);
         add(j1);
         
         final JLabel jt1=new JLabel();
         jt1.setBounds(100,70,130,30);
         add(jt1);
         
         JLabel j2=new JLabel("姓名:");
         j2.setBounds(30,120,50,30);
         add(j2);
         
         final JLabel jt2=new JLabel();
         jt2.setBounds(100,120,130,30);
         add(jt2);
         
         JLabel j3=new JLabel("年龄:");
         j3.setBounds(30,170,50,30);
         add(j3);
         
         final JLabel jt3=new JLabel();
         jt3.setBounds(100,170,130,30);
         add(jt3);
         
         JLabel j4=new JLabel("性别:");
         j4.setBounds(30,220,50,30);
         add(j4);
         
         final JLabel jt4=new JLabel();
         jt4.setBounds(100,220,130,30);
         add(jt4);
         
         JButton jb1=new JButton("确认");
         jb1.setBounds(20,280,80,30);
         add(jb1);
         
         JButton jb2=new JButton("返回");
         jb2.setBounds(180,280,80,30);
         add(jb2);
         
         StuDAO dao=new StuDAO();
         List<Student> list=dao.check();
         Student stu=new Student();
         for(int i=0;i<list.size();i++){
         stu=list.get(i);
         if(stu.getStuid().equals(num)){
         break;
         }
         }
         
         jt1.setText(stu.getStuid());
         jt2.setText(stu.getName());
         jt3.setText(stu.getAge());
         jt4.setText(stu.getSex());
         
         jb1.addActionListener(new ActionListener(){
         public void actionPerformed(ActionEvent event){
         StuDAO dao=new StuDAO();
         Student stu=new Student();
         stu.setStuid(num);
         dao.delete(stu);
         JOptionPane.showMessageDialog(null,"删除成功");
         Show show=new Show();
         show.setVisible(true);
         setVisible(false);
         }
         });
         jb2.addActionListener(new ActionListener(){
         public void actionPerformed(ActionEvent event){
         Show s=new Show();
         s.setVisible(true);
         setVisible(false);
         }
         });
         }
         
        }

        最后贴一下登?#23478;?#38754;,因为是以管理者的身份登录的不需要判断,就非常简单:

        package com.student.login;
         
        import java.awt.event.ActionEvent;
        import java.awt.event.ActionListener;
         
        import javax.swing.JButton;
        import javax.swing.JFrame;
        import javax.swing.JLabel;
        import javax.swing.JOptionPane;
        import javax.swing.JPasswordField;
        import javax.swing.JTextField;
        import com.student.show.Show;
         
        public class Login extends JFrame{
         public Login(){
         setSize(300,250);
         setVisible(true);
         setDefaultCloseOperation(EXIT_ON_CLOSE);
         setResizable(false);
         setLocationRelativeTo(null);
         setLayout(null);
         
         JLabel j=new JLabel("登录窗口");
         j.setBounds(100,20,80,30);
         add(j);
         
         JLabel j1=new JLabel("用户名:");
         j1.setBounds(50,80,60,30);
         add(j1);
         
         final JTextField jt1=new JTextField();
         jt1.setBounds(120,80,120,30);
         add(jt1);
         
         JLabel j2=new JLabel("密 码:");
         j2.setBounds(50,130,60,30);
         add(j2);
         
         final JPasswordField jp=new JPasswordField();
         jp.setBounds(120,130,120,30);
         add(jp);
         
         JButton jb1=new JButton("登录");
         jb1.setBounds(70,180,60,30);
         add(jb1);
         
         JButton jb2=new JButton("重置");
         jb2.setBounds(170,180,60,30);
         add(jb2);
         
         jb1.addActionListener(new ActionListener(){
         public void actionPerformed(ActionEvent event){
         String id=jt1.getText();
         char ch[]=jp.getPassword();
         String pass=new String(ch);
         if(id.equals(abcdefj){//设置用户名为abcdefj
         if(pass.equals(123456)){//设置密码为123456
         JOptionPane.showMessageDialog(null,"登录成功");
         Show s=new Show();//成功后跳到Show
         s.setVisible(true);
         setVisible(false);
         }else{
         JOptionPane.showMessageDialog(null,"密码错误");
         jt1.setText("");
         return;
         }
         }else{
         JOptionPane.showMessageDialog(null,"您输入的账号有误");
         jt1.setText("");
         jp.setText("");
         return;
         }
         }
         });
         }
         public static void main(String []args){
         Login lo=new Login();
         }
        } 

        写在最后:

        刚开始学的时候感觉很绕,尤其是JDBC那,后来发现,是因为前面java基础掌握的不行,我又回去好好复习了java基础,才发现JDBC是死的,固定的写法,背过就行了。所以再做这个学生管理系统,就感觉不复杂了。先有一个大的思路,然后顺着思路往下走,逐步实现每个功能。

        以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

        相关文章

        最新评论

        2018白小姐一肖中特马
        <sup id="sjju3"><noscript id="sjju3"></noscript></sup>
        <big id="sjju3"></big>

      2. <blockquote id="sjju3"></blockquote>
        <blockquote id="sjju3"></blockquote>

          <td id="sjju3"></td>

          <big id="sjju3"></big>
            <code id="sjju3"><strong id="sjju3"><dl id="sjju3"></dl></strong></code>
          1. <sup id="sjju3"><noscript id="sjju3"></noscript></sup>
            <big id="sjju3"></big>

          2. <blockquote id="sjju3"></blockquote>
            <blockquote id="sjju3"></blockquote>

              <td id="sjju3"></td>

              <big id="sjju3"></big>
                <code id="sjju3"><strong id="sjju3"><dl id="sjju3"></dl></strong></code>