java连接数据库查询/注册(带窗体)

 

创建一个窗体,选择合适的布局管理器,显示一个按钮“查询”,点击该按钮以后,查询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~加油~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vector<>

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值