Statement st = conn.createStatement();
sql = "INSERT INTO ClassRoom VALUES('" +
      RoomSequence + "','" +
      CampusRegion + "','" +
      RoomBuilding + "','" +
      RoomId + "','" +
      Capacity + "','" +
      MultiFlag + "','');";
           
      //执行sql语句
st.executeUpdate(sql);  
//同时插入插入当天教室使用情况表(ClassRoomUsage)
for (int j = 1; j <= 5; j++ )
{

sql = "INSERT INTO ClassRoomUsage VALUES(null,'"
+ RoomSequence + "','1','1','" + j + "','0',null,'0',b'0');";
//执行sql语句
st.executeUpdate(sql);  
}
为啥第一条sql语句可以执行,第二条却不能执行呢??我用的java,jdbc连接mysql,第二条语句我用System.out.println(sql);输出一下,然后再拷贝到数据库直接执行却可以执行,不知道为啥,另外我把后面的5次循环sql语句换成st.addBatch(sql);循环添加5次,然后在循环体下面执行st.executeBatch();也是不能执行,唯独for循环之前的那条sql语句可以执行,求高手帮小弟看下
ps:不是数据库外键约束的原因,我前面已经把外键约束SET FOREIGN_KEY_CHECKS = 0;暂时关了,

解决方案 »

  1.   

    sql = "INSERT INTO ClassRoomUsage VALUES(null,'"
    + RoomSequence + "','1','1','" + j + "','0',null,'0',b'0');";//这里 b'0' 是什么,感觉不正常啊?
      

  2.   

    提示什么,字段类型与变量类型是否一致,将SQL语句显示出来看看
      

  3.   

    b'0'是bit类型,插入的时候就是这种格式,这个没有问题,我上面说了,用system.out.print打印出来插入操作前的sql语句,然后拷贝到数据库里面可以正常执行,这说明sql语句没有问题,用java通过jdbc连接数据库,没有返回结果,因为sql语句没有执行
      

  4.   

    在for 循环里,放进去
    for (int j = 1; j <= 5; j++ )
     {
     Statement st = conn.createStatement();
     sql = "INSERT INTO ClassRoomUsage VALUES(null,'"
     + RoomSequence + "','1','1','" + j + "','0',null,'0',b'0');";
     //执行sql语句
    st.executeUpdate(sql);   
    }
      

  5.   

    拷贝到数据库可以执行,但是放在java语句里面不行,现在我把数据库表的那列属性bit类型改成smallint,问题解决了,谢谢大家