jdbc (java和sql的连接)

一个从数据库读取数据到界面的例子,简单饿学生信息管理系统,过两天我改下,使它可以录入数据(等)

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;

import java.sql.*;
import com.microsoft.jdbc.sqlserver.SQLServerDriver;

public class stuInfoRecoder extends JFrame implements ActionListener
{
 private String name[];
 private int sext[];
 private int age[];
 private int btncount;
 private  String se;
 
 String sex[]={"男","女"};
 
 JLabel lblname=new JLabel("姓名:");
 JTextField txt1=new JTextField(5);
 
 JLabel lblsex=new JLabel("性别:");
 JComboBox txt2=new JComboBox(sex);
 
 JLabel lblage=new JLabel("年龄:");
 JTextField txt3=new JTextField(5);
 
 JButton btn=new JButton("计算");
 JTextArea txt4=new JTextArea(8,18);
 
 JLabel lbl=new JLabel();
 
 JPanel pane1=new JPanel();
 JPanel pane2=new JPanel();
 JPanel pane3=new JPanel();
 
 stuInfoRecoder ()
 {
  btn.addActionListener(this);
  btncount=0;
  
  this.setTitle("学生信息系统");
  Container c=getContentPane();
  pane1.add(lblname);
  pane1.add(txt1);
  pane1.add(lblsex);
  pane1.add(txt2);
  pane1.add(lblage);
  pane1.add(txt3);
  pane1.add(btn);
  
  pane2.add(txt4);
  
  pane3.add(lbl);
  
  c.add(pane1,BorderLayout.NORTH);
  c.add(pane2,BorderLayout.CENTER);
  c.add(pane3,BorderLayout.SOUTH);
  
 }

public void getConnection()
{
 String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
 String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=info";
 int arry=0;
 
  try
  {
   Class.forName(driver);
   Connection cn = DriverManager.getConnection(url,"sa", "miss");
   
   Statement stmt = cn.createStatement();
   ResultSet rs = stmt.executeQuery("SELECT count(*) AS arraylen FROM sturnfo");
   if(rs.next())
   {
    arry=rs.getInt("arraylen");
   }
   
   if(arry!=0)
   {
     name=new String[arry];
     sext=new int[arry];
     age=new int[arry];
     int i=0;
    
     rs = stmt.executeQuery("SELECT * FROM sturnfo");
     while(rs.next())
     {
      name[i]=rs.getString("username");
      sext[i]= rs.getInt("sex");
          age[i]= rs.getInt("age");
          i++;
     }
    }
    else
    {
      name=new String[0];
     sext=new int[0];
     age=new int[0];
    }  
      rs.close();
   stmt.close();
   cn.close();
  }
  catch(Exception exce)
  {
   System.out.println(exce.toString());
  }
}


public static void main(String args[])
 {
  stuInfoRecoder bo=new stuInfoRecoder ();
  bo.setSize(400,250);
  bo.getConnection();
  bo.setVisible(true);
 }


public void actionPerformed(ActionEvent e)
 {
   if(e.getSource()==btn)
   {
    if(name.length==0)
    {
     return;
    }
  if(btncount<name.length)
  {
   txt1.setText(name[btncount]); //填写用户名;
   
   if(sext[btncount]==1)    //填写性别;
   {
    txt2.setSelectedIndex(0);
    se="男";
   }
   else
   {
    txt2.setSelectedIndex(1);
    se="女";
   }
   
   txt3.setText(Integer.toString(age[btncount]));
   
   display();
   
   btncount++;
  }
   }  
 }
public void display()
 {
  if(txt1.getText().length()<0)
  {
   lbl.setText("姓名不能为空");
  }
  txt4.setText("姓名:"+txt1.getText()+"性别:"+se+"  年龄:"+txt3.getText());
 }
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值