sql2005-eclipse对数据库sql server2005的增删改查

问题描述

eclipse对数据库sql server2005的增删改查

package Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
import java.awt.*;

import javax.swing.*;
public class data extends JFrame implements ActionListener{
//private static final String DriveManager = null;
JButton add,select,del,update;
JTable table;
//JComboBox fieldsbox,valuebox;
Object body[][]=new Object[50][5];
String fields[]={"sno","sname","sex","age","dept"};
Connection conn;
Statement st;
ResultSet rs;
JTabbedPane tp;

public data(){
    super("数据库操作");
    this.setSize(400,300);
    this.setLocation(300, 200);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel ps=new JPanel();
    add=new JButton("添加");
    select=new JButton("显示");
    update=new JButton("更改");
    del=new JButton("删除");
    //fieldsbox=new JComboBox(fields);
    //valuebox=new JComboBox();
    //fieldsbox.addActionListener(this);
    add.addActionListener(this);
    select.addActionListener(this);
    update.addActionListener(this);
    del.addActionListener(this);
    //ps.add(fieldsbox);
    //ps.add(valuebox);
    ps.add(add);
    ps.add(select);
    ps.add(update);
    ps.add(del);
    table=new JTable(body,fields);
    tp=new JTabbedPane();
    tp.add("s表", new JScrollPane(table));
    this.getContentPane().add(tp, "Center");
    this.getContentPane().add(ps,"South");
    this.setVisible(true);
    this.connection();
}

public void connection(){
    try{
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDrive");
        String url="jdbc:sqlserver://localhost:1433;DatabaseName=XSGL";
        //Connection conn=null;
        conn=DriverManager.getConnection(url, "sa", "123456");
        st= conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

    }
    catch(Exception ex){
        System.out.print("连接错误!");
    }
                   }
public static void main(String[] args)
{data data=new data();}

public void actionPerformed(ActionEvent e){
    //if(e.getSource()==fieldsbox){
        //fieldselect();
    //}
    //if(e.getSource()==valuebox){
        //valueselect();
    //}
    if(e.getSource()==add){
        add();
    }
    if(e.getSource()==select){
      select();
    }
    if(e.getSource()==update){
        update();
    }
    if(e.getSource()==del){
        del();
    }
    }

/*private void select() {
    // TODO 自动生成的方法存根

}

private void add() {
    // TODO 自动生成的方法存根

}*/

/*public void fieldselect(){
    valuebox.removeActionListener(this);
    valuebox.removeAllItems();
    String condition=(String)fieldsbox.getSelectedItem();
    String str="select distinct"+condition+"from s";
    try{
        ResultSet rs=st.executeQuery(str);
        while(rs.next());{
        valuebox.addItem((String)rs.getString(1));
     }
    valuebox.addActionListener(this);
    }catch(Exception e3){
        e3.printStackTrace();}
    }

public void valueselect(){
String val=(String)valuebox.getSelectedItem();
String str="select * from s where"+fieldsbox.getSelectedItem()+"='"+val+"'";
filltable(str);
}*/
public void del(){
try{
int row=table.getSelectedRow();
String str="delete s where SNO='"+body[row][0]+"'";
st.executeUpdate(str);
JOptionPane.showMessageDialog(null, "数据已成功删除");
this.select();
}catch(SQLException ex){
JOptionPane.showMessageDialog(null,"删除数据错误!");
}
}

     public void update(){
         try{
             int row=table.getSelectedRow();
             JTextField t[]=new JTextField[8];
             t[0]=new JTextField("输入姓名:");
             t[0].setEditable(false);
             t[1]=new JTextField();
             t[1].setText((String)body[row][1]);
             t[2]=new JTextField("输入性别:");
             t[2].setEditable(false);
             t[3]=new JTextField();
             t[3].setText((String)body[row][2]);
             t[4]=new JTextField("输入年龄:");
             t[4].setEditable(false);
             t[5]=new JTextField();
             t[5].setText((String)body[row][3]);
             t[6]=new JTextField("输入专业:");
             t[6].setEditable(false);
             t[7]=new JTextField();
             t[7].setText((String)body[row][4]);
             String but[]={"确定","取消"};
             int go=JOptionPane.showOptionDialog(null, t,"修改信息",JOptionPane.YES_OPTION,JOptionPane.INFORMATION_MESSAGE,null,but,but[0]);
             if(go==0){

                     String nName=(String)t[1].getText();
                     String nsex=(String)t[3].getText();
                     int nage=Integer.parseInt(t[5].getText());
                     String ndept=(String)t[7].getText();
                     String str="update s set sname='"+nName+"',sex='"+nsex+"',age='"+nage+"',dept='"+ndept+"'where sno='"+body[row][0]+"'";
                     st.executeUpdate(str);
                     JOptionPane.showMessageDialog(null, "修改数据成功!");
                     this.select();
                 }
                    /* String str="insert into S values('"+nsno+"','"+nName+"','"+nsex+nsex+"','"+nage+"','"+ndept+"')";
                     st.executeUpdate(str);
                     JOptionPane.showMessageDialog(null, "数据已成功插入!");
                 }catch(Exception ee){
                     JOptionPane.showInternalMessageDialog(null, "插入数据错误!");
                 }
             }*/
         }catch(Exception ex){
             ex.printStackTrace();
             JOptionPane.showMessageDialog(null, "更新数据失败!");

         }
     }
         public void select(){
             String str=("select * from S ");

             filltable(str);
         }

         public void add(){
             try{
                 JTextField t[]=new JTextField[10];
                 t[0]=new JTextField("输入学号:");
                 t[0].setEditable(false);
                 t[1]=new JTextField();
                 t[2]=new JTextField("输入姓名:");
                 t[2].setEditable(false);
                 t[3]=new JTextField();
                 t[4]=new JTextField("输入性别:");
                 t[4].setEditable(false);
                 t[5]=new JTextField();
                 t[6]=new JTextField("输入年龄:");
                 t[6].setEditable(false);
                 t[7]=new JTextField();
                 t[8]=new JTextField("输入专业:");
                 t[8].setEditable(false);
                 t[9]=new JTextField();
                 String but[]={"确定","取消"};
                 int go=JOptionPane.showOptionDialog(null, t,"插入信息",JOptionPane.YES_OPTION,JOptionPane.INFORMATION_MESSAGE,null,but,but[0]);
                 if(go==0){
                     try{

                         String nsno=(String)t[1].getText();
                         String nName=(String)t[3].getText();
                         int nsex=Integer.parseInt(t[5].getText());
                         int nage=Integer.parseInt(t[7].getText());
                         String ndept=(String)t[9].getText();
                         String str="insert into s values('"+nsno+"','"+nName+"','"+nsex+nsex+"','"+nage+"','"+ndept+"')";
                         st.executeUpdate(str);
                         JOptionPane.showMessageDialog(null, "数据已成功插入!");
                     }catch(Exception ee){
                         JOptionPane.showInternalMessageDialog(null, "插入数据错误!");
                     }
                 }
             }catch(Exception ex){}
         }

      public void filltable(String s){
          try{
              for(int x=0;x<body.length;x++){
                  body[x][0]=null;
                  body[x][1]=null;
                  body[x][2]=null;
                  body[x][3]=null;
                  body[x][4]=null;
              }
              int i=0;
              rs=st.executeQuery(s);
              while(rs.next()){
                  body[i][0]=rs.getString("SNO");
                  body[i][1]=rs.getString("SNAME");
                  body[i][2]=rs.getString("SEX");
                  body[i][3]=rs.getString("AGE");
                  body[i][4]=rs.getString("DEPT");
                  i=i+1;
              }
              this.repaint();

          }catch(SQLException ex){
              ex.printStackTrace();}
          }
      }

解决方案

应该是更新数据时,某一个参数空值了,你调试,看一下哪个是空值就行了

解决方案二:

帮看一下问题出现在哪,如果可以帮忙改改。

解决方案三:

你不将错误信息贴出来,弄一大堆代码是没有人愿意看的

解决方案四:

错误信息是
连接错误!Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Frame.data.filltable(data.java:232)
at Frame.data.select(data.java:180)
at Frame.data.actionPerformed(data.java:79)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6527)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6292)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4883)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4705)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2739)
at java.awt.Component.dispatchEvent(Component.java:4705)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
at java.awt.EventQueue.access$400(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.awt.EventQueue$3.run(EventQueue.java:691)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:719)
at java.awt.EventQueue$4.run(EventQueue.java:717)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

解决方案五:

某一个参数空值了,你调试,看一下哪个是空值就行了

时间: 2024-08-08 00:28:39

sql2005-eclipse对数据库sql server2005的增删改查的相关文章

将xml文件作为一个小的数据库,进行学生的增删改查的简单实例_AJAX相关

1.xml文件: <?xml version="1.0" encoding="UTF-8"?><Students> <student id="2"> <name>ttt</name> <age>44</age> </student> <student id="3"> <name>linda2</name

登录 增删改查-初学者求一个JSP对数据库进行登录并增删改查的代码

问题描述 初学者求一个JSP对数据库进行登录并增删改查的代码 A 注:(发送失败的短信的存储表格) create table A ( list_id VARCHAR2(40) not null, task_id VARCHAR2(40), content VARCHAR2(2000), presend_dt DATE, final_dt DATE, status NUMBER default 0, caller VARCHAR2(40), chargenum VARCHAR2(40), call

求jsp+javaBean连数据库实现单表增删改查功能的源程序代码

问题描述 代码简洁有注释更好,学习用.我的邮件是noryaland@gmail.com 解决方案 解决方案二:不能沉解决方案三:我们学校有这个我去给你找找一年多了不知道放哪里去了呵呵解决方案四:看来是没什么用被我删了不好意思解决方案五:求一份代码,用以研习.解决方案六:同求呵呵解决方案七:www.pudn.com解决方案八:数据库最好是oracle或sqlserver,因为我只懂这两种解决方案九:代码到,给分解决方案十:随便到网上找一下就有了解决方案十一:http://hi.baidu.com/

MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)

[正文] 这一周状态不太好,连续打了几天的点滴,所以博客中断了一个星期,现在继续. 我们在之前的几篇文章中学习了JDBC对数据库的增删改查.其实在实际开发中,一般都是使用第三方工具类,但是只有将之前的基础学习好了,在使用开源工具的时才能得心应手.如果对JDBC基础不太清楚,或者对本文看不太懂,建议先回顾一下本人之前的几篇和"MySQL数据库学习笔记"相关的文章.但是不管怎样,今后如果用到了数据库的增删改查,肯定是这篇文章中的代码用的最多. 一.DbUtils简介: DBUtils是ap

MySQL数据库学习笔记(十一)----DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)

[正文] 一.DAO模式简介 DAO即Data Access Object,数据访问接口.数据访问:故名思义就是与数据库打交道.夹在业务逻辑与数据库资源中间. DAO模式实际上是两个模式的组合,即Data Accessor (数据访问者)模式和 Active Domain Object(领域对象)模式.Data Accessor 模式实现了数据访问和业务逻辑的分离:Active Domain Object 模式实现了业务数据的对象化封装. 需要注意的是,DAO设计模式是Java EE中的设计模式

[Android] SQLite数据库之增删改查基础操作

    在编程中经常会遇到数据库的操作,而Android系统内置了SQLite,它是一款轻型数据库,遵守事务ACID的关系型数据库管理系统,它占用的资源非常低,能够支持Windows/Linux/Unix等主流操作系统,同时能够跟很多程序语言如C#.PHP.Java等相结合.下面先回顾SQL的基本语句,再讲述Android的基本操作. 一. adb shell回顾SQL语句     首先,我感觉自己整个大学印象最深的几门课就包括<数据库>,所以想先回顾SQL增删改查的基本语句.而在Androi

【黑马Android】(04)数据库的创建和sql语句增删改查/LinearLayout展示列表数据/ListView的使用和BaseAdater/内容提供者创建

数据库的创建和sql语句增删改查 1. 加载驱动. 2. 连接数据库. 3. 操作数据库.   创建表: create table person( _id integer primary key, name varchar(20), age integer );   添加: insert into person(name, age) values('lisi', 19);   删除: delete from person where _id = 1;   修改: update person se

MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)

[正文] 首先需要回顾一下上一篇文章中的内容:MySQL数据库学习笔记(八)----JDBC入门及简单增删改数据库的操作 一.ResultSet接口的介绍: 对数据库的查询操作,一般需要返回查询结果,在程序中,JDBC为我们提供了ResultSet接口来专门处理查询结果集. Statement通过以下方法执行一个查询操作: ResultSet executeQuery(String sql) throws SQLException  单词Query就是查询的意思.函数的返回类型是ResultSe

Java通过JDBC进行简单的增删改查MySQL数据库

JDBC基本操作   下面的所有方法和数据成员都在public class JDBCOperation内部. (1)定义记录的类(可选) 这样做主要是为了便于操作和接口定义,是非必须的. static class Student {         private String Id;         private String Name;         private String Sex;         private String Age;           Student(Str