String sql = "insert into User values('" + username + "','"+
password1 + "','" + sex + "','" + phoneNumber + "','"+
email + "','" + hobby + "')";
st.executeUpdate(sql);
应该是这里 哪里错了呢
com.microsoft.sqlserver.jdbc.SQLServerException: 关键字 'User' 附近有语法错误。
user在sqlserver中是关键字,需要[user]方式表示
String sql = "insert into [User] values('" + username + "','"+
password1 + "','" + sex + "','" + phoneNumber + "','"+
email + "','" + hobby + "')";
String sql = "insert into User values(?,?,?,?,?,?,?)";
然后
PreparedStatement pstm = conn.prepareStatement(sql);
pstm.setString(1,username);
.
.
.
pstm.executeUpdate();
这个就不需要拼接
拿syso输出一下就知道了
另外这样写程序容易被sql注入 建议用楼上写法
个人觉得还是不要用user一个表名的好
支持下 danielinbiti, 不同数据库都有很多不同的保留字,sqlserver里面可以用 []
User在SQL Server作为dbo.User可以被识别出。
只是在代码中美哟解决对象命名。这需要在SQLServer和代码两边协调来解决。
没有写数据库表中每一列名字是什么啊,还有关键字注意