Mysql插入数据中文问号或乱码

本文介绍了解决MySQL数据库UTF-8编码问题的方法。首先排除数据库编码不是UTF-8的情况,然后通过修改配置文件中的jdbc.url参数来启用Unicode支持并设置正确的字符集。

1,排除数据库编码不是utf-8的问题;
这里写图片描述

2,配置文件中jdbc.url后面加上useUnicode=true&characterEncoding=utf-8

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456
### 如何在MySQL插入实验数据 #### 方法一:单条插入 通过 `INSERT INTO` 语句可以实现向表中插入一条记录。以下是语法结构: ```sql INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); ``` 例如,如果有一个名为 `person` 的表,包含字段 ID、Name、Gender、Age,则可以通过以下命令插入一条数据[^1]。 ```sql INSERT INTO person (ID, Name, Gender, Age) VALUES (1, '张三', '男', 25); ``` #### 方法二:多条插入 为了提高效率,可以在一次操作中插入多条记录。这通常用于批量导入实验数据的情况。其语法如下所示: ```sql INSERT INTO table_name (column1, column2, column3, ...) VALUES (value_set_1), (value_set_2), ...; ``` 假设我们需要一次性插入三条记录到上述的 `person` 表中,可执行以下SQL语句[^4]: ```sql INSERT INTO person (ID, Name, Gender, Age) VALUES (2, '李四', '女', 28), (3, '王五', '男', 30), (4, '赵六', '女', 27); ``` #### 方法三:动态生成并插入大量测试数据 当需要插入大量的随机实验数据时,可以借助编程语言(如PythonPHP)来生成这些数据,并将其写入数据库。下面是一个简单的 Python 脚本示例,展示如何自动生成一批人员信息并插入MySQL 数据库中[^2]。 ```python import mysql.connector from random import randint # 连接至MySQL数据库 conn = mysql.connector.connect( host="localhost", user="your_username", password="your_password", database="test_db" ) cursor = conn.cursor() # 动态生成并插入10条随机数据 for i in range(1, 11): age = randint(18, 60) name = f"Person_{i}" gender = ['男', '女'][randint(0, 1)] sql = "INSERT INTO person (ID, Name, Gender, Age) VALUES (%s, %s, %s, %s)" val = (i, name, gender, age) cursor.execute(sql, val) # 提交更改并关闭连接 conn.commit() print(cursor.rowcount, "条记录已成功插入.") conn.close() ``` #### 解决中文字符乱码问题 在实际应用过程中可能会遇到汉字存储后显示问号其他不可识别字符的现象。这是由于编码设置不一致引起的。为了避免这种情况发生,在建立与 MySQL 数据库之间的通信之前应指定正确的字符集。例如,在 MFC 应用程序中可通过调用 `mysql_query()` 函数发送指令完成此目的[^3]。 ```cpp mysql_query(&m_sqlCon, "SET NAMES 'UTF8'"); // 者对于 GBK 编码环境下的项目使用 mysql_query(&m_sqlCon, "SET NAMES 'GB2312'"); ``` 以上方法涵盖了从基础的手动输入少量数据到自动化脚本处理大批量复杂场景的不同需求层次上的解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值