为什么我的java连接数据库会出错?添加不成功!

代码是这样的:
package com.test6;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Vector;

import javax.swing.*;

public class Stu_addDiag extends JDialog implements ActionListener{
JLabel jl1 , jl2 , jl3 , jl4 , jl5 , jl6;
JButton jb1 , jb2;
JTextField jtf1 , jtf2 ,jtf3 ,jtf4 ,jtf5 ,jtf6;
JPanel jp1 , jp2 , jp3;
public Stu_addDiag(Frame owner,String title,boolean modal ){
/*
* owner - 显示该对话框的 Frame
title - 该对话框的标题栏中所显示的 String
modal - 指定对话框在显示时是否阻塞用户向其他顶层窗口输入。如果为 true,
则模式类型属性被设置为 DEFAULT_MODALITY_TYPE;否则对话框是无模式的。
* */
super(owner , title , modal);
jl1 = new JLabel("学号");
jl2 = new JLabel("姓名");
jl3 = new JLabel("年龄");
jl4 = new JLabel("专业");
jl5 = new JLabel("性别");
jl6 = new JLabel("籍贯");

jtf1 = new JTextField();
jtf2 = new JTextField();
jtf3 = new JTextField();
jtf4 = new JTextField();
jtf5 = new JTextField();
jtf6 = new JTextField();

jb1 = new JButton("确定");
jb2 = new JButton("取消");

jp1 = new JPanel();
jp2 = new JPanel();
jp3 = new JPanel();

//设置布局
jp1.setLayout(new GridLayout(6 , 1));
jp2.setLayout(new GridLayout(6 , 1));

//添加组件
jp1.add(jl1);
jp1.add(jl2);
jp1.add(jl3);
jp1.add(jl4);
jp1.add(jl5);
jp1.add(jl6);

jp2.add(jtf1);
jp2.add(jtf2);
jp2.add(jtf3);
jp2.add(jtf4);
jp2.add(jtf5);
jp2.add(jtf6);

jp3.add(jb1);
jp3.add(jb2);

this.add(jp1 , BorderLayout.WEST);
this.add(jp2 , BorderLayout.CENTER);
this.add(jp3 , BorderLayout.SOUTH);

jb1.addActionListener(this);
this.setSize(300 , 200);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
// TODO 自动生成方法存根
if(e.getSource() == jb1){
Vector rowData , columnNames;

//定义操作数据库需要的东西

PreparedStatement ps = null;
Connection ct = null;
ResultSet rs = null;

try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
ct = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:3569;databaseName=students" , "sa" , "123");
ps = ct.prepareStatement("insert into student values(?,?,?,?,?,?)");
ps.setString(1, jtf1.getText().trim());
ps.setString(2, jtf2.getText().trim());
ps.setInt(3, Integer.parseInt(jtf3.getText().trim()));
ps.setString(4, jtf4.getText().trim());
ps.setString(5, jtf5.getText().trim());
ps.setString(6, jtf6.getText().trim());
}catch(Exception ee){
ee.printStackTrace();
}finally{
try{
if(rs != null) rs.close();
if(ps != null) rs.close();
if(ct != null) rs.close();
}catch(Exception ee){
ee.printStackTrace();
}
}
}
}
}



错误:

java.lang.NullPointerException
at com.test6.Stu_addDiag.actionPerformed(Stu_addDiag.java:104)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6134)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5899)
at java.awt.Container.processEvent(Container.java:2023)
at java.awt.Component.dispatchEventImpl(Component.java:4501)
at java.awt.Container.dispatchEventImpl(Container.java:2081)
at java.awt.Component.dispatchEvent(Component.java:4331)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3965)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3895)
at java.awt.Container.dispatchEventImpl(Container.java:2067)
at java.awt.Window.dispatchEventImpl(Window.java:2458)
at java.awt.Component.dispatchEvent(Component.java:4331)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178)
at java.awt.Dialog$1.run(Dialog.java:1046)
at java.awt.Dialog$3.run(Dialog.java:1098)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1096)
at java.awt.Component.show(Component.java:1447)
at java.awt.Component.setVisible(Component.java:1400)
at java.awt.Window.setVisible(Window.java:824)
at java.awt.Dialog.setVisible(Dialog.java:986)
at com.test6.Stu_addDiag.<init>(Stu_addDiag.java:76)
at com.test6.test6.actionPerformed(test6.java:100)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6134)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5899)
at java.awt.Container.processEvent(Container.java:2023)
at java.awt.Component.dispatchEventImpl(Component.java:4501)
at java.awt.Container.dispatchEventImpl(Container.java:2081)
at java.awt.Component.dispatchEvent(Component.java:4331)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3965)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3895)
at java.awt.Container.dispatchEventImpl(Container.java:2067)
at java.awt.Window.dispatchEventImpl(Window.java:2458)
at java.awt.Component.dispatchEvent(Component.java:4331)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)


我的数据库有6个字段,赋值应该是没问题的!
...全文
145 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
try{
if(rs != null) rs.close();
if(ps != null) rs.close();
if(ct != null) rs.close();
}

这里关闭 打错了。
还有没有进行ps.excuteUpdate这个操作
java_2005 2010-06-07
  • 打赏
  • 举报
回复
看看数据库表中,是不是有字段不允许有空

操作数据库就那么几步:链接 打开 SQL语句(检查数据类型和是否允许有空) 执行 关闭

楼主把这些步骤好好检查一下就可以了
  • 打赏
  • 举报
回复
上面的都没能成功。。我在select时候用过这端口 数据也正常,不是端口问题!
最后那位,我下午试试你下面的那段代码啊。。
wll474127597 2010-06-05
  • 打赏
  • 举报
回复
http://www.5fuyou.com/images/head/DownLoad.html 分享一个编程视频下载地址,很好,很强大
kiss601459202 2010-06-03
  • 打赏
  • 举报
回复
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
ct = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:3569;databaseName=students" , "sa" , "123");
ps = ct.prepareStatement("insert into student values(?,?,?,?,?,?)");


先拿一个测试类 测试连接数据库的连接是否正常...... sqlServer 默认的端口是1433 检查下

连接OK的话 试试这个写法 :
ps = ct.creatStatement();
ps.excuteUpdate("insert into student valus(?,?,?,?,?,?)");
ct.commit();
crazylaa 2010-06-03
  • 打赏
  • 举报
回复
不是1443还是1433来着?忘了。。sorry
soli11722984 2010-06-03
  • 打赏
  • 举报
回复
在说,我乍没看见execute()呢
crazylaa 2010-06-03
  • 打赏
  • 举报
回复
确定端口是3569??
soli11722984 2010-06-03
  • 打赏
  • 举报
回复
com.test6.Stu_addDiag.actionPerformed(Stu_addDiag.java:104)
在哪,空指针呢

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧