Re_member
2015-06-16 16:35
采纳率: 33.3%
浏览 3.5k

向数据库中传入String变量

String sql = "insert into User values('" + username + "','"+
password1 + "','" + sex + "','" + phoneNumber + "','"+
email + "','" + hobby + "')";
st.executeUpdate(sql);

应该是这里 哪里错了呢
com.microsoft.sqlserver.jdbc.SQLServerException: 关键字 'User' 附近有语法错误。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • danielinbiti 2015-06-16 16:56
    已采纳
     user在sqlserver中是关键字,需要[user]方式表示
     String sql = "insert into [User] values('" + username + "','"+ 
    password1 + "','" + sex + "','" + phoneNumber + "','"+
    email + "','" + hobby + "')";
    
    点赞 打赏 评论
  • z_vincent 2015-06-16 16:46

    String sql = "insert into User values(?,?,?,?,?,?,?)";
    然后
    PreparedStatement pstm = conn.prepareStatement(sql);
    pstm.setString(1,username);
    .
    .
    .
    pstm.executeUpdate();
    这个就不需要拼接

    点赞 打赏 评论
  • zzxzz00001 2015-06-16 23:39

    拿syso输出一下就知道了
    另外这样写程序容易被sql注入 建议用楼上写法

    点赞 打赏 评论
  • JonsonJiao 2015-06-16 23:40

    个人觉得还是不要用user一个表名的好

    点赞 打赏 评论
  • edouardzyc 2015-06-17 01:00

    支持下 danielinbiti, 不同数据库都有很多不同的保留字,sqlserver里面可以用 []

    点赞 打赏 评论
  • frank_20080215 2015-06-17 01:50

    User在SQL Server作为dbo.User可以被识别出。
    只是在代码中美哟解决对象命名。这需要在SQLServer和代码两边协调来解决。

    点赞 打赏 评论
  • u014180504 2015-06-18 15:26

    没有写数据库表中每一列名字是什么啊,还有关键字注意

    点赞 打赏 评论
  • 另一花生 2015-06-18 15:56
    点赞 打赏 评论

相关推荐 更多相似问题