MySQL与Java项目乱码定位与解决初探

本文探讨了Java项目中使用MySQL时出现的乱码问题,并提供了详细的解决方案。通过调整MySQL配置文件my.ini和使用合适的编码设置,可以有效避免乱码现象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


Java项目中使用MySQL作为数据库进行连接时可能出现乱码,其很使烦恼!

<!--这里使用hibernate做数据库连接,这里只是探讨乱码问题,至于使用jdbc,配置文件等都有雷同>

这里可以认为数据库在本地和远程服务段并没多大的差别,唯一不方便的是不能手动修改服务端的数据库默认配置信息。有些服务器提供数据库服务,但是他并不排除其默认编码未做修改(latin1)。

现在将项目分为两个部分,MySQL数据库和Java代码。首先从java代码入手分析暂时不考虑web项目中jsp传值问题(后续将做总结),实现简单的数据库连接和查询。在编写java代码时确保编辑器使用的utf-8(使得页面提交的数据不会因为不统一的编码问题而提交乱码),这里通常使用中文和英文同时做测试,可以排除一些程序上逻辑的错误导致输出不正确的信息。

package test;

import org.hibernate.Session;

import pojo.Tdo;
import sessionFactory.HibernateSessionFactory;

public class DaoImpl {

	public static void main(String[] args) {
		
		Session session=HibernateSessionFactory.getSession();
		session.clear();
		Tdo  tdo=(Tdo)session.createQuery(" from Tdo where name='"+正+"'").uniqueResult();
		String gname=tdo.getName();
		System.out.println(tdo.getName());
		session.close();
		
	}
}
然后测试,如果还是有问题。那么既然这么简单的方式就出问题说明数据源出问题了。

数据库MySQL,查看数据库默认编码在安装文件夹下my.ini

[client]

port=3306
[mysql]

default-character-set=utf8

# SERVER SECTION
和建表时选项中的编码格式(这里注意navicat等可视化数据库操作工具并不能真正的修改一些默认配置信息,必须在MySQL中修改)修改默认配置my.ini时需要重启MySQL。这里可以使用很简单的测试数据库编码代码

show variables like 'character%'


中的character_set_server,就是数据库中的默认编码,如果不统一可以在MySQL配置文件中修改,当然也可以在hibernate配置文件中修改

后一种灵活性比较高,如你无法操作数据库配置文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值