给你一个我的例子:这是连接数据库的类:package mypackage;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 ConnectionData { Connection myCon; Statement myStatement; public ConnectionData() { try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); System.out.println("成功加载驱动"); }catch(ClassNotFoundException e1){ e1.printStackTrace(); JOptionPane.showMessageDialog(null,"加载数据库驱动失败!","提示",JOptionPane.YES_OPTION ); } try{ myCon=DriverManager.getConnection("jdbc:odbc:MyPhoneDataSource"); myStatement=myCon.createStatement(); System.out.println("成功连接数据源"); }catch(SQLException sqe){ JOptionPane.showMessageDialog(null,"连接数据源失败!","提示",JOptionPane.YES_OPTION ); sqe.printStackTrace(); } } public int UpdateData(String sql){ int result = 0; try { result=myStatement.executeUpdate(sql); }catch (SQLException e) { JOptionPane.showMessageDialog(null,"sql语句执行失败!","错误提示",JOptionPane.ERROR_MESSAGE); e.printStackTrace(); } return result; } public ResultSet QueryData(String sql){ ResultSet result = null; try { result=myStatement.executeQuery(sql); }catch(SQLException e) { JOptionPane.showMessageDialog(null,"sql语句执行失败!","错误提示",JOptionPane.ERROR_MESSAGE); e.printStackTrace(); } return result; } public void closeData() { try { myStatement.close(); myCon.close(); } catch (SQLException e) { e.printStackTrace(); } } }这是用户注册的类,里面有插入语句:package mypackage;import javax.swing.*;import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.ResultSet;import java.sql.SQLException;public class UserLogin extends JDialog implements ActionListener{ private static final long serialVersionUID = 1L; JLabel label1,label2; JTextField textfield1,textfield2; JButton button1,button2; int myResultSet1=0; ResultSet result; public UserLogin(){ setTitle("用户注册"); this.setLayout(null); label1=new JLabel("请输入用户名"); label1.setBounds(20,5,180,20); textfield1=new JTextField(30); textfield1.setBounds(110,5,100,25); textfield1.addActionListener(this); label2=new JLabel("请输入密码"); label2.setBounds(20,40,80,20); textfield2=new JTextField(30); textfield2.setBounds(110,40,100,25); textfield2.addActionListener(this); button1=new JButton("确定"); button1.setBounds(40,80,80,30); button1.addActionListener(this); button2=new JButton("取消"); button2.setBounds(130,80,80,30); button2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ dispose(); } }); add(label1); add(textfield1); add(label2); add(textfield2); add(button1); add(button2); this.getContentPane().setBackground(Color.cyan); this.setModal(true); this.setLocation(440,280); this.setSize(260,180); this.setVisible(true); } public void actionPerformed(ActionEvent arg0) { String inusername,inpassword; inusername=textfield1.getText(); inpassword=textfield2.getText(); String sqllogin="insert into usertable values ('"+inusername+"','"+inpassword+"')"; String sqlfind="select * from usertable where username='"+inusername+"'"; if(inusername.equals("")) { JOptionPane.showMessageDialog(null,"用户名为空,请重新输入","提示", JOptionPane.WARNING_MESSAGE) ; } else if(inpassword.equals("")) { JOptionPane.showMessageDialog(null,"密码为空,请重新输入","提示", JOptionPane.WARNING_MESSAGE); } else{ ConnectionData object=new ConnectionData(); //建立连接 result=object.QueryData(sqlfind); try { if(result.next()){ JOptionPane.showMessageDialog(null,"用户名已存在,请重新输入","提示", JOptionPane.WARNING_MESSAGE); textfield1.setText(""); textfield2.setText(""); } else{ myResultSet1=object.UpdateData(sqllogin); if(myResultSet1!=0){ JOptionPane.showMessageDialog(null,"用户注册成功!","提示",JOptionPane.INFORMATION_MESSAGE); dispose(); } } } catch (SQLException e) { e.printStackTrace(); } object.closeData(); //断开连接 } } }插入语句是:String sqllogin="insert into usertable values ('"+inusername+"','"+inpassword+"')";这个例子连接的是ACCESS数据库,希望能帮上你的忙。
这种问题我也碰见过,当然如果是你sql语句写错了,那就不要怪我们了。那说说我的情况我要插入数据的表,有关联这张表的外键,当你仅仅插入这个表中的时候,而关联这张表的外键所在的表没有相应数据的话,就会报错。有什么具体问题就加534867553吧,我现在刚好下班,大约将近一个小时到家。
private static Connection connection = null; public static synchronized Connection getConnection() { if (connection == null) { try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); connection = DriverManager.getConnection("jdbc:sqlserver://MYSERVER;databaseName=MYDATABASE", "USERID", "PASSWORD"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } return connection; }这就是一个简单的得到数据库连接代码;插入数据报错??将错误的信息发在这上面... 有问题就用百度Hi 找我