java连接mysql数据库乱码的解决方法

解决方法一:

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标头:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>不行的话就尝试:

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 = request.getParameter("name");
name= new String(name.getBytes("ISO-8859-1"),"utf-8");
或者:

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

解决方法四:

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

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

default-character-set=utf-8

然后重起mysql

方法五:在tomca或者web项目下的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>

(0)

相关推荐

  • Java+Mysql学生管理系统源码

    最近正在学java和数据库,想起以前写的学生管理系统,都是从网上下载,敷衍了事.闲来无事,也就自己写了一个,不过功能实现的不是很多. 开发语言:java: 开发环境:Mysql, java: 开发工具:eclipse 开发此案例,首先得在电脑上有java开发环境和Mysql, java开发环境与Mysql的搭建,就不再叙述了,如果需要,请联系我最下面的联系方式:dingyelf@aliyun.com 此次系统比较简易:数据库中只有一个表:stu;功能:能够对学生增加.删除.修改. 开发步骤:  

  • java实现插入mysql二进制文件,blob类型,遇到问题及解决办法

    首先是数据库建立要准备的: 我们要把放置二进制字段设置为Blob类型,根据文件的大小选择合适的Blob类型,一下是各个Blob类型所能容纳二进制文件的大小 MySQL的四种BLOB类型 类型 大小(单位:字节) TinyBlob 最大 255 Blob 最大 65K MediumBlob 最大 16M LongBlob 最大 4G 一下是具体操作代码: 复制代码 代码如下: /** * * 把二进制文件(该二进制文件可以是本地硬盘路径,也可以是一个网络路径)存入数据库 * create date

  • java jdbc连接mysql数据库实现增删改查操作

    jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打交道非常基础的一个知识,也是比较接近底层的,在实际的工作中大家用得更多的其实还是比较成熟的框架,例如Hibernate.Mybatis. 但是作为这些成熟框架的底层的jdbc却也是我们应该去掌握的,只有了解了jdbc的增删改查,这样在以后如果有兴趣去研究Hibernate或者Mybatis的源代码的时候才能更好的去理解这些成熟的框架是如何去实现增删改查

  • java 下执行mysql 批量插入的几种方法及用时

    方法1: Java code 复制代码 代码如下: conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASS);        pstmt = conn                .prepareStatement("insert into loadtest (id, data) values (?, ?)");        for (int i = 1; i <= COUNT; i++) {    

  • java连接MySQL数据库的代码

    本文实例为大家分享了java连接MySQL数据库的具体代码,供大家参考,具体内容如下 package connect; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class Connect { //驱动程序位置 public static final String DBDRIVER="com.mysql.jdbc.Driver"; //连接地址

  • Java获取最后插入MySQL记录的自增ID值的3种方法

    方法一: 复制代码 代码如下: String sql = "INSERT INTO users (username,password,email) VALUES (?,?,?);";PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);//传入参数:Statement.RETURN_GENERATED_KEYSpstmt.setSt

  • Java+MySql图片数据保存与读取的具体实例

    1.创建表: 复制代码 代码如下: drop table if exists photo;CREATE TABLE photo (    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,    name VARCHAR(100) COMMENT '名称',    photo blob COMMENT '照片')ENGINE=InnoDBDEFAULT CHARSET=utf8COLLATE=utf8_general_ci; 图片在MySql中的数据存储格式为

  • Java连接MySql的详细介绍

    1. 现在工程(不是Src)上右键--Build Path--Add External Archives,选择驱动下的那个jar包,这是release版本,bin目录下的是debug版本. 示例在docs下的connector-j.html,里面有例子(其中的test是数据库名,换位自己的). 复制代码 代码如下: import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; Co

  • Java实现获得MySQL数据库中所有表的记录总数可行方法

    在MySQL中,可以通过SELECT COUNT(*) FROM table_name查询某个表中有多少条记录.如果想知道某个数据库中所有别的记录总数应该怎么做呢?本文给出两种可行的Java程序,解决该问题. 1. 首先确定数据库中有多少个表,然后对每个表执行SELECT COUNT(*) FROM table_name 复制代码 代码如下: import java.sql.Connection; import java.sql.DriverManager; import java.sql.Pr

  • java连接MySQl数据库实例代码

    复制代码 代码如下: package com.abc.dao; import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement; public class BaseDao { public Connection getConn() {  Connection conn=null;  tr

随机推荐