JDBC连接MySql插入中文显示问号解决方法

声明:菜鸟刚学没啥技术,找了许久这样解决了。

win10平台 linux环境不知道


一、首先连接数据库输入以下命令

show variables like "%chara%"; 

    

目标就是修改成上图样子

我们看一下每行代表什么

character_set_client :客户端数据使用字符集

character_set_connection:连接数据库时使用的字符集,如果程序没有指定编码则使用这个编码

character_set_database:当前数据库使用的字符集

character_set_filesystem:文件系统的编码格式,把os上的文件名转化成此字符集,默认binary不做任何转换的。(不影响乱码)

character_set_results:查询结果字符集也就是数据库给客户端返回时的编码

character_set_server:默认内部操作字符集也就是服务器安装时指定的默认编码

character_set_system:系统元数据(字段名等)字符集 (不影响乱码)

character_sets_dir:看不懂,也不用改(不影响乱码)


 注意:

set character_set_XXX = “uft8”;

该语句不是永久有效,只对当前连接有效,所以最有效的就是修改本地 my.ini 文件

二、找到本地my.ini文件

(在这刚好推荐一个本地文件检索工具  软件名:everything )

查询文件超级快

找到文件后打开

找到下面三个地方

[mysql]
no-beep

# default-character-set=utf8

[mysqld]
character-set-server=utf8(一般这边没有这条语句先找③那个)

# The default character set that will be used when a new schema or table is
# created and no character set is defined
# character-set-server=utf8(把这句话复制到第二条位置)

 

三、修改表的字符集,重启服务

这是修改表的字符集语句(login换成你想修改的表)

alter table login convert to character set utf8;

 win+R键输入

找到mysql服务重启

重启后输入以下语句查询是否更改成功

show variables like "%chara%"; 

还有注意在连接的时候选择使用MySQL字符集,不然白改了

四、测试

这是修改之前

修改之后

五、OK问题解决,开始喝茶

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
好的, 首先需要引入 MySQLJDBC 驱动包,然后通过 DriverManager 类获取 Connection 数据库连接对象,使用 PreparedStatement 执行 SQL 插入语句,最后关闭连接对象和语句对象。示例代码如下: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class JdbcInsertDemo { public static void main(String[] args) { // JDBC 驱动类名和数据库 URL final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; final String DB_URL = "jdbc:mysql://localhost:3306/test"; // 数据库的用户名和密码 final String USER = "username"; final String PASS = "password"; Connection conn = null; PreparedStatement stmt = null; try { // 注册 JDBC 驱动 Class.forName(JDBC_DRIVER); // 打开一个连接 System.out.println("连接数据库..."); conn = DriverManager.getConnection(DB_URL, USER, PASS); // 执行插入操作 String sql = "INSERT INTO mytable(id, name) VALUES (?, ?)"; stmt = conn.prepareStatement(sql); stmt.setInt(1, 1); stmt.setString(2, "张三"); stmt.executeUpdate(); // 提交事务 conn.commit(); System.out.println("插入数据成功!"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { // 最后关闭连接和语句对象 try { if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } } ``` 以上是使用 JDBC 连接 MySQL 数据库并插入数据的示例代码。希望能够帮到你。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

缪恒益

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值