Reasons for the question mark display after JDBC links mysql inserts data and solutions

  • 2020-12-18 01:56:28
  • OfStack

1. Enter mysql in cmd to see the default encoding format:

mysql > show variables like "%char%";

If it's not utf8(because I'm using utf8), turn off the mysql service and add it to my.ini


[client]
default-character-set=utf8
[mysqld]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
[mysql]
default-character-set=utf8

2. Is the encoding format in eclipse utf8

3. If not, check the encoding of the mysql client table


show create table tablename 

If not utf-8. Delete and rebuild 1 table (I failed to change the original table before, which may be the reason for my own operation)

Share a classic JDBC link to MySQL program


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class MySQLConnection {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String url = null;
String user = null;
String password = null;
String sql = null;
try {
Class.forName("com.mysql.jdbc.Driver"); // loading mysq drive 
} catch (ClassNotFoundException e) {
System.out.println(" Driver loading error ");
e.printStackTrace();// Print error details 
}
try {
url = 
"jdbc:mysql://localhost/test?user=root&password=yqs2602555&useUnicode=true&&characterEncoding=gb2312&autoReconnect = true";// Simple way: url = "jdbc:myqsl://localhost/test( The database name )? user=root( The user )&password=yqs2602555( password )";
user = "root";
password = "yqs2602555";
conn = DriverManager.getConnection(url,user,password);
} catch (SQLException e) {
System.out.println(" Database link error ");
e.printStackTrace();
}
try {
stmt = conn.createStatement();
sql = "select * from dept";//dept This table has deptno . deptname and age this 3 A field 
rs = stmt.executeQuery(sql);// perform sql statements 
while(rs.next()) {
System.out.print(rs.getInt("deptno") + " ");
System.out.print(rs.getString("deptname") + " ");
System.out.println(rs.getInt("age") + " ");
}
} catch (SQLException e) {
System.out.println(" Data manipulation error ");
e.printStackTrace();
}
// Close the database 
try {
if(rs != null) {
rs.close();
rs = null;
}
if(stmt != null) {
stmt.close();
stmt = null;
}
if(conn != null) {
conn.close();
conn = null;
}
} catch(Exception e) {
System.out.println(" Database shutdown error ");
e.printStackTrace();
}
}
}

The operation results are as follows:

1 yqs 0
2 hello 0
3 yqsshr 0
4 world 0
5 hryspa 0
1 yqs 0
2 hello 0
3 yqsshr 0
4 world 0
5 hryspa 0
1 yqs11 21
1 yqs21 31
1 yqs31 41
1 yqs41 51


Related articles: