ID = s1;
PASSWORD = s2;
NAME = s3;
s1,s2,s3是传进来的参数,有具体值,但是以
sql = "insert into qq(ID,PASSWORD,NAME) values(ID,PASSWORD,NAME)";
st.executeUpdate(sql);
写入数据库,数据库中的ID,PASSWORD,NAME都是空的,但是
System.out.println(ID);
System.out.println(PASSWORD);
System.out.println(NAME);这样检验ID这些的值又是有的,求问为什么写入数据库就为空了?
zhuce.yon(S1,S2,S3);
public class zhuce {
public static void yon(String s1, String s2, String s3)
{
String ID = null;
String PASSWORD = null;
String NAME = null;
ID = s1;
PASSWORD = s2;
NAME = s3;
Connection con = null;
String sql;
Statement st = null;
try {
con = JDBC.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
JOptionPane.showMessageDialog(null,"数据库连接失败!","错误",2);
e.printStackTrace();
}
try {
System.out.println(ID);
System.out.println(PASSWORD);
System.out.println(NAME);
st = con.createStatement();
} catch (SQLException e) {
// TODO Auto-generated
e.printStackTrace();
}
sql = "insert into qq(ID,PASSWORD,NAME) values(ID,PASSWORD,NAME)";
try {
st.executeUpdate(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
JOptionPane.showMessageDialog(null,"注册失败","错误",2);
e.printStackTrace();
}
}
}
解决了,应该用 sql = "insert into qq(id,password,name) values ("+s1+","+s2+","+s3+")";
1,打印下sql这个值 或者断点调试下
2,为啥要定义三个字段那么麻烦?直接sql = "insert into qq(ID,PASSWORD,NAME) values(s1,s2,s3)";??
哪有把id 设成String类型的啊 那数据库怎么自增啊 还有变量名怎么全是大写 又不是静态final修饰的
ID = s1;
PASSWORD = s2;
NAME = s3;
s1,s2,s3是传进来的参数,有具体值,但是以
sql = "insert into qq(ID,PASSWORD,NAME) values(ID,PASSWORD,NAME)";
你这样插入 id password name 不都已经赋值了吗
比如s1=1 ;s2=张三;s3=123;
那sql不就变成这样了sql = "insert into qq(‘1’,‘张三’,‘123’) values(‘1’,‘张三’,‘123’)";
所以你的字段名不能这么写,应该这么写
sql = "insert into qq(‘ID’,‘PASSWORD’,‘NAME’) values(ID,PASSWORD,NAME)";
字段名加引号
三个类型都是varchar类型