java学习笔记1-Eclipse和Mysql连接,中文不显示问题
最近学习java过程中,遇到了一些数据库连接,中文显示成“?”的问题,自己查了下网上的帖子,鼓弄出来了,这里总结一下,给大家分享。
首先,确定Mysql是否能正确显示中文:
这里检测方式,用界面华工具或者windows的“运行”命令都行,此处楼主用“运行”方式检测
运行-mysql -u 这个后面填用户名 -p这个后面填密码,回车;
[cpp]
create database zjw;
use zjw;
create table admin
(
name varchar(30),
password varchar(30)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
create database zjw;
use zjw;
create table admin
(
name varchar(30),
password varchar(30)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 插入数据:insert into admin values('庄','1234');
显示:select *from admin;
如果显示的结果,汉字处是?,则证明数据库存储汉字有问题。
解决办法:输入show variables like '%character%';
Set character_set_client=utf-8;
Set character_set_results=utf-8;
博主因为已经修改,所以截图已经显示utf-8了。
此时尝试insert刚才的插入语言,能正确显示了吧。
但是,这个时候,有可能遇到另一种情况,就是能在Mysql里面正确存储中文,但是在Eclipse里面进行连接Mysql时候,插入操作插入的中文还是?。比如:
[cpp]
public class Test {
public static void main(String[] args) {
Database db=new Database();
String sql="insert into admin1(id,name,password) values(4,'庄','12345')";
boolean f=db.update(sql);
if(f){
System.out.println("succ");
}
else{
System.out.println("fail");
}
String sql2="select * from admin1";
ResultSet rs=db.query(sql2);
try {
while(rs.next()){
System.out.println(rs.getInt("id")+"--->"+rs.getString("name"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public class Test {
public static void main(String[] args) {
Database db=new Database();
String sql="insert into admin1(id,name,password) values(4,'庄','12345')";
boolean f=db.update(sql);
if(f){
System.out.println("succ");
}
else{
System.out.println("fail");
}
String sql2="select * from admin1";
ResultSet rs=db.query(sql2);
try {
while(rs.next()){
System.out.println(rs.getInt("id")+"--->"+rs.getString("name"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} Eclipse输出的是:
succ
4--->?
此时出现这种情况,很可能是你在与Mysql连接时,为指定编码格式。
请在连接的时候,加入编码格式:"?useUnicode=true&characterEncoding=utf-8";(下面红字部分)
[cpp]
//负责完成数据库的连接及操作
public class Database {
//建立连接
private final String DRIVER_STR="com.mysql.jdbc.Driver";
//加载驱动
private final String CONN_STR="jdbc:mysql://127.0.0.1:3306/zjw<SPAN style="COLOR: #ff6666">?useUnicode=true&characterEncoding=utf-8</SPAN>";
private final String USER="root";
private final String PASSWORD="123456";
private Connection conn=null;
public Database(){
try {
Class.forName(DRIVER_STR);
conn=DriverManager.getConnection(CONN_STR, USER, PASSWORD);
} catch (ClassNotFoundException e) {
&n
补充:软件开发 , Java ,