当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: 搜索了好久这个控件,还没找到! 谁能给我一个? zlxcjy@163.com ......
    摘要: 知道的说说哦 ......


在帮我改改吧我还是解决不了

我在做一个jsp的页面的时候,在调用mysql数据库中属性为text的字段的时候总是乱码,请高手帮我分析下,到底错在哪儿了?最好能帮我改一下!谢谢了!!!  
   
   
  我的配置是   :  
  win2000   pro  
  resin-2.1.6  
  mysql   4.0.12  
  jdk1.3  
  mm.mysql.jdbc-1.2b  
   
  下面是数据库和代码:  
  ------------------------------------------  
  数据库  
  ------------------------------------------  
  #   主机:   localhost  
  #   数据库:   t  
  #   表:   txt  
  #    
  CREATE   TABLE   `txt`   (  
      `id`   int(11)   NOT   NULL   auto_increment,  
      `txt`   text   NOT   NULL,  
      PRIMARY   KEY     (`id`)  
  )   TYPE=MyISAM;    
   
  ------------------------------------------  
  index.jsp  
  ------------------------------------------  
  <%@   page   contentType="text/html;   charset=gb2312"   language="java"   import="java.sql.*"   errorPage=""   %>  
  <%@   include   file="Connections/cont.jsp"   %>  
  <%  
  //   ***   Edit   Operations:   declare   variables  
   
  //   set   the   form   action   variable  
  String   MM_editAction   =   request.getRequestURI();  
  if   (request.getQueryString()   !=   null   &&   request.getQueryString().length()   >   0)   {  
      MM_editAction   +=   "?"   +   request.getQueryString();  
  }  
   
  //   connection   information  
  String   MM_editDriver   =   null,   MM_editConnection   =   null,   MM_editUserName   =   null,   MM_editPassword   =   null;  
   
  //   redirect   information  
  String   MM_editRedirectUrl   =   null;  
   
  //   query   string   to   execute  
  StringBuffer   MM_editQuery   =   null;  
   
  //   boolean   to   abort   record   edit  
  boolean   MM_abortEdit   =   false;  
   
  //   table   information  
  String   MM_editTable   =   null,   MM_editColumn   =   null,   MM_recordId   =   null;  
   
  //   form   field   information  
  String[]   MM_fields   =   null,   MM_columns   =   null;  
  %>  
  <%  
  //   ***   Insert   Record:   set   variables  
   
  if   (request.getParameter("MM_insert")   !=   null   &&   request.getParameter("MM_insert").toString().equals("form1"))   {  
   
      MM_editDriver           =   MM_cont_DRIVER;  
      MM_editConnection   =   MM_cont_STRING;  
      MM_editUserName       =   MM_cont_USERNAME;  
      MM_editPassword       =   MM_cont_PASSWORD;  
      MM_editTable     =   "txt";  
      MM_editRedirectUrl   =   "index.jsp";  
      String   MM_fieldsStr   =   "id|value|txt|value";  
      String   MM_columnsStr   =   "id|none,none,NULL|txt|,none,";  
   
      //   create   the   MM_fields   and   MM_columns   arrays  
      java.util.StringTokenizer   tokens   =   new   java.util.StringTokenizer(MM_fieldsStr,"|");  
      MM_fields   =   new   String[tokens.countTokens()];  
      for   (int   i=0;   tokens.hasMoreTokens();   i++)   MM_fields[i]   =   tokens.nextToken();  
   
      tokens   =   new   java.util.StringTokenizer(MM_columnsStr,"|");  
      MM_columns   =   new   String[tokens.countTokens()];  
      for   (int   i=0;   tokens.hasMoreTokens();   i++)   MM_columns[i]   =   tokens.nextToken();  
   
      //   set   the   form   values  
      for   (int   i=0;   i+1   <   MM_fields.length;   i+=2)   {  
          MM_fields[i+1]   =   ((request.getParameter(MM_fields[i])!=null)?(String)request.getParameter(MM_fields[i]):"");  
      }  
     
      //   append   the   query   string   to   the   redirect   URL  
      if   (MM_editRedirectUrl.length()   !=   0   &&   request.getQueryString()   !=   null)   {  
          MM_editRedirectUrl   +=   ((MM_editRedirectUrl.indexOf(?)   ==   -1)?"?":"&")   +   request.getQueryString();  
      }  
  }  
  %>  
  <%  
  //   ***   Insert   Record:   construct   a   sql   insert   statement   and   execute   it  
   
  if   (request.getParameter("MM_insert")   !=   null)   {  
   
      //   create   the   insert   sql   statement  
      StringBuffer   MM_tableValues   =   new   StringBuffer(),   MM_dbValues   =   new   StringBuffer();  
      for   (int   i=0;   i+1   <   MM_fields.length;   i+=2)   {  
          String   formVal   =   MM_fields[i+1];  
          String   elem;  
          java.util.StringTokenizer   tokens   =   new   java.util.StringTokenizer(MM_columns[i+1],",");  
          String   delim         =   ((elem   =   (String)tokens.nextToken())   !=   null   &&   elem.compareTo("none")!=0)?elem:"";  
          String   altVal       =   ((elem   =   (String)tokens.nextToken())   !=   null   &&   elem.compareTo("none")!=0)?elem:"";  
          String   emptyVal   =   ((elem   =   (String)tokens.nextToken())   !=   null   &&   elem.compareTo("none")!=0)?elem:"";  
          if   (formVal.length()   ==   0)   {  
              formVal   =   emptyVal;  
          }   else   {  
              if   (altVal.length()   !=   0)   {  
                  formVal   =   altVal;  
              }   else   if   (delim.compareTo("")   ==   0)   {     //   escape   quotes  
                  StringBuffer   escQuotes   =   new   StringBuffer(formVal);  
                  for   (int   j=0;   j   <   escQuotes.length();   j++)  
                      if   (escQuotes.charAt(j)   ==   \)   escQuotes.insert(j++,\);  
                  formVal   =   ""   +   escQuotes   +   "";  
              }   else   {  
                  formVal   =   delim   +   formVal   +   delim;  
              }  
          }  
          MM_tableValues.append((i!=0)?",":"").append(MM_columns[i]);  
          MM_dbValues.append((i!=0)?",":"").append(formVal);  
      }  
      MM_editQuery   =   new   StringBuffer("insert   into   "   +   MM_editTable);  
      MM_editQuery.append("   (").append(MM_tableValues.toString()).append(")   values   (");  
      MM_editQuery.append(MM_dbValues.toString()).append(")");  
       
      if   (!MM_abortEdit)   {  
          //   finish   the   sql   and   execute   it  
          Driver   MM_driver   =   (Driver)Class.forName(MM_editDriver).newInstance();  
          Connection   MM_connection   =   DriverManager.getConnection(MM_editConnection,MM_editUserName,MM_editPassword);  
          PreparedStatement   MM_editStatement   =   MM_connection.prepareStatement(MM_editQuery.toString());  
          MM_editStatement.executeUpdate();  
          MM_connection.close();  
   
          //   redirect   with   URL   parameters  
          if   (MM_editRedirectUrl.length()   !=   0)   {  
              response.sendRedirect(response.encodeRedirectURL(MM_editRedirectUrl));  
              return;  
          }  
      }  
  }  
  %>  
  <%  
  Driver   Driverread   =   (Driver)Class.forName(MM_cont_DRIVER).newInstance();  
  Connection   Connread   =   DriverManager.getConnection(MM_cont_STRING,MM_cont_USERNAME,MM_cont_PASSWORD);  
   
   
   
   
   
  PreparedStatement   Statementread   =   Connread.prepareStatement("SELECT   *   FROM   txt");  
   
   
   
   
  ResultSet   read   =   Statementread.executeQuery();  
  boolean   read_isEmpty   =   !read.next();  
  boolean   read_hasData   =   !read_isEmpty;  
   
  Object   read_data;  
  int   read_numRows   =   0;  
  %>  
  <%  
  int   Repeat1__numRows   =   -1;  
  int   Repeat1__index   =   0;  
  read_numRows   +=   Repeat1__numRows;  
  %>  
  <html>  
  <head>  
  <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">  
  <title>数据库连接测试</title>  
  </head>  
   
  <body>  
  <%   while   ((read_hasData)&&(Repeat1__numRows--   !=   0))   {   %>  
  <p><%=(((read_data   =   read.getObject("id"))==null   ||   read.wasNull())?"":read_data)%>   <br>  
      <%=(((read_data   =   read.getObject("txt"))==null   ||   read.wasNull())?"":read_data)%>   </p>  
  <%  
      Repeat1__index++;  
      read_hasData   =   read.next();  
  }  
  %>  
  <hr   align="center"   size="1"   noshade>  
   
  <p>&nbsp;</p>  
       
  <form   method="post"   action="<%=MM_editAction%>"   name="form1">  
      <table   align="center">  
          <tr   valign="baseline">    
              <td   nowrap   align="right">Id:</td>  
              <td>   <input   type="text"   name="id"   value=""   size="32">   </td>  
          </tr>  
          <tr   valign="baseline">    
              <td   nowrap   align="right">Txt:</td>  
              <td>   <textarea   name="txt"   cols="32"   rows="10"></textarea>   </td>  
          </tr>  
          <tr   valign="baseline">    
              <td   nowrap   align="right">&nbsp;</td>  
              <td>   <input   type="submit"   value="插入记录">   </td>  
          </tr>  
      </table>  
      <input   type="hidden"   name="MM_insert"   value="form1">  
  </form>  
  <p>&nbsp;</p>  
  </body>  
  </html>  
  <%  
  read.close();  
  Statementread.close();  
  Connread.close();  
  %>  
   
   
  ------------------------------------------  
  Connections文件夹下  
  cont.jsp  
  ------------------------------------------  
  <%  
  //   FileName="mysql_jdbc_conn.htm"  
  //   Type="JDBC"   ""  
  //   DesigntimeType="JDBC"  
  //   HTTP="true"  
  //   Catalog=""  
  //   Schema=""  
  String   MM_cont_DRIVER   =   "org.gjt.mm.mysql.Driver";  
  String   MM_cont_USERNAME   =   "root";  
  String   MM_cont_PASSWORD   =   "";  
  String   MM_cont_STRING   =   "jdbc:mysql://localhost/t";  
  %>  
   
   
 

NO.1   作者: acefr

你用getObject()??  
  那可能会出错的。  
   
  改用流来读取就不会出错了。

NO.2   作者: zq9811

没遇见过,支持一下吧!

NO.3   作者: Tomcat4

直接使用read.getString   试试看!

NO.4   作者: acefr

楼上的方法如果碰到text字段里有\0   那就只能读出一部分。  
  如果你的text字段里没有\0   那就没事。


    摘要: stopiis.bat 包含如下内容 net stop iisadmin ,但双击 stopiis.bat 并不能达到效果,因为还有一个y/n提示要人工确认, 请问怎麽才能让批命令自动输入y ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE