各位大哥你们好,小弟有个忙需要大家帮一把,我的程序是:
dbc  = new DBConnect();
dbc.prepareStatement("SELECT * FROM caiwu_master WHERE master_name = ? and master_password = ?");
dbc.setBytes(1,master_name.getBytes("utf-8"));
dbc.setBytes(2,master_password.getBytes("utf-8"));

System.out.println(master_name.getBytes("utf-8"));  //数据显示为[B@1c4f0f8
System.out.println(master_name);   //可以正常显示数据admin
rs = dbc.executeQuery();
但dbc.setBytes(1,master_name.getBytes("utf-8"));无法正常赋值
函数:dbc.setBytes如下:public void setBytes(int index,byte[] value) throws SQLException{
prepstmt.setBytes(index,value);}
请问哪位知道类型怎么转换才能正常赋值呢

解决方案 »

  1.   

    你要解决编码是吧,这样子写多么麻烦,直接在数据库设置编码为UTF-8啊。
      

  2.   


    dbc.setBytes(1,master_name.getBytes("utf-8"));
    // 这一段的问题,后面的master_name.getBytes("utf-8")
    //返回的数据类型不是byte类型或者其子类型吧
      

  3.   

    就是byte类型,但我不知道怎样转化
      

  4.   

    dbc.setBytes(1,master_name.getBytes("utf-8"));
    你这个往数据库里添加,添加的时候又把master_name 获取 getBytes("uft-8");这个是想把master_name 的编码方式变成 utf-8,还是 dbc.setBytes()这个类型要求用byte类型方式来解决啊?本来你是想master_name 添加到数据库吧,但是,为什么有把master_name.getBytes("uft-8")加进去呢? 有点乱
      

  5.   

    dbc.setBytes()这个类型要求用byte类型方式来解决,而且主要是想把编码转化为utf-8的形式,所以才这么写的。。
      

  6.   

    老大们,帮帮忙啊
    我的代码如下:
    1.
    public boolean chkLogin() throws Exception {
    //System.out.print("asdfsdf");
    DBConnect dbc = null;
    try{
    dbc  = new DBConnect();
    dbc.prepareStatement("SELECT * FROM caiwu_master WHERE master_name = ? and master_password = ?");
    dbc.setBytes(1,master_name.getBytes("utf-8"));
    dbc.setBytes(2,master_password.getBytes("utf-8"));

    System.out.println(master_name.getBytes("utf-8"));
    System.out.println(master_name);
    rs = dbc.executeQuery();

    //System.out.println(rs.next());

    //System.out.println("master_name");
    if(!rs.next()){
    ismaster = false;
    }else{
    ismaster = true;
    }

    }catch(Exception e){
    System.err.println(e);
    }finally{
    try{
    dbc.close();
    }catch(Exception e){
    e.printStackTrace();
    }
    }

    return ismaster;
    }2.链接建立后就执行dbc.prepareStatement ,程序代码如下:
    public void prepareStatement(String sql) throws SQLException {
    //System.out.println(sql);
    prepstmt = conn.prepareStatement(sql);

    }
    3.执行赋值函数:dbc.setBytes(1,master_name.getBytes("utf-8"));程序代码如下:
    public void setBytes(int index,byte[] value) throws SQLException{
    prepstmt.setBytes(index,value);
    //System.out.println(value);
    }
    问题就出在了第三步,sql语句的条件没有赋上值,应该是类型不一致问题,哪位帮我改改撒。