插入数据发生异常:You have an error in your SQL syntax; check the manual that corresponds 本帖最后由 ci2011ss 于 2012-05-16 11:03:59 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 insert into table_name(c_1, c_2, c_3) values(v_1, v_2, v_3); 先看下你的数据库表到底有几个字段,如果超过两个,记得写上你的字段,如果只有两个,可以忽略...还有,你的代码有很多问题..我也懒得看了,发现个严重的,两个String是否相等,是这样判断的, s1.equals(s2) 楼主的数据库表字段肯定不是2个、最起码3个 id 、name 、pass而楼主的sql 语句肯定有问题 就是1楼说的、表字段和values值要对应、至于你id自增不自增就不知道了、感觉楼主那try的有问题呢、把你代码拷了我这全是错误、给改了改顺序、和String 比对问题、贴出来package com.boyu.util;import java.awt.GridLayout;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.SQLException;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPasswordField;import javax.swing.JTextField;public class Addvalue { private String driver = "com.mysql.jdbc.Driver"; private String url = "jdbc:mysql://127.0.0.1:3306/luke"; private String user = "root"; private String pass = "671792"; // private String sql ="insert into jdbc_test values(?,?)"; private JFrame jf = new JFrame("添加数据窗口"); private JLabel us = new JLabel("请输入用户名"); private JTextField use = new JTextField(15); private JLabel ps = new JLabel("请输入密码"); private JPasswordField pas = new JPasswordField(15); private JLabel pps = new JLabel("确认密码"); private JPasswordField pas2 = new JPasswordField(15); private JButton inse = new JButton("确定添加数据"); private JButton reset = new JButton("重置信息"); /** * 创建添加窗口 */ public void init() throws Exception { Class.forName(driver); jf.setLayout(new GridLayout(4, 2, 1, 1)); jf.add(us); jf.add(use); jf.add(ps); jf.add(pas); jf.add(pps); jf.add(pas2); jf.add(reset); jf.add(inse); jf.setBounds(500, 400, 260, 152); // jf.setSize(260, 152); jf.setVisible(true); inse.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (use.getText().length() == 0) { JOptionPane.showMessageDialog(jf, "请检查输入"); } else if (use.getText().length() != 0 && pas.getPassword() != null) { insert("use", "pas"); JOptionPane.showMessageDialog(jf, "添加数据成功"); use.setText(""); pas.setText(""); pas2.setText(""); } } }); reset.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent a) { use.setText(""); pas.setText(""); pas2.setText(""); } }); } public void insert(String uuu, String ppp) { if (pas.getPassword().equals(pas2.getPassword())) { char[] s = null; s = pas.getPassword(); uuu = use.getText(); ppp = new String(s); String sq = "insert into zhuce values(?,?)"; // String sq ="insert into jdbc_test values(uuu,ppp)"; try { Connection conn = DriverManager.getConnection(url, user, pass); PreparedStatement pstmt = conn.prepareStatement(sq); // 获取密码域的内容 pstmt.setString(1, uuu); pstmt.setString(2, ppp); // pstmt.executeQuery(sq); pstmt.executeUpdate(sq); } catch (SQLException ex) { System.out.println("插入数据发生异常:" + ex.getMessage()); return ; } } } public static void main(String[] args) throws Exception { (new Addvalue()).init(); }} 重新缕了次package com.boyu.util;import java.awt.GridLayout;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.SQLException;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPasswordField;import javax.swing.JTextField;public class Addvalue { private String driver = "com.mysql.jdbc.Driver"; private String url = "jdbc:mysql://127.0.0.1:3306/luke"; private String user = "root"; private String pass = "671792"; // private String sql ="insert into jdbc_test values(?,?)"; private JFrame jf = new JFrame("添加数据窗口"); private JLabel us = new JLabel("请输入用户名"); private JTextField use = new JTextField(15); private JLabel ps = new JLabel("请输入密码"); private JPasswordField pas = new JPasswordField(15); private JLabel pps = new JLabel("确认密码"); private JPasswordField pas2 = new JPasswordField(15); private JButton inse = new JButton("确定添加数据"); private JButton reset = new JButton("重置信息"); /** * 创建添加窗口 */ public void init() throws Exception { Class.forName(driver); jf.setLayout(new GridLayout(4, 2, 1, 1)); jf.add(us); jf.add(use); jf.add(ps); jf.add(pas); jf.add(pps); jf.add(pas2); jf.add(reset); jf.add(inse); jf.setBounds(500, 400, 260, 152); // jf.setSize(260, 152); jf.setVisible(true); inse.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (use.getText().length() == 0) { JOptionPane.showMessageDialog(jf, "请检查输入"); } else if (use.getText().length() != 0 && pas.getPassword() != null) { insert(use.getText(), pas.getPassword().toString()); JOptionPane.showMessageDialog(jf, "添加数据成功"); use.setText(""); pas.setText(""); pas2.setText(""); } } }); reset.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent a) { use.setText(""); pas.setText(""); pas2.setText(""); } }); } public void insert(String uuu, String ppp) { char[] s = null; s = pas.getPassword(); uuu = use.getText(); ppp = new String(s); String sq = "insert into zhuce values(?,?)"; // String sq ="insert into jdbc_test values(uuu,ppp)"; try { Connection conn = DriverManager.getConnection(url, user, pass); PreparedStatement pstmt = conn.prepareStatement(sq); // 获取密码域的内容 pstmt.setString(1, uuu); pstmt.setString(2, ppp); // pstmt.executeQuery(sq); pstmt.executeUpdate(sq); } catch (SQLException ex) { System.out.println("插入数据发生异常:" + ex.getMessage()); System.exit(0) ; } } public static void main(String[] args) throws Exception { (new Addvalue()).init(); }} try (//你这是括号 Connection conn = DriverManager.getConnection(url, user, pass); PreparedStatement pstmt = conn.prepareStatement(sq)) {//你的花括号在这里 汗 eclipse能编译通过? // 获取密码域的内容 pstmt.setString(1, uuu); pstmt.setString(2, ppp); // pstmt.executeQuery(sq); pstmt.executeUpdate(sq) ; if (pas.getPassword() == pas2.getPassword() ) {//还有字符串比较是pas!=null && pas.getPassword().equals(pas2.getPassword())问题很多啊 insert("uuu", "ppp"); // JOptionPane.showMessageDialog(jf, "添加数据成功"); return; } } catch (SQLException ex) { System.out.println("插入数据发生异常:" + ex.getMessage()); }你给出的You have an error in your SQL syntax; check the manual that corresponds 这个是sql syntax问题,检查你的sql,把这个sql放到数据库那边去跑一下看能不能跑通。 insert(use.getText(), pas.getPassword().toString());修改成insert(use.getText(), pas.getText());没咋用过swing、 还有就是俩个密码框里的内容比对得这样if (pas.getText().equals(pas2.getText())) 还是去吃饭吧我、 /数据库的字段确实只有两个 yhm 跟mim 多谢了各位 ……不看不知道一看下一跳 阿 9_9 个人见解、起码每个表都应该有个id字段吧、 要么怎么证明这些数据的唯一性、?建表语句也分数据库的、自增的语句也不一样、 mysql 是 auto incrementoracle 是创建序列 sequence具体点的方式还是baidu或者google吧、 请问加上ID 字段后添加数据的代码应该怎样该 怎样调用插入函数数据库是使用MYSQL 创建的 字段就三个 U_id ,uus, pps调用时还是出错最后一次 之后结贴。。 我在jsp调用java类里面的方法为什么不行啊 Tomcat 工程发布问题.急等! 今天本人收到一本书 问下struts本质功能是否是控制跳转和jsp到javabean的映射? 急~~关于RMI与tomcat问题 static的用法? 如何通过点击JTable中的JCheckBox来修改Model的值 高分请教castor问题 谁知道编一个XML编译器要多少钱呀??(Java) 关于J2EE 如何设置非命令行JVM参数 用IO流解析apache日志
楼主的数据库表字段肯定不是2个、最起码3个 id 、name 、pass而楼主的sql 语句肯定有问题 就是1楼说的、表字段和values值要对应、至于你id自增不自增就不知道了、
感觉楼主那try的有问题呢、把你代码拷了我这全是错误、给改了改顺序、和String 比对问题、贴出来
package com.boyu.util;import java.awt.GridLayout;
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.SQLException;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;public class Addvalue {
private String driver = "com.mysql.jdbc.Driver";
private String url = "jdbc:mysql://127.0.0.1:3306/luke";
private String user = "root";
private String pass = "671792";
// private String sql ="insert into jdbc_test values(?,?)";
private JFrame jf = new JFrame("添加数据窗口");
private JLabel us = new JLabel("请输入用户名");
private JTextField use = new JTextField(15);
private JLabel ps = new JLabel("请输入密码");
private JPasswordField pas = new JPasswordField(15);
private JLabel pps = new JLabel("确认密码");
private JPasswordField pas2 = new JPasswordField(15);
private JButton inse = new JButton("确定添加数据");
private JButton reset = new JButton("重置信息"); /**
* 创建添加窗口
*/
public void init() throws Exception {
Class.forName(driver);
jf.setLayout(new GridLayout(4, 2, 1, 1));
jf.add(us);
jf.add(use);
jf.add(ps);
jf.add(pas);
jf.add(pps);
jf.add(pas2);
jf.add(reset);
jf.add(inse);
jf.setBounds(500, 400, 260, 152);
// jf.setSize(260, 152);
jf.setVisible(true);
inse.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (use.getText().length() == 0) {
JOptionPane.showMessageDialog(jf, "请检查输入");
} else if (use.getText().length() != 0
&& pas.getPassword() != null) {
insert("use", "pas");
JOptionPane.showMessageDialog(jf, "添加数据成功"); use.setText("");
pas.setText("");
pas2.setText("");
}
}
});
reset.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent a) {
use.setText("");
pas.setText("");
pas2.setText("");
}
});
} public void insert(String uuu, String ppp) {
if (pas.getPassword().equals(pas2.getPassword())) {
char[] s = null;
s = pas.getPassword();
uuu = use.getText();
ppp = new String(s);
String sq = "insert into zhuce values(?,?)";
// String sq ="insert into jdbc_test values(uuu,ppp)";
try {
Connection conn = DriverManager.getConnection(url, user, pass);
PreparedStatement pstmt = conn.prepareStatement(sq); // 获取密码域的内容
pstmt.setString(1, uuu);
pstmt.setString(2, ppp);
// pstmt.executeQuery(sq);
pstmt.executeUpdate(sq);
} catch (SQLException ex) {
System.out.println("插入数据发生异常:" + ex.getMessage());
return ;
}
}
} public static void main(String[] args) throws Exception {
(new Addvalue()).init();
}
}
重新缕了次
package com.boyu.util;import java.awt.GridLayout;
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.SQLException;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;public class Addvalue {
private String driver = "com.mysql.jdbc.Driver";
private String url = "jdbc:mysql://127.0.0.1:3306/luke";
private String user = "root";
private String pass = "671792";
// private String sql ="insert into jdbc_test values(?,?)";
private JFrame jf = new JFrame("添加数据窗口");
private JLabel us = new JLabel("请输入用户名");
private JTextField use = new JTextField(15);
private JLabel ps = new JLabel("请输入密码");
private JPasswordField pas = new JPasswordField(15);
private JLabel pps = new JLabel("确认密码");
private JPasswordField pas2 = new JPasswordField(15);
private JButton inse = new JButton("确定添加数据");
private JButton reset = new JButton("重置信息"); /**
* 创建添加窗口
*/
public void init() throws Exception {
Class.forName(driver);
jf.setLayout(new GridLayout(4, 2, 1, 1));
jf.add(us);
jf.add(use);
jf.add(ps);
jf.add(pas);
jf.add(pps);
jf.add(pas2);
jf.add(reset);
jf.add(inse);
jf.setBounds(500, 400, 260, 152);
// jf.setSize(260, 152);
jf.setVisible(true);
inse.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (use.getText().length() == 0) {
JOptionPane.showMessageDialog(jf, "请检查输入");
} else if (use.getText().length() != 0
&& pas.getPassword() != null) {
insert(use.getText(), pas.getPassword().toString());
JOptionPane.showMessageDialog(jf, "添加数据成功"); use.setText("");
pas.setText("");
pas2.setText("");
}
}
});
reset.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent a) {
use.setText("");
pas.setText("");
pas2.setText("");
}
});
} public void insert(String uuu, String ppp) {
char[] s = null;
s = pas.getPassword();
uuu = use.getText();
ppp = new String(s);
String sq = "insert into zhuce values(?,?)";
// String sq ="insert into jdbc_test values(uuu,ppp)";
try {
Connection conn = DriverManager.getConnection(url, user, pass);
PreparedStatement pstmt = conn.prepareStatement(sq); // 获取密码域的内容
pstmt.setString(1, uuu);
pstmt.setString(2, ppp);
// pstmt.executeQuery(sq);
pstmt.executeUpdate(sq);
} catch (SQLException ex) {
System.out.println("插入数据发生异常:" + ex.getMessage());
System.exit(0) ;
}
} public static void main(String[] args) throws Exception {
(new Addvalue()).init();
}
}
try (//你这是括号
Connection conn = DriverManager.getConnection(url, user, pass);
PreparedStatement pstmt = conn.prepareStatement(sq)) {//你的花括号在这里 汗 eclipse能编译通过?
// 获取密码域的内容
pstmt.setString(1, uuu);
pstmt.setString(2, ppp);
// pstmt.executeQuery(sq);
pstmt.executeUpdate(sq) ;
if (pas.getPassword() == pas2.getPassword() ) {//还有字符串比较是pas!=null && pas.getPassword().equals(pas2.getPassword())问题很多啊
insert("uuu", "ppp");
// JOptionPane.showMessageDialog(jf, "添加数据成功");
return;
}
} catch (SQLException ex) {
System.out.println("插入数据发生异常:" + ex.getMessage());
}你给出的You have an error in your SQL syntax; check the manual that corresponds 这个是sql syntax问题,检查你的sql,把这个sql放到数据库那边去跑一下看能不能跑通。
修改成
insert(use.getText(), pas.getText());没咋用过swing、
数据库的字段确实只有两个 yhm 跟mim
多谢了各位 ……
不看不知道一看下一跳 阿 9_9
个人见解、起码每个表都应该有个id字段吧、 要么怎么证明这些数据的唯一性、?建表语句也分数据库的、自增的语句也不一样、 mysql 是 auto increment
oracle 是创建序列 sequence具体点的方式还是baidu或者google吧、
数据库是使用MYSQL 创建的 字段就三个 U_id ,uus, pps
调用时还是出错
最后一次 之后结贴。。