//情况名称;如果返回值为空,将返回至同一页面。
        String a = "aaa";
        String b = "bbb";
        String c = "ccc";
        String d = "ddd";
        String queryinsert2 = "insert into mainboard values (" + "'" + a + "'," + "2000" + "," + "333" + "," + "444"
                + "," + "'" + b + "'," + "'" + c + "'," + "'" + d + "'" + ")";
        Connection conn = null;
        Statement st = null;
        ResultSet r = null;
        try
        {
            Class.forName(drivername);
            conn = DriverManager.getConnection(url,user,password);
            st = conn.createStatement();
            r = st.executeQuery(queryinsert2);
        }
        catch(Exception e)
        {
            return "case10";
        }
如上,运行后抛出异常错误,那个queryinsert2到底该怎么写才对,我要实现的MYSQL命令是这样的
mysql> insert into mainboard values ('aaa',2000,333,444,'bbb','ccc','ddd');
参数的话数字的就是INT的了其他都是字符串了。

解决方案 »

  1.   

    看错误信息,如果不会看错误信息就
    把sql打印出来直接放在控制台执行看报什么错。
      

  2.   

    楼上说的对,你把queryinsert2打印出来,然后放到mysql里面直接运行,看看什么错就行了。
      

  3.   

    mysql> describe mainboard;
    +------------------+--------------+------+-----+---------+-------+
    | Field            | Type         | Null | Key | Default | Extra |
    +------------------+--------------+------+-----+---------+-------+
    | name             | varchar(50)  | YES  |     | NULL    |       | 
    | price            | int(10)      | YES  |     | NULL    |       | 
    | score            | int(5)       | YES  |     | NULL    |       | 
    | cost_performance | int(5)       | YES  |     | NULL    |       | 
    | terrace          | varchar(20)  | YES  |     | NULL    |       | 
    | brand            | varchar(20)  | YES  |     | NULL    |       | 
    | introduction     | varchar(100) | YES  |     | NULL    |       | 
    +------------------+--------------+------+-----+---------+-------+
    数据类型如上
    在MYSQL控制台里我知道怎么写的。就是要写在JAVA代码里那些双引号和加号搞的我好乱阿
      

  4.   

    我我我是初学而已只想实现一下这么个功能。。至于SQL注入的问题慢慢来了。。
      

  5.   

    直接String queryinsert2 = "insert into mainboard values ('aa',2000,333,444,'bb','cc','dd')";
    这样居然也不行。
    是不是r = st.executeQuery(queryinsert2); 这个语句有错阿?
    select的时候是用的executeQuery是不是insert的时候不是用的这个?
      

  6.   

    虽然没有用过mysql
     
     我想啊,应该要这样改st.executeUpdate(queryinsert2);