学生学籍管理系统简单设计(下)

七、Java简单联系
MainFrame

package Studenstatus;

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTable;

public class MainFrame extends JFrame{
	public MainFrame() {
		this.setSize(400,300);
		this.setTitle("欢迎使用学生学籍系统");
		Container pane=this.getContentPane();
		pane.setLayout(new FlowLayout(FlowLayout.LEFT));
		
		JTable table=new JTable();
		pane.add(table);
		
		//学籍录入功能
		JButton btnAdd=new JButton("学籍录入");
		pane.add(btnAdd);
		btnAdd.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				EntryFrame f =new EntryFrame();
				f.setVisible(true);
			}
		});
		
		//成绩统计排名功能
		JButton btnAdd2=new JButton("成绩统计");
		pane.add(btnAdd2);
		btnAdd2.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				CountFrame f =new CountFrame();
				f.setVisible(true);
			}
		});
		
		this.setLocationRelativeTo(null);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
	}
	public static void main(String[] args) {
		MainFrame f = new MainFrame();
		f.setVisible(true);
	}
}

EntryFrame

package Studenstatus;

import java.awt.Container;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Statement;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.time.LocalDateTime;
import java.time.ZoneOffset;

import javax.swing.*;

import com.microsoft.sqlserver.jdbc.SQLServerDataSource;


public class EntryFrame extends JFrame{
	public  EntryFrame() {
		this.setSize(300,300);
		this.setTitle("学籍录入");
		Container pane=this.getContentPane();
		pane.setLayout(new FlowLayout(FlowLayout.LEFT));
		
		JLabel txt1 = new JLabel("学号:");
		JTextField txtSno = new JTextField(20);
		pane.add(txt1);
		pane.add(txtSno);

		JLabel txt2 = new JLabel("姓名:");
		JTextField txtName = new JTextField(20);
		pane.add(txt2);
		pane.add(txtName);
		
		JLabel txt3 = new JLabel("性别:");
		JTextField txtSex = new JTextField(20);
		pane.add(txt3);
		pane.add(txtSex);
		
		JLabel txt4 = new JLabel("年龄:");
		JTextField txtAge = new JTextField(20);
		pane.add(txt4);
		pane.add(txtAge);
		
		JLabel txt5 = new JLabel("系别:");
		JTextField txtDeptno = new JTextField(20);
		pane.add(txt5);
		pane.add(txtDeptno);
		
		JLabel txt6 = new JLabel("专业:");
		JTextField txtPro = new JTextField(20);
		pane.add(txt6);
		pane.add(txtPro);
		
		JLabel txt7 = new JLabel("学习情况:");
		JTextField txtGra = new JTextField(20);
		pane.add(txt7);
		pane.add(txtGra);
		
		JLabel txt8 = new JLabel("联系方式:");
		JTextField txtTel = new JTextField(20);
		pane.add(txt8);
		pane.add(txtTel);
		
		JButton btnOK=new JButton("添加学生信息");
		 pane.add(btnOK);
		 JFrame frame=this;
		 btnOK.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				
				if(txtSno.getText().length()==0||txtName.getText().length()==0 || txtDeptno.getText().length()==0
						||txtPro.getText().length()==0||txtGra.getText().length()==0) {
					JOptionPane.showMessageDialog(frame, "学号,姓名,系别,专业,学习情况必填,但是你没有填!");
					return;
				}
				// Create a variable for the connection string.
				String connectionUrl = "jdbc:sqlserver://localhost:1433;" + "databaseName=Student status; ";

				// Declare the JDBC objects.
				Connection con = null;
				Statement stmt = null;
				ResultSet rs = null;

				try {
					// Establish the connection.
					//com.microsoft.jdbc.Sqlserver.SQLServerDriver
					Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
					con = DriverManager.getConnection(connectionUrl, "sa", "123456");
					

					// Create and execute an SQL statement that returns some data.
					String SQL = "insert into Student(sno,sname,sex,age,deptno,profession,graduation,tel)"
							+"values('"+txtSno.getText()+"','"+txtName.getText()+"','"+txtSex.getText()
							+"','"+txtAge.getText()+"','"+txtDeptno.getText()+"','"+txtPro.getText()
							+"','"+txtGra.getText()+"','"+txtTel.getText()+"')"; 
					stmt = con.createStatement();
					int result = stmt.executeUpdate(SQL);

					if(result==1) 
						JOptionPane.showMessageDialog(frame, "插入成功!");}
					// Iterate through the data in the result set and display it.
				// Handle any errors that may have occurred.
				catch (Exception ex) {
					ex.printStackTrace();
				} finally {
					if (rs != null)
						try {
							rs.close();
						} catch (Exception e1) {
						}
					if (stmt != null)
						try {
							stmt.close();
						} catch (Exception e2) {
						}
					if (con != null)
						try {
							con.close();
						} catch (Exception e3) {
						}
				}
			}

		});
		 JButton btnClose = new JButton("退出");
			pane.add(btnClose);
			btnClose.addActionListener(new ActionListener() {
				@Override
				public void actionPerformed(ActionEvent e) {
					frame.setVisible(false);
				}

			});
			this.setLocationRelativeTo(null);
			this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		}
	}

CountFrame

package Studenstatus;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.security.PublicKey;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.Scrollable;


public class CountFrame extends JFrame {
		private JScrollPane scrocllPane;

		public CountFrame() {
			this.setSize(300,300);
			this.setTitle("成绩统计");	
			Container pane=this.getContentPane();
			pane.setLayout(new FlowLayout(FlowLayout.LEFT));
			
			
			String[] listname= {"学生学号","课程号","成绩","学分"};
			String[][] listvalue= getCountFromSc();
			
			for(int i=0;i<listvalue.length;i++) {
				for (int j=0;j<listvalue[i].length;j++) {
					System.out.print(listvalue[i][j]+" ");
				}
				System.out.println();
			}
			JTable table =new JTable(listvalue,listname);
			JScrollPane scrollPane=new JScrollPane(table);
			scrollPane.add(table);
			scrocllPane.setViewportView(table);
			pane.add(scrollPane, BorderLayout.CENTER);
			
			
			JButton btnAdd = new JButton("查询");
			pane.add(btnAdd, BorderLayout.SOUTH);
			btnAdd.addActionListener(new ActionListener() {
				@Override
				public void actionPerformed(ActionEvent e) {
					CountFrame f = new CountFrame();
					f.setVisible(true);
				}
			});

			this.setLocationRelativeTo(null);
			this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		}
			 public String[][] getCountFromSc(){
					String connectionUrl = "jdbc:sqlserver://localhost:1433;" + "databaseName=Student status; ";
					Connection con = null;
					Statement stmt = null;
					ResultSet rs = null;
					String[][] count=new String[10][4];

					try {
						Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
						con = DriverManager.getConnection(connectionUrl, "sa", "13146179");
						

						// Create and execute an SQL statement that returns some data.
						
						String SQL = "select * from Sc"; 
						stmt=con.createStatement();
						
						int i=0;
						rs =stmt.executeQuery(SQL);
							while(rs.next()) {
								count[i]=new String[] {rs.getString("sno"),rs.getString("cno"),rs.getString("grade"),rs.getString("credit")};
								i++;
							}
							
					}
						
					catch (Exception ex) {
						ex.printStackTrace();
					} finally {
						if (rs != null)
							try {
								rs.close();
							} catch (Exception e1) {
							}
						if (stmt != null)
							try {
								stmt.close();
							} catch (Exception e2) {
							}
						if (con != null)
							try {
								con.close();
							} catch (Exception e3) {
							}
					}
					return count;
			 }
		}
			 
					 
			
利用Java简单实现了,对数据库的录入和查询功能。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值