方式一:设置编码统一
1.设置eclipse环境编码(推荐:java视频教程)
2.设置mysql环境编码
mydb为需要修改的数据库名称
方式二:创建数据库时设置编码
1.mysql创建database时设置编码
create database mydb default character set utf8 collate utf8_general_ci;
2.创建表时设置编码
create table `type` ( `id` int(10) unsigned not null auto_increment, `flag_deleted` enum('y','n') character set utf8 not null default 'n', `flag_type` int(5) not null default '0', `type_name` varchar(50) character set utf8 not null default '', primary key (`id`) ) default charset=utf8;
方式三:连接数据库时设置
在url后添加?useunicode=true&characterencoding=utf-8
public class testjdbc { private static string url = "jdbc:mysql://localhost:3306/studentmanage?useunicode=true&characterencoding=utf-8"; useunicode=true&characterencoding=utf-8 private static string user = "root"; private static string password = "root"; public static void main(string[] args) { connection con = null; string sql = "insert into user(uid,uname,password) values(?,?,?)"; try { class.forname("com.mysql.jdbc.driver"); con = drivermanager.getconnection(url, user, password); con.close(); } catch (exception e) { e.printstacktrace(); } }
添加的作用是:指定字符的编码、解码格式。
例如:mysql数据库用的是gbk编码,而项目数据库用的是utf-8编码。这时候如果添加了useunicode=true&characterencoding=utf-8 ,那么作用有如下两个方面:
存数据时:
数据库在存放项目数据的时候会先用utf-8格式将数据解码成字节码,然后再将解码后的字节码重新使用gbk编码存放到数据库中。
取数据时:
在从数据库中取数据的时候,数据库会先将数据库中的数据按gbk格式解码成字节码,然后再将解码后的字节码重新按utf-8格式编码数据,最后再将数据返回给客户端。
更多java知识请关注java基础教程栏目。
以上就是java插入mysql数据乱码解决方法的详细内容。