H5W3
当前位置:H5W3 > 其他技术问题 > 正文

JDBC 执行SQL 语句往mysql中插入数据 出现语法错误?

错误提示:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘?,?,?,?,?,?,?,current_date(),?,current_date(),?)’ at line 1

Connection conn = DBUtil.getConnection();
        String sql = ""+ 
           " insert into imooc_goddess"+
                " (user_name,sex,age,birthday,email,mobile,"+
              "create_user,create_date,update_user,update_date,isdel)"+
                " values("+
              "?,?,?,?,?,?,?,current_date(),?,current_date(),?)";
        
        PreparedStatement ptmt =  (PreparedStatement) conn.prepareStatement(sql);
//...
ptmt.execute(sql);` 

 1. 列表项目

`

回答:

终于找到答案了:
代码中有 : ptmt.execute(sql);有问题,应该是无参数的。
因为在 PreparedStatement ptmt = conn.prepareStatement(sql);已经加载了sql语句。

回答:

没看到setParam….啊?

回答:

得看你要用什么参数替换 ‘?’

回答:

current_date() -> current_date 试试

回答:

你这样换行看着不别扭?

回答:

小哥哥,你这 sql 字符串不对呀,看你的意思是想调用 current_date() 和 current_date() 两个方法拿到它们的结果填入 sql 语句中,但是你这样写在字符串里的话,实际上没有调用这两个方法,而是直接把 “current_date()” 和 “current_date()” 这两个东西当成字符串写到 sql 语句中了,尝试一下这样:

String sql = “”+

       " insert into imooc_goddess"+
            " (user_name,sex,age,birthday,email,mobile,"+
          "create_user,create_date,update_user,update_date,isdel)"+
            " values("+
          "?,?,?,?,?,?,?," + current_date() + ",?," + current_date() + ",?)";

本文地址:H5W3 » JDBC 执行SQL 语句往mysql中插入数据 出现语法错误?

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址