说明
1.本文适用对象:想要做项目练一下手,检验一下自己所学的小白程序员。
2.本文开发环境:jdk10+MySQL8.0+idea 2018
3.本文完成内容:MySQL的curd以及简单界面的制作(Swing)。
4.如果有必要,可以私信笔者给出源代码以及数据库文件。
正文
在观看本文章前,建议具备知识有:基本的MySQL的curd常识,基本Java知识点的了解,以及基本Swing界面的制作(可以边看边对照API).下面开始正文讲解:
在设计本系统时,需要做出基本的登陆界面,那么需要基本了解到容器的概念-顶层容器和中间容器,建议观看blog:https://blog.youkuaiyun.com/liujun13579/article/category/1172073 里面有超级详细的讲解。
看完之后,回归到顶层容器的设计,我们需要在顶层容器中定义的内容:
- 初始界面的名称;
- 初始界面的大小;
- 初始界面刚显示出来位于屏幕的何方;
- 初始的退出方式等。
各个功能键是定义在中间容器JPanel中,然后依附于顶层容器。
在程序运行过程中需要对按键进行实时的检测,判断哪个按键被按,则执行具体的方法。
快捷入口(本系统在编写过程中遇到的问题,如有相同,可以直接查看内容,否则跳过就好)
问题1:JDBC加载失败(重点)
https://blog.youkuaiyun.com/weixin_38627405/article/details/73824733
https://www.cnblogs.com/Xieyang-blog/p/8489400.html
问题2:
MYSQL:WARN: Establishing SSL connection without server's identity verification is not recommended.
解决办法:https://blog.youkuaiyun.com/u010429286/article/details/77750177
问题3:
mysql运行报The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone的解决方法
解决方法:https://www.cnblogs.com/ljy-20180122/p/9157912.html
问题4:MySQL如何设置自动获取当前时间
解决办法:https://www.cnblogs.com/lhj588/p/4245719.html
下面直接给出本设计中的代码(有较为详细的注释):
首先是基础界面示例代码:
package FirstVision;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* @className:Window
* @Description:学生信息管理系统的登陆界面
* @author:TAO
* @Date:2018/6/26 8:40
*/
public class Window {
public static void main(String[] args) {
JFrame jFrame=new JFrame("学生信息管理系统");
Dimension dimension=new Dimension(400,300);
Point point=new Point(350,150);
jFrame.setSize(dimension);
jFrame.setLocation(point);//设置组件的位置
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//jFrame.setVisible(true);
JButton button1=new JButton("添加");
JButton button2=new JButton("修改");
JButton button3=new JButton("查询");
JButton button4=new JButton("删除");
JButton button5=new JButton("浏览");//定义五个功能键
FlowLayout flowLayout=new FlowLayout(FlowLayout.LEFT,10,10);//设置对其方式以及确定的左右上下间隙
JPanel panel=new JPanel(flowLayout);
panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.add(button4);
panel.add(button5);
jFrame.setContentPane(panel);
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Add add=new Add();
}
});
button2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Change change=new Change();
}
});
button3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Ask ask=new Ask();
}
});
button4.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Delete delete=new Delete();
}
});
button5.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Look look=new Look();
}
});
jFrame.setVisible(true);//JAVA写界面程序的时候,要把setVisible(true)放到最后面,不然在这句之后添加的组件有时候不显示,需要重新刷新。
}
}
再是MySQL的curd和查看整个表内容的方法
首先是添加:
package FirstVision;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
/**
* @className:Add
* @Description:数据库添加
* @author:TAO
* @Date:2018/6/26 8:54
*/
public class Add extends JFrame {
private static final long serialVersionUID=-1928970409928880648L;
JLabel jlnumber=new JLabel("学号:");
JLabel jlname=new JLabel("姓名:");
JLabel jlsex=new JLabel("性别:");
JLabel jlbirthday=new JLabel("生日:");
JLabel jldepartment=new JLabel("学院:");
JTextField jtnumber=new JTextField("",20);
JTextField jtname=new JTextField("",20);
JTextField jtsex=new JTextField("",20);
JTextField jtbirthday=new JTextField("",20);
JTextField jtdepartment=new JTextField("",20);
JButton buttonadd=new JButton("添加");
JButton buttonreturn=new JButton("返回");
public Add(){
JPanel jpnumber=new JPanel();
JPanel jpname=new JPanel();
JPan