本人新手,遇到问题了,忘给予指点:我在mysql中 有一个字段active 为bit 类型,想在我要将他从数据库中读出来,显示在页面上,在action 中
  String active = form.getActive(); 这样是无法保存的,像char类型的 直接这样就可以,请问我该怎么样,才能将这个bit类型的这样操作啊,在线等

解决方案 »

  1.   

    还是不明白,我具体说吧,我有一张表,service 里面有三个字段,id name active,其中name 为char,active 为bit, 我有一个serviceForm 就是简单的get set 方法,现在我在我的action 中
            String name = stateform.getName();
    String active = (String) stateform.getActive();
    try{
    String sql="select * from tbl_services";
    DBCon db = new DBCon();
    ResultSet rs = db.select(sql);
    if(rs.next()){
    name = rs.getString("name");
    active = rs.getString("active");
    HttpSession session = request.getSession();
    session.setAttribute("name", name);
    session.setAttribute("active", active);
    }
    }catch(Exception e){
    e.printStackTrace();
    }

    return mapping.findForward("state");
    页面中也很简单,是这样的
    <table width="200" border="1">
      <tr>
        <td>&nbsp;服务状态</td>
        <td>&nbsp;用户</td>
        <td>&nbsp;机器</td>
      </tr>
      <tr>
        <td></td>
        <td><%=session.getAttribute("name") %></td>
        <td><%=session.getAttribute("active") %></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
    </table>
    但这样做,tomcat会报错,我查了一下,主要错误就是我在form中,设置的类型为public String active;
    只要我把这个active 都删了,不去读它,只有读name 是成功的,也就是说,Mysql中的,bit类型,不能用String 来实例,
      

  2.   

    bit应该是int型啊,
    String active = (String) stateform.getActive(); 
    你改成这样试下
    String active = stateform.getActive()+""; 
      

  3.   

    如果是int型的 就好办了,提示好像是说是boolean型的,这样编译都不通过啊,后面 +"" 这样怎么可以,我的编译器不通过
      

  4.   

    照你说的 改了一下,但是很是报错
            java.lang.Error: 无法解析的编译问题:
    没有为类型 StateForm 定义方法 getActive()
      

  5.   

    active = rs.getString("active"); 
    你到后面把这个值打印出来看看
    System.out.println(active);
      

  6.   

    还是没有解决,郁闷,难道,bit类型的值,不能这样读取,汗,始终显示的要不是 空,要不久是 r , 查了一下资料,也没有很清楚的,只知道,Bit类型值只有 0,1,null,而且好像转换出来后是个boolean的true,或者flase
      

  7.   

    用ord()获取ASCII码bit 类型1  ord() 为:   1  bit 类型0  ord() 为:   0  再操作
      

  8.   

    我也遇到bit的问题,------性别xb 但是在mysql中不能显示1,0只是显示小方框