mysql 传中文无法匹配_Web开发笔记 #05# MySQL中文无法匹配

2018-06-02

在 Class.forName 的时候记得先尝试 import 一下。

2018-06-04

1、JDBC SELECT 查询,中文条件查不出东西,可能是字符编码问题:

String sql = "select reply from reply where words = ?";

preparedStatement=conn.prepareStatement(sql);

preparedStatement.setString(1, words);

resultSet= preparedStatement.executeQuery();

检查  conn = DriverManager.getConnection("jdbc:mysql://123.123.82.66:3306/chat", "123", "123");

按如下修改 conn = DriverManager.getConnection("jdbc:mysql://123.123.82.66:3306/chat?characterEncoding=utf8", "123", "123");

2、存储过程插入中文数据乱码??!!方案来自:https://blog.csdn.net/qq_20948497/article/details/78535941

DROP PROCEDURE IF EXISTSinsert_mapping;

DELIMITER//

CREATE PROCEDUREinsert_mapping(IN words_in VARCHAR (100) character set utf8,IN reply_in VARCHAR (300) character setutf8

)BEGIN

--先通过查 id 判断是否已经存在 words ,存在,直接插入 reply,不存在插入 words 和 reply

DECLARE wid BIGINT DEFAULT 0;SELECT words_id FROM words WHERE words_in=words INTOwid;IF wid = 0 THEN

INSERT INTO words(words) VALUES(words_in);SELECT words_id FROM words WHERE words_in=words INTOwid;INSERT INTO reply2(reply, words_id) VALUES(reply_in, wid);ELSE

INSERT INTO reply2(reply, words_id) VALUES(reply_in, wid);END IF;END //DELIMITER ;--插入一些 数据

CALL insert_mapping('你好', '你好呢。');

CALL insert_mapping('你好', 'hi.');

3、命令行下插不了中文,JDBC却可以。

set name gbk; 即可。

2018-06-05

1、依然是连接 MySQL 中文没法匹配的问题,发现像下面那样修改一下就可以了:

mysql> SET character_set_database=utf8;

Query OK,0 rows affected (0.00 sec)

不过这种修改是临时性的,要永久性更改需要修改 mysql 的配置文件,但是我没有找到那个配置文件,于是修改了 my.cnf 结果是 mysql 启动不了了 。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值