创建一个窗体,选择合适的布局管理器,显示一个按钮“查询”,点击该按钮以后,查询university数据库中的student表(包括学号,姓名,性别,年龄,班级,来自省份等字段)中的信息,并将查询结果返回给窗体,显示在窗体的下拉列表(或文本框)中;在窗体中显示一个按钮“注册”,以及可以填写学生各项信息的输入框,输入学生各项信息后,点击注册按钮,程序判断该学生是否已存在于数据库中,如果不存在,则注册到数据库,并显示注册成功,如果存在,则提示注册失败。
-----------------------------------------------------------------------------------------------------------------------------
数据库准备:
程序只有一个java文件:
package five1;
import java.awt.Button;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
public class five1 extends Frame {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
new five1().launchFrame();
}
public void launchFrame() {
Panel p1 = new Panel();
Panel p2 = new Panel();
TextField reasult = new TextField("输入姓名查找");
TextField name = new TextField("姓名");
TextField id = new TextField("学号");
TextField age = new TextField("年龄");
TextField sex = new TextField("性别");
TextField hisclass = new TextField("班级");
TextField province = new TextField("省份");
p1.setLayout(new GridLayout(1,2));
p2.setLayout(new GridLayout(8,1));
Frame f = new Frame("高意坨");
Button b0 = new Button("查询");
Button b1 = new Button("注册");
Label lblreasult = new Label(" ");
f.setSize(600,600);
p1.setSize(600,100);
p1.add(b1);
p1.add(b0);
p2.add(lblreasult);
p2.add(reasult);
p2.add(name);
p2.add(id);
p2.add(age);
p2.add(sex);
p2.add(hisclass);
p2.add(province);
f.add(p1,"North");
f.add(p2,"Center");
f.setVisible(true);
b0.addActionListener(new myMathListener(reasult,lblreasult));//查询
b1.addActionListener(new hisMathListener(id, name,sex,age,hisclass,province));//注冊按钮的监听事件
}
}
/*查詢*/
class myMathListener implements ActionListener {
TextField text;
Label lable;
String t="";
String s1="";
//System.out.println(t);
String jdbcDriver = "com.mysql.jdbc.Driver";
String jdbcUrl = "jdbc:mysql://localhost:3306/student";
String jdbcUser = "root";
String jdbcPwd = "123456";
Connection conn;
Statement st = null;
public myMathListener(TextField text,Label lable) {
this.text = text;
this.lable=lable;
}
public void actionPerformed(ActionEvent e) {
t=text.getText();
try {
Class.forName(jdbcDriver);
conn = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPwd);
st = conn.createStatement();
System.out.println(" 数据库连接成功");
String s="'"+t+"'";
String sql ="select * from student where name like "+s;
ResultSet rs = st.executeQuery(sql);
while (rs.next()) {
System.out.println("----------");
s1="·学号:"+(String) rs.getObject("id")+" "
+"·姓名:"+(String)rs.getObject("name")+" "
+"·性别:"+(String)rs.getObject("sex")+" "
+"·年龄:"+(String)rs.getObject("age")+" "
+"·班级:"+(String)rs.getObject("class")+" "
+"·省份:"+(String)rs.getObject("province");
System.out.println("学号"+rs.getObject("id"));
System.out.println("姓名"+rs.getObject("name"));
System.out.println("性别"+rs.getObject("sex"));
System.out.println("年龄"+rs.getObject("age"));
System.out.println("班级"+rs.getObject("class"));
System.out.println("省份"+rs.getObject("province"));
}
lable.setText(s1);
rs.close();
st.close();
conn.close();
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
/*更新数据库*/
class hisMathListener implements ActionListener {
TextField name;
TextField id;
TextField age ;
TextField sex ;
TextField hisclass ;
TextField province ;
String tname="";
String tid="";
String tsex="";
String tage="";
String thisclass="";
String tprovince="";
//System.out.println(t);
String jdbcDriver = "com.mysql.jdbc.Driver";
String jdbcUrl = "jdbc:mysql://localhost:3306/student";//更改为自己的数据库
String jdbcUser = "root";
String jdbcPwd = "123456";
Connection conn;
Statement st = null;
public hisMathListener(TextField id,TextField name,TextField sex,TextField age,TextField hisclass,TextField province) {
this.name= name;
this.id= id;
this.age=age;
this.sex=sex;
this.hisclass=hisclass;
this.province= province ;
}
public void actionPerformed(ActionEvent e) {
tid=id.getText();
tname=name.getText();
tage=age.getText();
tsex=sex.getText();
thisclass=hisclass.getText();
tprovince=province.getText();
try {
Class.forName(jdbcDriver);
conn = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPwd);
st = conn.createStatement();
System.out.println(" 数据库连接成功");
String sname="'"+tname+"'";
String ssex="'"+tsex+"'";
String sprovince="'"+tprovince+"'";
String sql =" INSERT INTO student (id, name,sex,age,class,province)values ("+tid+","
+sname+","
+ssex+","
+tage+","
+thisclass+","
+sprovince +")";
boolean rs = st.execute(sql);
JOptionPane.showMessageDialog(null, this,"注册成功", 0);
st.close();
conn.close();
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
JOptionPane.showMessageDialog(null, this,"注册失败", 0);
e1.printStackTrace();
} catch (SQLException e1) {
JOptionPane.showMessageDialog(null, this,"注册失败", 0);
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
运行结果:
输入姓名,点击查询之后出现查询结果:
在对应位置填写如下注册信息:
点击注册后,在数据库中会出现新的数据项:
在学习java过程中做到了这个实验,感觉很有意思,随后会将java数据库连接,java窗体设计的ppt,以及程序中用到的jdbc,源程序,sql文件,都上传到scdn~加油~