zoukankan      html  css  js  c++  java
  • java连接数据库的解决方法大全(mysql)

    解决方法一:(最重要的一种方法) 你看下my.ini,有无  [mysql]

    default-character-set=utf8

    [client]  default-character-set=utf8

    [mysqld]  default-character-set=utf8  然后建立表时,也要用(比如)  DROP   TABLE   IF   EXISTS   `Company`;  CREATE   TABLE   IF   NOT   EXISTS   `Company`  (      `Cname`   VARCHAR(10)   NOT   NULL,      `Caddr`   VARCHAR(100),      `Ctel`     VARCHAR(16)  )ENGINE=InnoDB   DEFAULT   CHARSET=UTF8;  这样就没问题。

    如果是jsp要声明: contentType="text/html;charset=gb2312"

    解决方法二:

    连接mysql时(无论在从mysql读还是取数据的情况),指定使用的编码方式为utf-8,具体代码如下

    //装载mysql-jdbc驱动

    Class.forName("com.mysql.jdbc.Driver").newInstance();

    //连接数据库

    Connection sqlCon = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test?                         user=root&password=1&useUnicode=true&characterEncoding=utf-8" );

    解决方法三:

    如果方法一不行那么在方法一的基础上对读入的字符串进行强制编码方式转换。

     

    代码示例如下:

    String name = rst.getString("name"); name= new String(name.getBytes("ISO-8859-1"),"utf-8");

    注:代码也可以为:String name =new String( rst.getString("name").getBytes("ISO-8859-1"),"utf-8"));其中rst为返回的resultset,ISO-8859-1为mysql默认的编码方式,代码的目的是把以ISO-8859-1的编码转换为gb2312编码方式,这样强制转换,可以解决一部分问题,如果结合方法一,应该可以解决中文乱码问题。

    解决方法四:

    这个方法在有些文章里是首推的,我首先也是试了这个方法,但是好像不行。这里还是说一下,不知是不是我操作错误。还是先贴原文吧:

    "如果数据库中有中文的话而mysql默认的语言不是中文时要在配置文件C:winntmy.ini 中的 [mysqld] 里添加一行:

    default-character-set=utf-8

    然后重起mysql

    方法五:在tomcat conf  里面的web.xml里面更改:

    <filter>            

      <filter-name>UTFEncoding</filter-name>         

         <filter-class>com.founder.chenph.Util.EncodingFilter_UTF8</filter-class>          

        <init-param>            

          <param-name>encoding</param-name>          

            <param-value>UTF-8</param-value>   

              </init-param>  

            </filter>          

        <filter-mapping>           

       <filter-name>UTFEncoding</filter-name>   

              <url-pattern>*.jsp</url-pattern>     

         </filter-mapping>        

      <filter-mapping>          

           <filter-name>UTFEncoding</filter-name>       

           <url-pattern>*.do</url-pattern>   

      </filter-mapping> 

     

    一般来说这些方法可以解决绝大多数的乱码问题了哦~~~~

  • 相关阅读:
    初始化注解和销毁注解
    MySQL、SQLServer、Oracle 分组排序
    mybatis 中SQLServer 和 mysql 模糊查询 不同点
    SpringBoot学习之logback.xml 配置指定包或类输出至单独的日志文件中
    类比 RocketMq 和 淘宝消息服务:
    SVN提交文件失败:系统找不到指定路径
    官网下载MySQL 并安装
    Java 变量参数传入方法,方法结束后传入的值
    03-类与对象课后作业(1)
    02方法-课后动手动脑
  • 原文地址:https://www.cnblogs.com/xiohao/p/3538516.html
Copyright © 2011-2022 走看看