说说Java程序和数据库交互的乱码解决

本文就本人遇到的问题进行讲解

1.通过jdbc直连方式,连接Mysql数据库,从程序向数据库中写入数据出现的乱码解决方案。

当通过程序向Student表中写入一条数据时,写入数据库的内容会产生乱码。

如下图

解决方案:

1。创建数据库的时候:

CREATE   DATABASE   `Db` 
                               CHARACTER   SET   ‘utf8 ‘ 
                               COLLATE   ‘utf8_general_ci ‘;

2.建表的时候:

CREATE   TABLE   `TableA`   ( 
                                    `ID`   varchar(40)   NOT   NULL   default   ‘ ‘, 
                                     `UserID`   varchar(40)   NOT   NULL   default   ‘ ‘,  ) 
                                      ENGINE=InnoDB   DEFAULT   CHARSET=utf8;

但是本人感觉关系不是很大,不过可以作为一种尝试手段。

3.该方案行之有效,就是修改Mysql安装目录的配置文件

需要修改my.ini中两个位置的编码,

第一处

第二处:

设置后,通过命令重启服务

最终问题解决。

2.如果是通过jdbc从mysql数据库读取数据出现乱码,但是数据库中数据本身并没有出现乱码,那么可以使用在url中加参数的解决方案。

Url写法如下:

jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=UTF-8

3.如果将url中的localhost换成IP地址,出现如下问题:

报错:1130-host ... is not allowed to connect to this MySql server

解决方法:

1。 改表法。

可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"

mysql -u root -pvmwaremysql>use mysql;

mysql>update user set host = ‘%‘ where user = ‘root‘;

刷新授权 ,该行代码必须有。。FLUSH   PRIVILEGES;

4.JDBC-ODBC桥连方式从数据库中读取数据出现乱码解决方案

不要直接读取,可以使用如下方式转换读取,问题解决

String stuname=new String(rs.getBytes(2),"utf-16le");

结语:JDBC和数据库交互产生乱码是开发中经常遇到的棘手问题,希望这里的总结可以帮助到您。

说说Java程序和数据库交互的乱码解决

时间: 2025-01-01 03:21:36

说说Java程序和数据库交互的乱码解决的相关文章

Java程序操作数据库SQLserver详解

数据库基本操作:增删改查(CRUD) crud介绍(增.删.改.查操作) CRUD是指在做计算处理时的增加(Create).查询(Retrieve)(重新得到数据).更新(Update)和删除(Delete)几个单记事的首字母简写.主要被用在描述软件系统中数据库或者持久层的基本操作功能. Create new records Rctricvc cxisting rccords Update existing records Delete existing records. 要对数据表进行增.删.

linux下Java程序插入DB数据中文乱码问题

首先,插入到DB的数据,在Linux下查询的时候,字段显示为??. 再次,在windows连接到db上,查看的结果并不是乱码. 修改Eclipse软件中的编码:如上图:windows菜单->preference->general->content type,Javaclassfile和text都设成utf-8: 然后 在Linux下执行以下的命令: mysql> set names UTF8; 最后,在查询的时候,Linux下的内容,就不是乱码了.

php写入数据到mysql数据库中出现乱码解决方法

乱码情况: 在选择数据库前加入一句代码即可 mysql_query("set names utf8"); 最后效果

java程序导致cpu利用率100%的解决方法

1)先用top找出哪个线程占着cpu #top 查看cpu 100% 的进程号,如进程号为16459 #top -H -p 16459 然后再看是哪个pid 比较高   找到cpu为100%的PID PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND 16539 root      25   0 1673m 525m  10m R 98.9 13.3   6:36.83 java 16462 root      1

Linux排查Java程序占用CPU很高的解决办法

Java的工具集相当强大,学习成本也很低,处理线上问题时,jstack这个工具就比微软的windbg,好学好用很多,3步找出占用CPU很高的源所在.而windbg反人类的各种命令,实在不敢恭维. 故意设置了一个CPU占用很高的场景: 排查问题,步骤: 1. ps -mp [替换为进程ID PID] -o THREAD,tid,time 发现线程6322.6323占用CPU很高,时间也很长. 2. printf “%x” [线程ID TID] 把TID转换为16进制. 3. jstack [进程I

关于edoc程序tomcat post提交中文乱码解决办法

1修改源码代码中页面部分指定转码格式为UTF-8替换原来的gb2312或GBK 2源码新增 water.edoc.service.FileFilter 过滤器并在web.xml首行添加制定格式 3tomcat conf根目录service.xml指定UTF-8格式 4修改applicationContext.xml内jdbcurl 为 <value>jdbc:mysql://localhost:3306/edoc?useUnicode=true&characterEncoding=UT

JSP详细篇——Java Web的数据库操作

Java Web的数据库操作 JDBC技术 JDBC简介 JDBC是Java程序曹祖数据库的API,也是Java程序与数据库交互的一门技术.JDBC是java操作数据库的规范,由一组用Java语言编写的类和接口组成,他对数据库的操作提供了基本的方法.使用JDBC操作数据库,需要数据库厂商提供数据库的驱动程序. JDBC在Java程序与数据库之前起到了桥梁的作用,有了JDBC就可以方便的与各种数据库进行交互,不必为某一个特定的数据库指定专门的访问程序. JDBC连接数据库的过程 JDBC操作数的开

java中文乱码解决之道(四)—–java编码转换过程

原文出处:http://cmsblogs.com/?p=1475 前面三篇博客侧重介绍字符.编码问题,通过这三篇博客各位博友对各种字符编码有了一个初步的了解,要了解java的中文问题这是必须要了解的.但是了解这些仅仅只是一个开始,以下博客将侧重介绍java乱码是如何产生的.存在哪些乱码的情况.该如何从根本上解决乱码问题.各位随博主一起征服令人厌烦的java乱码问题吧!!! java编码转换过程 我们总是用一个java类文件和用户进行最直接的交互(输入.输出),这些交互内容包含的文字可能会包含中文

Java中文乱码解决

Jvm内部编码采用的是Unicode编码. 常见的字符编码集:ASCII编码,GBK编码,Unicode编码 UTF-8只是unicode的实现方式之一: UTF-8最大的一个特点,就是它是一种变长的编码方式.它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度. UTF-8的编码规则很简单,只有两条: 1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码.因此对于英语字母,UTF-8编码和ASCII码是相同的. 2)对于n字节的符号(n>1),第一个字节的