java往数据库里插值的问题 急用

来源:百度知道 编辑:UC知道 时间:2024/05/16 17:50:21
我的表
CREATE TABLE `user` (
`id` int(11) NOT NULL auto_increment,
`email` varchar(50) default NULL,
`password` varchar(20) default NULL,
`realname` varchar(20) default NULL,
`sex` varchar(4) default NULL,
`birthday` date default NULL,
`education` varchar(20) default NULL,
`jobcategory` varchar(20) default NULL,
`phone` int(11) default NULL,
`post` int(11) default NULL,
`address` varchar(20) default NULL,
`right` int(4) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

我写的程序
//添加用户
public int addUser(String email,String password,String realname,String sex,String birthday,String education,String jobcategory,int phone,int post,String address) {
String sql="insert into user(email,password,realname,sex,birthday,education,jobcategory,phone,post,address,right)values(?,?,?,?,?,?,?,?,?,?,?)";
Connection conn=DBConnection.getConne

字段right是mysql的保留字,尽量不要使用这些保留字作为字段名.
把right改成其他名字试试吧

pstmt.setString(1, email);
pstmt.setString(2, password);
pstmt.setString(3, realname);
pstmt.setString(4, sex);
pstmt.setDate(5,Date.valueOf(birthday) );
pstmt.setString(6, education);
pstmt.setString(7, jobcategory);
pstmt.setInt(8, phone);
pstmt.setInt(9, post);
pstmt.setString(10, address);
pstmt.setInt(11,1);

这里的插入顺序是从0开始的pstmt.setString(1, email);依次类推

('s','a','s','s','1986-05-01','s','s',1,1,'a',1)'
这个sql 语句拼得有问题,括号外面多了个',仔细检查下。