本系统采用GUI + Microsoft SQL Server 2008 R2的模式进行开发。GUI与Microsoft SQL Server 2008 R2之间通过java JDBC连接。
在SQL Server中新建University数据库,student表
系统登录流程图
eclipse项目结构
整个系统程序分为8个文件,放在同一个名为javaJDBC的包里,代码总行数为717行(包括注释),Referenced Libraries中存放sql驱动,images中存放软件图标及登录界面的图片。
源程序
SQLServerTest.java
package javaJDBC;
public class SQLServerTest {
public static void main(String[] args) {
new LoginFrame();
}
}
LoginFrame.java
package javaJDBC;
import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class LoginFrame extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
JLabel userName,userPwd,tubiao;
JTextField nameField;
JPasswordField pwdField;
JButton button;
JPanel panel;
LoginFrame(){
//图片在原有基础上要调整大小,使其适应窗口
tubiao = new JLabel(new ImageIcon("images/1.jpeg"));
//设置各组件布局
add(tubiao,BorderLayout.NORTH);
userName = new JLabel("账号",JLabel.CENTER);
userPwd = new JLabel("密码",JLabel.CENTER);
nameField = new JTextField(8);
pwdField = new JPasswordField(8);
panel = new JPanel();
panel.setLayout(new GridLayout(2,2));
panel.add(userName);
panel.add(nameField);
panel.add(userPwd);
panel.add(pwdField);
add(panel,BorderLayout.CENTER);
button = new JButton("登录");
add(button,BorderLayout.SOUTH);
//事件监听
button.addActionListener(this);
//小图标
ImageIcon tubiao = new ImageIcon("images/2.jpg");
setIconImage(tubiao.getImage());
//点关闭则退出程序
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置窗口可见
setVisible(true);
//不允许修改计算器窗口的大小
setResizable(false);
//设置窗口位置及大小
setBounds(400,150,450,350);
//窗口标题
setTitle("登录界面");
}
//事件处理
public void actionPerformed(ActionEvent e) {
String name,pwd;
name = nameField.getText();
//char[]转换成String
pwd = String.valueOf(pwdField.getPassword());
//动态加载驱动
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //加载数据库驱动
}
catch(ClassNotFoundException ex) {
System.out.println(ex);
}
try {
//连接数据库的语句
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=University";
//建立数据库连接
DriverManager.getConnection(url,name,pwd);
//显示提示信息
JOptionPane.showMessageDialog(this, "登录成功!","消息对话框",JOptionPane.WARNING_MESSAGE);
//清空窗口
this.dispose();
//打开新的窗口
new CommonFrame();
}
catch(SQLException exp) {
System.out.println(exp);
JOptionPane.showMessageDialog(this, "账号或者密码错误!","消息对话框",JOptionPane.WARNING_MESSAGE);
}
}
}
CommonFrame.java
package javaJDBC;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class CommonFrame extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
JMenuBar bar;
JMenu menu;
JMenuItem scanItem,deleteItem,updateItem,insertItem,searchItem;
Scan scan; //查看所有学生信息
Delete delete;//删除学生信息
Update update;//更新学生信息
Insert insert;//插入学生信息
Search search;//查找学生信息
CardLayout card;
JPanel pCenter;
CommonFrame() {
//容器尺寸变化时,组件的相对位置不变,大小变化
setLayout(new GridLayout());
//创建菜单项
scanItem = new JMenuItem("浏览");
deleteItem = new JMenuItem("删除");
updateItem = new JMenuItem("修改");
insertItem = new JMenuItem("添加");
searchItem = new JMenuItem("查找");
//菜单条
bar = new JMenuBar();
//菜单
menu = new JMenu("菜单");
menu.add(scanItem);
menu.add(deleteItem);
menu.add(updateItem);
menu.add(insertItem);
menu.add(searchItem);
bar.add(menu);
//将菜单添加到容器中
setJMenuBar(bar);
scanItem.addActionListener(this);
deleteItem.addActionListener(this);
updateItem.addActionListener(this);
insertItem.addActionListener(this);
searchItem.addActionListener(this);
scan = new Scan();
update = new Update();
delete = new Delete();
insert = new Insert();
search = new Search();
//实现多个组件在同一容器区域内交替显示,一张卡片空间中只能显示一个组件
card = new CardLayout();
pCenter = new JPanel